Documentation
¶
Index ¶
- func IsClaudeCodeAvailable() bool
- func IsGeminiCLIAvailable() bool
- func ListAnthropicModels(apiKey string) ([]string, error)
- type AnthropicModel
- type AnthropicModelsResponse
- type AnthropicProvider
- func (a *AnthropicProvider) Configure(apiKey string) error
- func (a *AnthropicProvider) GetConfig() ModelConfig
- func (a *AnthropicProvider) ListModels() ([]string, error)
- func (a *AnthropicProvider) Name() string
- func (a *AnthropicProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (a *AnthropicProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (a *AnthropicProvider) SetConfig(config ModelConfig)
- func (a *AnthropicProvider) SetVerbose(verbose bool)
- func (a *AnthropicProvider) SupportsModel(modelName string) bool
- func (a *AnthropicProvider) ValidateModel(modelName string) bool
- type ClaudeCodeProvider
- func (c *ClaudeCodeProvider) Configure(apiKey string) error
- func (c *ClaudeCodeProvider) Name() string
- func (c *ClaudeCodeProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (c *ClaudeCodeProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (c *ClaudeCodeProvider) SetVerbose(verbose bool)
- func (c *ClaudeCodeProvider) SupportsModel(modelName string) bool
- func (c *ClaudeCodeProvider) ValidateModel(modelName string) bool
- type DeepseekProvider
- func (d *DeepseekProvider) Configure(apiKey string) error
- func (d *DeepseekProvider) GetConfig() ModelConfig
- func (d *DeepseekProvider) Name() string
- func (d *DeepseekProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (d *DeepseekProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (d *DeepseekProvider) SetConfig(config ModelConfig)
- func (d *DeepseekProvider) SetVerbose(verbose bool)
- func (d *DeepseekProvider) SupportsModel(modelName string) bool
- func (d *DeepseekProvider) ValidateModel(modelName string) bool
- type DetectProviderFunc
- type FileInput
- type GeminiCLIProvider
- func (g *GeminiCLIProvider) Configure(apiKey string) error
- func (g *GeminiCLIProvider) Name() string
- func (g *GeminiCLIProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (g *GeminiCLIProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (g *GeminiCLIProvider) SetVerbose(verbose bool)
- func (g *GeminiCLIProvider) SupportsModel(modelName string) bool
- func (g *GeminiCLIProvider) ValidateModel(modelName string) bool
- type GoogleProvider
- func (g *GoogleProvider) Configure(apiKey string) error
- func (g *GoogleProvider) Name() string
- func (g *GoogleProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (g *GoogleProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (g *GoogleProvider) SetVerbose(verbose bool)
- func (g *GoogleProvider) SupportsModel(modelName string) bool
- func (g *GoogleProvider) ValidateModel(modelName string) bool
- type ModelConfig
- type ModelRegistry
- func (r *ModelRegistry) GetAllModels() map[string][]string
- func (r *ModelRegistry) GetAllModelsList() []string
- func (r *ModelRegistry) GetFamilies(provider string) []string
- func (r *ModelRegistry) GetModels(provider string) []string
- func (r *ModelRegistry) RegisterFamilies(provider string, families []string)
- func (r *ModelRegistry) RegisterModels(provider string, models []string)
- func (r *ModelRegistry) ValidateModel(provider string, modelName string) bool
- type MoonshotProvider
- func (o *MoonshotProvider) Configure(apiKey string) error
- func (o *MoonshotProvider) GetConfig() ModelConfig
- func (o *MoonshotProvider) Name() string
- func (o *MoonshotProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (o *MoonshotProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (o *MoonshotProvider) SendPromptWithResponses(config ResponsesConfig) (string, error)
- func (o *MoonshotProvider) SendPromptWithResponsesStream(config ResponsesConfig, handler ResponsesStreamHandler) error
- func (o *MoonshotProvider) SetConfig(config ModelConfig)
- func (o *MoonshotProvider) SetVerbose(verbose bool)
- func (o *MoonshotProvider) SupportsModel(modelName string) bool
- func (o *MoonshotProvider) ValidateModel(modelName string) bool
- type OllamaModelTag
- type OllamaProvider
- func (o *OllamaProvider) Configure(apiKey string) error
- func (o *OllamaProvider) Name() string
- func (o *OllamaProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (o *OllamaProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (o *OllamaProvider) SetVerbose(verbose bool)
- func (o *OllamaProvider) SupportsModel(modelName string) bool
- func (o *OllamaProvider) ValidateModel(modelName string) bool
- type OllamaRequest
- type OllamaResponse
- type OllamaTagsResponse
- type OpenAIProvider
- func (o *OpenAIProvider) Configure(apiKey string) error
- func (o *OpenAIProvider) GetConfig() ModelConfig
- func (o *OpenAIProvider) Name() string
- func (o *OpenAIProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (o *OpenAIProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (o *OpenAIProvider) SendPromptWithResponses(config ResponsesConfig) (string, error)
- func (o *OpenAIProvider) SendPromptWithResponsesStream(config ResponsesConfig, handler ResponsesStreamHandler) error
- func (o *OpenAIProvider) SetConfig(config ModelConfig)
- func (o *OpenAIProvider) SetVerbose(verbose bool)
- func (o *OpenAIProvider) SupportsModel(modelName string) bool
- func (o *OpenAIProvider) ValidateModel(modelName string) bool
- type Provider
- type ResponsesConfig
- type ResponsesProvider
- type ResponsesStreamHandler
- type VLLMModelInfo
- type VLLMModelsResponse
- type VLLMProvider
- func (v *VLLMProvider) Configure(apiKey string) error
- func (v *VLLMProvider) Name() string
- func (v *VLLMProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (v *VLLMProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (v *VLLMProvider) SetVerbose(verbose bool)
- func (v *VLLMProvider) SupportsModel(modelName string) bool
- func (v *VLLMProvider) ValidateModel(modelName string) bool
- type XAIProvider
- func (x *XAIProvider) Configure(apiKey string) error
- func (x *XAIProvider) GetConfig() ModelConfig
- func (x *XAIProvider) Name() string
- func (x *XAIProvider) SendPrompt(modelName string, prompt string) (string, error)
- func (x *XAIProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
- func (x *XAIProvider) SetConfig(config ModelConfig)
- func (x *XAIProvider) SetVerbose(verbose bool)
- func (x *XAIProvider) SupportsModel(modelName string) bool
- func (x *XAIProvider) ValidateModel(modelName string) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsClaudeCodeAvailable ¶ added in v0.0.85
func IsClaudeCodeAvailable() bool
IsClaudeCodeAvailable checks if the claude binary is available on the system
func IsGeminiCLIAvailable ¶ added in v0.0.87
func IsGeminiCLIAvailable() bool
IsGeminiCLIAvailable checks if the gemini binary is available on the system
func ListAnthropicModels ¶ added in v0.0.81
ListModelsWithAPIKey fetches models using a specific API key (static method)
Types ¶
type AnthropicModel ¶ added in v0.0.81
type AnthropicModel struct {
ID string `json:"id"`
DisplayName string `json:"display_name"`
CreatedAt string `json:"created_at"`
Type string `json:"type"`
}
AnthropicModel represents a model from the Anthropic API
type AnthropicModelsResponse ¶ added in v0.0.81
type AnthropicModelsResponse struct {
Data []AnthropicModel `json:"data"`
HasMore bool `json:"has_more"`
FirstID string `json:"first_id"`
LastID string `json:"last_id"`
}
AnthropicModelsResponse represents the response from the models API
type AnthropicProvider ¶
type AnthropicProvider struct {
// contains filtered or unexported fields
}
AnthropicProvider handles Anthropic family of models
func NewAnthropicProvider ¶
func NewAnthropicProvider() *AnthropicProvider
NewAnthropicProvider creates a new Anthropic provider instance
func (*AnthropicProvider) Configure ¶
func (a *AnthropicProvider) Configure(apiKey string) error
Configure sets up the provider with necessary credentials
func (*AnthropicProvider) GetConfig ¶
func (a *AnthropicProvider) GetConfig() ModelConfig
GetConfig returns the current provider configuration
func (*AnthropicProvider) ListModels ¶ added in v0.0.81
func (a *AnthropicProvider) ListModels() ([]string, error)
ListModels fetches the list of available models from the Anthropic API
func (*AnthropicProvider) Name ¶
func (a *AnthropicProvider) Name() string
Name returns the provider name
func (*AnthropicProvider) SendPrompt ¶
func (a *AnthropicProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to the specified model and returns the response
func (*AnthropicProvider) SendPromptWithFile ¶
func (a *AnthropicProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with a file to the specified model and returns the response
func (*AnthropicProvider) SetConfig ¶
func (a *AnthropicProvider) SetConfig(config ModelConfig)
SetConfig updates the provider configuration
func (*AnthropicProvider) SetVerbose ¶
func (a *AnthropicProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*AnthropicProvider) SupportsModel ¶
func (a *AnthropicProvider) SupportsModel(modelName string) bool
SupportsModel checks if the given model name is supported by Anthropic
func (*AnthropicProvider) ValidateModel ¶
func (a *AnthropicProvider) ValidateModel(modelName string) bool
ValidateModel checks if the specific Anthropic model variant is valid
type ClaudeCodeProvider ¶ added in v0.0.85
type ClaudeCodeProvider struct {
// contains filtered or unexported fields
}
ClaudeCodeProvider handles Claude Code CLI for agentic programming tasks
func NewClaudeCodeProvider ¶ added in v0.0.85
func NewClaudeCodeProvider() *ClaudeCodeProvider
NewClaudeCodeProvider creates a new Claude Code provider instance
func (*ClaudeCodeProvider) Configure ¶ added in v0.0.85
func (c *ClaudeCodeProvider) Configure(apiKey string) error
Configure sets up the provider Claude Code uses its own authentication, so we accept "LOCAL" or empty
func (*ClaudeCodeProvider) Name ¶ added in v0.0.85
func (c *ClaudeCodeProvider) Name() string
Name returns the provider name
func (*ClaudeCodeProvider) SendPrompt ¶ added in v0.0.85
func (c *ClaudeCodeProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to Claude Code and returns the response
func (*ClaudeCodeProvider) SendPromptWithFile ¶ added in v0.0.85
func (c *ClaudeCodeProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with file context to Claude Code
func (*ClaudeCodeProvider) SetVerbose ¶ added in v0.0.85
func (c *ClaudeCodeProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*ClaudeCodeProvider) SupportsModel ¶ added in v0.0.85
func (c *ClaudeCodeProvider) SupportsModel(modelName string) bool
SupportsModel checks if this provider supports the given model name
func (*ClaudeCodeProvider) ValidateModel ¶ added in v0.0.85
func (c *ClaudeCodeProvider) ValidateModel(modelName string) bool
ValidateModel checks if the model is valid for Claude Code
type DeepseekProvider ¶ added in v0.0.10
type DeepseekProvider struct {
// contains filtered or unexported fields
}
DeepseekProvider handles Deepseek family of models
func NewDeepseekProvider ¶ added in v0.0.10
func NewDeepseekProvider() *DeepseekProvider
NewDeepseekProvider creates a new Deepseek provider instance
func (*DeepseekProvider) Configure ¶ added in v0.0.10
func (d *DeepseekProvider) Configure(apiKey string) error
Configure sets up the provider with necessary credentials
func (*DeepseekProvider) GetConfig ¶ added in v0.0.10
func (d *DeepseekProvider) GetConfig() ModelConfig
GetConfig returns the current provider configuration
func (*DeepseekProvider) Name ¶ added in v0.0.10
func (d *DeepseekProvider) Name() string
Name returns the provider name
func (*DeepseekProvider) SendPrompt ¶ added in v0.0.10
func (d *DeepseekProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to the specified model and returns the response
func (*DeepseekProvider) SendPromptWithFile ¶ added in v0.0.10
func (d *DeepseekProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with a file to the specified model and returns the response
func (*DeepseekProvider) SetConfig ¶ added in v0.0.10
func (d *DeepseekProvider) SetConfig(config ModelConfig)
SetConfig updates the provider configuration
func (*DeepseekProvider) SetVerbose ¶ added in v0.0.10
func (d *DeepseekProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*DeepseekProvider) SupportsModel ¶ added in v0.0.10
func (d *DeepseekProvider) SupportsModel(modelName string) bool
SupportsModel checks if the given model name is supported by Deepseek
func (*DeepseekProvider) ValidateModel ¶ added in v0.0.58
func (d *DeepseekProvider) ValidateModel(modelName string) bool
ValidateModel checks if the specific Deepseek model variant is valid
type DetectProviderFunc ¶
DetectProviderFunc is the type for the provider detection function
var DetectProvider DetectProviderFunc = defaultDetectProvider
DetectProvider determines the appropriate provider based on the model name
type GeminiCLIProvider ¶ added in v0.0.87
type GeminiCLIProvider struct {
// contains filtered or unexported fields
}
GeminiCLIProvider handles Gemini CLI for agentic programming tasks
func NewGeminiCLIProvider ¶ added in v0.0.87
func NewGeminiCLIProvider() *GeminiCLIProvider
NewGeminiCLIProvider creates a new Gemini CLI provider instance
func (*GeminiCLIProvider) Configure ¶ added in v0.0.87
func (g *GeminiCLIProvider) Configure(apiKey string) error
Configure sets up the provider Gemini CLI uses its own authentication via GEMINI_API_KEY env var
func (*GeminiCLIProvider) Name ¶ added in v0.0.87
func (g *GeminiCLIProvider) Name() string
Name returns the provider name
func (*GeminiCLIProvider) SendPrompt ¶ added in v0.0.87
func (g *GeminiCLIProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to Gemini CLI and returns the response
func (*GeminiCLIProvider) SendPromptWithFile ¶ added in v0.0.87
func (g *GeminiCLIProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with file context to Gemini CLI
func (*GeminiCLIProvider) SetVerbose ¶ added in v0.0.87
func (g *GeminiCLIProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*GeminiCLIProvider) SupportsModel ¶ added in v0.0.87
func (g *GeminiCLIProvider) SupportsModel(modelName string) bool
SupportsModel checks if this provider supports the given model name
func (*GeminiCLIProvider) ValidateModel ¶ added in v0.0.87
func (g *GeminiCLIProvider) ValidateModel(modelName string) bool
ValidateModel checks if the model is valid for Gemini CLI
type GoogleProvider ¶
type GoogleProvider struct {
// contains filtered or unexported fields
}
GoogleProvider handles Google AI (Gemini) family of models
func NewGoogleProvider ¶
func NewGoogleProvider() *GoogleProvider
NewGoogleProvider creates a new Google provider instance
func (*GoogleProvider) Configure ¶
func (g *GoogleProvider) Configure(apiKey string) error
Configure sets up the provider with necessary credentials
func (*GoogleProvider) SendPrompt ¶
func (g *GoogleProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to the specified model and returns the response
func (*GoogleProvider) SendPromptWithFile ¶
func (g *GoogleProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with a file to the specified model and returns the response
func (*GoogleProvider) SetVerbose ¶
func (g *GoogleProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*GoogleProvider) SupportsModel ¶
func (g *GoogleProvider) SupportsModel(modelName string) bool
SupportsModel checks if the given model name is supported by Google
func (*GoogleProvider) ValidateModel ¶
func (g *GoogleProvider) ValidateModel(modelName string) bool
ValidateModel checks if the specific Google model variant is valid
type ModelConfig ¶
ModelConfig represents configuration options for model calls
type ModelRegistry ¶ added in v0.0.58
type ModelRegistry struct {
// contains filtered or unexported fields
}
ModelRegistry is a centralized registry for all supported models across providers
func GetRegistry ¶ added in v0.0.58
func GetRegistry() *ModelRegistry
GetRegistry returns the global model registry instance
func NewModelRegistry ¶ added in v0.0.58
func NewModelRegistry() *ModelRegistry
NewModelRegistry creates a new model registry
func (*ModelRegistry) GetAllModels ¶ added in v0.0.58
func (r *ModelRegistry) GetAllModels() map[string][]string
GetAllModels returns a map of all models for all providers
func (*ModelRegistry) GetAllModelsList ¶ added in v0.0.58
func (r *ModelRegistry) GetAllModelsList() []string
GetAllModelsList returns a flat list of all models from all providers
func (*ModelRegistry) GetFamilies ¶ added in v0.0.58
func (r *ModelRegistry) GetFamilies(provider string) []string
GetFamilies returns the list of model families for a specific provider
func (*ModelRegistry) GetModels ¶ added in v0.0.58
func (r *ModelRegistry) GetModels(provider string) []string
GetModels returns the list of models for a specific provider
func (*ModelRegistry) RegisterFamilies ¶ added in v0.0.58
func (r *ModelRegistry) RegisterFamilies(provider string, families []string)
RegisterFamilies adds model families (prefixes) to the registry for a specific provider
func (*ModelRegistry) RegisterModels ¶ added in v0.0.58
func (r *ModelRegistry) RegisterModels(provider string, models []string)
RegisterModels adds models to the registry for a specific provider
func (*ModelRegistry) ValidateModel ¶ added in v0.0.58
func (r *ModelRegistry) ValidateModel(provider string, modelName string) bool
ValidateModel checks if a model is valid for a specific provider
type MoonshotProvider ¶ added in v0.0.62
type MoonshotProvider struct {
// contains filtered or unexported fields
}
MoonshotProvider handles Moonshot family of models
func NewMoonshotProvider ¶ added in v0.0.62
func NewMoonshotProvider() *MoonshotProvider
NewMoonshotProvider creates a new Moonshot provider instance
func (*MoonshotProvider) Configure ¶ added in v0.0.62
func (o *MoonshotProvider) Configure(apiKey string) error
Configure sets up the provider with necessary credentials
func (*MoonshotProvider) GetConfig ¶ added in v0.0.62
func (o *MoonshotProvider) GetConfig() ModelConfig
GetConfig returns the current provider configuration
func (*MoonshotProvider) Name ¶ added in v0.0.62
func (o *MoonshotProvider) Name() string
Name returns the provider name
func (*MoonshotProvider) SendPrompt ¶ added in v0.0.62
func (o *MoonshotProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to the specified model and returns the response
func (*MoonshotProvider) SendPromptWithFile ¶ added in v0.0.62
func (o *MoonshotProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with a file to the specified model and returns the response
func (*MoonshotProvider) SendPromptWithResponses ¶ added in v0.0.62
func (o *MoonshotProvider) SendPromptWithResponses(config ResponsesConfig) (string, error)
SendPromptWithResponses sends a prompt using the Moonshot Responses API
func (*MoonshotProvider) SendPromptWithResponsesStream ¶ added in v0.0.62
func (o *MoonshotProvider) SendPromptWithResponsesStream(config ResponsesConfig, handler ResponsesStreamHandler) error
SendPromptWithResponsesStream sends a prompt using the Moonshot Responses API with streaming
func (*MoonshotProvider) SetConfig ¶ added in v0.0.62
func (o *MoonshotProvider) SetConfig(config ModelConfig)
SetConfig updates the provider configuration
func (*MoonshotProvider) SetVerbose ¶ added in v0.0.62
func (o *MoonshotProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*MoonshotProvider) SupportsModel ¶ added in v0.0.62
func (o *MoonshotProvider) SupportsModel(modelName string) bool
SupportsModel checks if the given model name is supported by Moonshot
func (*MoonshotProvider) ValidateModel ¶ added in v0.0.62
func (o *MoonshotProvider) ValidateModel(modelName string) bool
ValidateModel checks if the specific Moonshot model variant is valid
type OllamaModelTag ¶ added in v0.0.66
type OllamaModelTag struct {
Name string `json:"name"`
}
OllamaModelTag represents a single model tag from Ollama
type OllamaProvider ¶
type OllamaProvider struct {
// contains filtered or unexported fields
}
OllamaProvider handles Ollama family of models
func NewOllamaProvider ¶
func NewOllamaProvider() *OllamaProvider
NewOllamaProvider creates a new Ollama provider instance
func (*OllamaProvider) Configure ¶
func (o *OllamaProvider) Configure(apiKey string) error
Configure sets up the provider. Since Ollama is a local service that doesn't use API keys, we accept "LOCAL" as a special API key value to indicate it's properly configured. Note: The original implementation checked for "LOCAL". This seems unnecessary now as configuration might not be needed if we dynamically check models. However, keeping the Configure method might be required by the Provider interface. Let's keep the check for now, but it might be removable later if configure isn't called.
func (*OllamaProvider) SendPrompt ¶
func (o *OllamaProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to the specified model and returns the response
func (*OllamaProvider) SendPromptWithFile ¶
func (o *OllamaProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with a file to the specified model and returns the response
func (*OllamaProvider) SetVerbose ¶
func (o *OllamaProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*OllamaProvider) SupportsModel ¶
func (o *OllamaProvider) SupportsModel(modelName string) bool
SupportsModel for OllamaProvider. Since we now have proper provider ordering in DetectProvider, Ollama can accept any model name and let the actual local availability check determine if it exists.
func (*OllamaProvider) ValidateModel ¶ added in v0.0.58
func (o *OllamaProvider) ValidateModel(modelName string) bool
ValidateModel checks if the specific Ollama model variant is valid
type OllamaRequest ¶
type OllamaRequest struct {
Model string `json:"model"`
Prompt string `json:"prompt"`
Stream bool `json:"stream"`
}
OllamaRequest represents the request structure for Ollama API
type OllamaResponse ¶
OllamaResponse represents the response structure from Ollama API
type OllamaTagsResponse ¶ added in v0.0.66
type OllamaTagsResponse struct {
Models []OllamaModelTag `json:"models"`
}
OllamaTagsResponse represents the response from Ollama's /api/tags endpoint
type OpenAIProvider ¶
type OpenAIProvider struct {
// contains filtered or unexported fields
}
OpenAIProvider handles OpenAI family of models
func NewOpenAIProvider ¶
func NewOpenAIProvider() *OpenAIProvider
NewOpenAIProvider creates a new OpenAI provider instance
func (*OpenAIProvider) Configure ¶
func (o *OpenAIProvider) Configure(apiKey string) error
Configure sets up the provider with necessary credentials
func (*OpenAIProvider) GetConfig ¶
func (o *OpenAIProvider) GetConfig() ModelConfig
GetConfig returns the current provider configuration
func (*OpenAIProvider) SendPrompt ¶
func (o *OpenAIProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to the specified model and returns the response
func (*OpenAIProvider) SendPromptWithFile ¶
func (o *OpenAIProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with a file to the specified model and returns the response
func (*OpenAIProvider) SendPromptWithResponses ¶ added in v0.0.23
func (o *OpenAIProvider) SendPromptWithResponses(config ResponsesConfig) (string, error)
SendPromptWithResponses sends a prompt using the OpenAI Responses API
func (*OpenAIProvider) SendPromptWithResponsesStream ¶ added in v0.0.23
func (o *OpenAIProvider) SendPromptWithResponsesStream(config ResponsesConfig, handler ResponsesStreamHandler) error
SendPromptWithResponsesStream sends a prompt using the OpenAI Responses API with streaming
func (*OpenAIProvider) SetConfig ¶
func (o *OpenAIProvider) SetConfig(config ModelConfig)
SetConfig updates the provider configuration
func (*OpenAIProvider) SetVerbose ¶
func (o *OpenAIProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*OpenAIProvider) SupportsModel ¶
func (o *OpenAIProvider) SupportsModel(modelName string) bool
SupportsModel checks if the given model name is supported by OpenAI
func (*OpenAIProvider) ValidateModel ¶
func (o *OpenAIProvider) ValidateModel(modelName string) bool
ValidateModel checks if the specific OpenAI model variant is valid
type Provider ¶
type Provider interface {
Name() string
SupportsModel(modelName string) bool
SendPrompt(modelName string, prompt string) (string, error)
SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
Configure(apiKey string) error
SetVerbose(verbose bool)
}
Provider represents a model provider (e.g., Anthropic, OpenAI)
type ResponsesConfig ¶ added in v0.0.23
type ResponsesConfig struct {
Model string
Input string
Instructions string
PreviousResponseID string
MaxOutputTokens int
Temperature float64
TopP float64
Stream bool
Tools []map[string]interface{}
ResponseFormat map[string]interface{}
}
ResponsesConfig represents configuration for OpenAI Responses API
type ResponsesProvider ¶ added in v0.0.23
type ResponsesProvider interface {
Provider
SendPromptWithResponses(config ResponsesConfig) (string, error)
SendPromptWithResponsesStream(config ResponsesConfig, handler ResponsesStreamHandler) error
}
ResponsesProvider extends Provider with Responses API capabilities
type ResponsesStreamHandler ¶ added in v0.0.23
type ResponsesStreamHandler interface {
OnResponseCreated(response map[string]interface{})
OnResponseInProgress(response map[string]interface{})
OnOutputItemAdded(index int, item map[string]interface{})
OnOutputTextDelta(itemID string, index int, contentIndex int, delta string)
OnResponseCompleted(response map[string]interface{})
OnError(err error)
}
ResponsesStreamHandler defines callbacks for streaming responses
type VLLMModelInfo ¶ added in v0.0.71
type VLLMModelInfo struct {
ID string `json:"id"`
}
VLLMModelInfo represents a single model from vLLM
type VLLMModelsResponse ¶ added in v0.0.71
type VLLMModelsResponse struct {
Data []VLLMModelInfo `json:"data"`
}
VLLMModelsResponse represents the response from vLLM's /v1/models endpoint
type VLLMProvider ¶ added in v0.0.71
type VLLMProvider struct {
// contains filtered or unexported fields
}
VLLMProvider handles vLLM locally-served models
func NewVLLMProvider ¶ added in v0.0.71
func NewVLLMProvider() *VLLMProvider
NewVLLMProvider creates a new vLLM provider instance
func (*VLLMProvider) Configure ¶ added in v0.0.71
func (v *VLLMProvider) Configure(apiKey string) error
Configure sets up the provider. Since vLLM is a local service that doesn't use API keys, we accept "LOCAL" as a special API key value to indicate it's properly configured.
func (*VLLMProvider) Name ¶ added in v0.0.71
func (v *VLLMProvider) Name() string
Name returns the provider name
func (*VLLMProvider) SendPrompt ¶ added in v0.0.71
func (v *VLLMProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to the specified model and returns the response
func (*VLLMProvider) SendPromptWithFile ¶ added in v0.0.71
func (v *VLLMProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with a file to the specified model and returns the response
func (*VLLMProvider) SetVerbose ¶ added in v0.0.71
func (v *VLLMProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*VLLMProvider) SupportsModel ¶ added in v0.0.71
func (v *VLLMProvider) SupportsModel(modelName string) bool
SupportsModel for VLLMProvider. Similar to Ollama, vLLM can support any model that users have loaded on their vLLM server. The actual validation happens when checking what models are available on the running vLLM instance.
func (*VLLMProvider) ValidateModel ¶ added in v0.0.71
func (v *VLLMProvider) ValidateModel(modelName string) bool
ValidateModel checks if the specific vLLM model is valid
type XAIProvider ¶
type XAIProvider struct {
// contains filtered or unexported fields
}
XAIProvider handles X.AI family of models
func NewXAIProvider ¶
func NewXAIProvider() *XAIProvider
NewXAIProvider creates a new X.AI provider instance
func (*XAIProvider) Configure ¶
func (x *XAIProvider) Configure(apiKey string) error
Configure sets up the provider with necessary credentials
func (*XAIProvider) GetConfig ¶
func (x *XAIProvider) GetConfig() ModelConfig
GetConfig returns the current provider configuration
func (*XAIProvider) SendPrompt ¶
func (x *XAIProvider) SendPrompt(modelName string, prompt string) (string, error)
SendPrompt sends a prompt to the specified model and returns the response
func (*XAIProvider) SendPromptWithFile ¶
func (x *XAIProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)
SendPromptWithFile sends a prompt along with a file to the specified model and returns the response
func (*XAIProvider) SetConfig ¶
func (x *XAIProvider) SetConfig(config ModelConfig)
SetConfig updates the provider configuration
func (*XAIProvider) SetVerbose ¶
func (x *XAIProvider) SetVerbose(verbose bool)
SetVerbose enables or disables verbose mode
func (*XAIProvider) SupportsModel ¶
func (x *XAIProvider) SupportsModel(modelName string) bool
SupportsModel checks if the given model name is supported by X.AI
func (*XAIProvider) ValidateModel ¶
func (x *XAIProvider) ValidateModel(modelName string) bool
ValidateModel checks if the specific X.AI model variant is valid