Targets¶
LLM API targets for testing.
LLMTarget¶
Bases: ABC
Abstract base class for LLM targets.
Source code in src/rotalabs_redqueen/llm/targets.py
name: str
abstractmethod
property
¶
Human-readable name of this target.
query(prompt: str) -> TargetResponse
abstractmethod
async
¶
Send a prompt to the LLM and get response.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
prompt
|
str
|
The prompt to send |
required |
Returns:
| Type | Description |
|---|---|
TargetResponse
|
Target response with content and metadata |
Raises:
| Type | Description |
|---|---|
TargetError
|
If the query fails |
RateLimitError
|
If rate limited |
Source code in src/rotalabs_redqueen/llm/targets.py
OpenAITarget¶
Bases: LLMTarget
OpenAI API target (GPT-4, etc.).
Source code in src/rotalabs_redqueen/llm/targets.py
__init__(model: str = 'gpt-4', api_key: str | None = None, max_tokens: int = 1000)
¶
Initialize OpenAI target.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
str
|
Model name (gpt-4, gpt-3.5-turbo, etc.) |
'gpt-4'
|
api_key
|
str | None
|
API key (or uses OPENAI_API_KEY env var) |
None
|
max_tokens
|
int
|
Maximum tokens in response |
1000
|
Source code in src/rotalabs_redqueen/llm/targets.py
query(prompt: str) -> TargetResponse
async
¶
Query OpenAI API.
Source code in src/rotalabs_redqueen/llm/targets.py
AnthropicTarget¶
Bases: LLMTarget
Anthropic API target (Claude).
Source code in src/rotalabs_redqueen/llm/targets.py
__init__(model: str = 'claude-sonnet-4-20250514', api_key: str | None = None, max_tokens: int = 1000)
¶
Initialize Anthropic target.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
str
|
Model name (claude-sonnet-4-20250514, etc.) |
'claude-sonnet-4-20250514'
|
api_key
|
str | None
|
API key (or uses ANTHROPIC_API_KEY env var) |
None
|
max_tokens
|
int
|
Maximum tokens in response |
1000
|
Source code in src/rotalabs_redqueen/llm/targets.py
query(prompt: str) -> TargetResponse
async
¶
Query Anthropic API.
Source code in src/rotalabs_redqueen/llm/targets.py
OllamaTarget¶
Bases: LLMTarget
Local Ollama target.
Source code in src/rotalabs_redqueen/llm/targets.py
__init__(model: str = 'llama2', base_url: str = 'http://localhost:11434')
¶
Initialize Ollama target.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
str
|
Model name |
'llama2'
|
base_url
|
str
|
Ollama API URL |
'http://localhost:11434'
|
Source code in src/rotalabs_redqueen/llm/targets.py
query(prompt: str) -> TargetResponse
async
¶
Query Ollama API.
Source code in src/rotalabs_redqueen/llm/targets.py
MockTarget¶
Bases: LLMTarget
Mock target for testing.
Source code in src/rotalabs_redqueen/llm/targets.py
__init__(mode: Mode = Mode.RANDOM)
¶
Initialize mock target.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mode
|
Mode
|
How to respond to queries |
RANDOM
|
query(prompt: str) -> TargetResponse
async
¶
Return mock response.
Source code in src/rotalabs_redqueen/llm/targets.py
create_target¶
Create a target from a specification string.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
target_spec
|
str
|
Format "provider:model" (e.g., "openai:gpt-4") |
required |
Returns:
| Type | Description |
|---|---|
LLMTarget
|
Configured LLM target |
Source code in src/rotalabs_redqueen/llm/targets.py
TargetResponse¶
Errors¶
TargetError¶
RateLimitError¶
Bases: TargetError
Rate limit exceeded.
NetworkError¶
Bases: TargetError
Network connectivity error.