models

package
v0.0.190 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsBedrockAvailable added in v0.0.173

func IsBedrockAvailable() bool

IsBedrockAvailable checks if AWS credentials are configured

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 IsLlamaCPPAvailable added in v0.0.178

func IsLlamaCPPAvailable() bool

IsLlamaCPPAvailable reports whether the llama.cpp CLI is available locally.

func IsOpenAICodexAvailable added in v0.0.88

func IsOpenAICodexAvailable() bool

IsOpenAICodexAvailable checks if the codex binary is available on the system

func ListAnthropicModels added in v0.0.81

func ListAnthropicModels(apiKey string) ([]string, error)

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 BedrockProvider added in v0.0.173

type BedrockProvider struct {
	// contains filtered or unexported fields
}

BedrockProvider handles AWS Bedrock models via the Converse API

func NewBedrockProvider added in v0.0.173

func NewBedrockProvider() *BedrockProvider

NewBedrockProvider creates a new Bedrock provider instance

func (*BedrockProvider) Configure added in v0.0.173

func (b *BedrockProvider) Configure(apiKey string) error

Configure sets up the provider with AWS credentials For Bedrock, we use the standard AWS credential chain, so apiKey is ignored but we still need to initialize the client

func (*BedrockProvider) GetConfig added in v0.0.173

func (b *BedrockProvider) GetConfig() ModelConfig

GetConfig returns the current provider configuration

func (*BedrockProvider) Name added in v0.0.173

func (b *BedrockProvider) Name() string

Name returns the provider name

func (*BedrockProvider) SendPrompt added in v0.0.173

func (b *BedrockProvider) SendPrompt(modelName string, prompt string) (string, error)

SendPrompt sends a prompt to the specified model and returns the response

func (*BedrockProvider) SendPromptWithFile added in v0.0.173

func (b *BedrockProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)

SendPromptWithFile sends a prompt along with a file to the specified model

func (*BedrockProvider) SetConfig added in v0.0.173

func (b *BedrockProvider) SetConfig(config ModelConfig)

SetConfig updates the provider configuration

func (*BedrockProvider) SetVerbose added in v0.0.173

func (b *BedrockProvider) SetVerbose(verbose bool)

SetVerbose enables or disables verbose mode

func (*BedrockProvider) SupportsModel added in v0.0.173

func (b *BedrockProvider) SupportsModel(modelName string) bool

SupportsModel checks if the given model name is supported by Bedrock

func (*BedrockProvider) ValidateModel added in v0.0.173

func (b *BedrockProvider) ValidateModel(modelName string) bool

ValidateModel checks if the specific Bedrock model 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) ClearWorktree added in v0.0.142

func (c *ClaudeCodeProvider) ClearWorktree()

ClearWorktree clears the worktree setting

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) SendPromptAgentic added in v0.0.99

func (c *ClaudeCodeProvider) SendPromptAgentic(modelName string, prompt string, allowedPaths []string, tools []string, workDir string) (string, error)

SendPromptAgentic sends a prompt with full tool access for agentic mode

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) SetDebugFile added in v0.0.108

func (c *ClaudeCodeProvider) SetDebugFile(path string)

SetDebugFile sets the path for claude-code's debug output This enables --debug-file which streams tool calls and execution details

func (*ClaudeCodeProvider) SetVerbose added in v0.0.85

func (c *ClaudeCodeProvider) SetVerbose(verbose bool)

SetVerbose enables or disables verbose mode

func (*ClaudeCodeProvider) SetWorktree added in v0.0.142

func (c *ClaudeCodeProvider) SetWorktree(name string)

SetWorktree sets the worktree name for isolated execution This enables --worktree which runs Claude Code in an isolated Git worktree

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) SupportsWorktreeFlag added in v0.0.142

func (c *ClaudeCodeProvider) SupportsWorktreeFlag() bool

SupportsWorktreeFlag probes if Claude Code CLI supports the --worktree flag Result is cached after first probe

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

type DetectProviderFunc func(modelName string) Provider

DetectProviderFunc is the type for the provider detection function

var DetectProvider DetectProviderFunc = defaultDetectProvider

DetectProvider determines the appropriate provider based on the model name

type FileInput

type FileInput struct {
	Path     string
	MimeType string
}

FileInput represents a file to be processed by the model

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) Name

func (g *GoogleProvider) Name() string

Name returns the provider name

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 LlamaCPPProvider added in v0.0.178

type LlamaCPPProvider struct {
	// contains filtered or unexported fields
}

LlamaCPPProvider handles local llama.cpp CLI execution against GGUF models.

func NewLlamaCPPProvider added in v0.0.178

func NewLlamaCPPProvider() *LlamaCPPProvider

NewLlamaCPPProvider creates a new llama.cpp provider instance.

func (*LlamaCPPProvider) Configure added in v0.0.178

func (l *LlamaCPPProvider) Configure(apiKey string) error

Configure resolves the llama.cpp CLI binary.

func (*LlamaCPPProvider) Name added in v0.0.178

func (l *LlamaCPPProvider) Name() string

Name returns the provider name.

func (*LlamaCPPProvider) SendPrompt added in v0.0.178

func (l *LlamaCPPProvider) SendPrompt(modelName string, prompt string) (string, error)

SendPrompt executes llama.cpp against the requested GGUF model.

func (*LlamaCPPProvider) SendPromptWithFile added in v0.0.178

func (l *LlamaCPPProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)

SendPromptWithFile executes llama.cpp with file context embedded into the prompt.

func (*LlamaCPPProvider) SetVerbose added in v0.0.178

func (l *LlamaCPPProvider) SetVerbose(verbose bool)

SetVerbose enables or disables verbose mode.

func (*LlamaCPPProvider) SupportsModel added in v0.0.178

func (l *LlamaCPPProvider) SupportsModel(modelName string) bool

SupportsModel accepts GGUF file paths directly, with optional llama.cpp:/llamacpp: prefixes.

type ModelConfig

type ModelConfig struct {
	Temperature         float64
	MaxTokens           int
	MaxCompletionTokens int
	TopP                float64
}

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) Name

func (o *OllamaProvider) Name() string

Name returns the provider name

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

type OllamaResponse struct {
	Response string `json:"response"`
	Done     bool   `json:"done"`
}

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 OpenAICodexProvider added in v0.0.88

type OpenAICodexProvider struct {
	// contains filtered or unexported fields
}

OpenAICodexProvider handles OpenAI Codex CLI for agentic programming tasks

func NewOpenAICodexProvider added in v0.0.88

func NewOpenAICodexProvider() *OpenAICodexProvider

NewOpenAICodexProvider creates a new OpenAI Codex provider instance

func (*OpenAICodexProvider) Configure added in v0.0.88

func (o *OpenAICodexProvider) Configure(apiKey string) error

Configure sets up the provider OpenAI Codex uses its own authentication via OPENAI_API_KEY env var

func (*OpenAICodexProvider) Name added in v0.0.88

func (o *OpenAICodexProvider) Name() string

Name returns the provider name

func (*OpenAICodexProvider) SendPrompt added in v0.0.88

func (o *OpenAICodexProvider) SendPrompt(modelName string, prompt string) (string, error)

SendPrompt sends a prompt to OpenAI Codex and returns the response

func (*OpenAICodexProvider) SendPromptWithFile added in v0.0.88

func (o *OpenAICodexProvider) SendPromptWithFile(modelName string, prompt string, file FileInput) (string, error)

SendPromptWithFile sends a prompt along with file context to OpenAI Codex

func (*OpenAICodexProvider) SetVerbose added in v0.0.88

func (o *OpenAICodexProvider) SetVerbose(verbose bool)

SetVerbose enables or disables verbose mode

func (*OpenAICodexProvider) SupportsModel added in v0.0.88

func (o *OpenAICodexProvider) SupportsModel(modelName string) bool

SupportsModel checks if this provider supports the given model name

func (*OpenAICodexProvider) ValidateModel added in v0.0.88

func (o *OpenAICodexProvider) ValidateModel(modelName string) bool

ValidateModel checks if the model is valid for OpenAI Codex

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) Name

func (o *OpenAIProvider) Name() string

Name returns the provider name

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 SakanaProvider added in v0.0.187

type SakanaProvider struct {
	// contains filtered or unexported fields
}

SakanaProvider handles Sakana Fugu models through Sakana's OpenAI-compatible API.

func NewSakanaProvider added in v0.0.187

func NewSakanaProvider() *SakanaProvider

NewSakanaProvider creates a new Sakana provider instance.

func (*SakanaProvider) Configure added in v0.0.187

func (s *SakanaProvider) Configure(apiKey string) error

Configure sets up the provider with necessary credentials.

func (*SakanaProvider) GetConfig added in v0.0.187

func (s *SakanaProvider) GetConfig() ModelConfig

GetConfig returns the current provider configuration.

func (*SakanaProvider) Name added in v0.0.187

func (s *SakanaProvider) Name() string

Name returns the provider name.

func (*SakanaProvider) SendPrompt added in v0.0.187

func (s *SakanaProvider) SendPrompt(modelName string, prompt string) (string, error)

SendPrompt sends a prompt to the specified model and returns the response.

func (*SakanaProvider) SendPromptWithFile added in v0.0.187

func (s *SakanaProvider) 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 (*SakanaProvider) SetConfig added in v0.0.187

func (s *SakanaProvider) SetConfig(config ModelConfig)

SetConfig updates the provider configuration.

func (*SakanaProvider) SetVerbose added in v0.0.187

func (s *SakanaProvider) SetVerbose(verbose bool)

SetVerbose enables or disables verbose mode.

func (*SakanaProvider) SupportsModel added in v0.0.187

func (s *SakanaProvider) SupportsModel(modelName string) bool

SupportsModel checks if the given model name is supported by Sakana.

func (*SakanaProvider) ValidateModel added in v0.0.187

func (s *SakanaProvider) ValidateModel(modelName string) bool

ValidateModel checks if the specific Sakana model variant is valid.

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) Name

func (x *XAIProvider) Name() string

Name returns the provider name

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL