Documentation
¶
Index ¶
- type AnthropicProvider
- func (a *AnthropicProvider) Configure(apiKey string) error
- func (a *AnthropicProvider) GetConfig() ModelConfig
- 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 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 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 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 ¶
This section is empty.
Types ¶
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) 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 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 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 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