Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
Credentials []config.Credential
VendorModels []config.VendorModel
APIClient *proxy.APIClient
ModelSelector selector.Selector
APIHandlers *handlers.APIHandlers
}
App centralizes the application's dependencies and configuration
func (*App) SetupRoutes ¶
SetupRoutes configures all routes for the application
type ChatCompletionRequest ¶
type ChatCompletionRequest struct {
Messages []Message `json:"messages" example:"[]"`
Model string `json:"model" example:"gpt-4o"`
Stream bool `json:"stream,omitempty" example:"false"`
// Added OpenAI-compatible fields
MaxTokens int `json:"max_tokens,omitempty" example:"100"`
Temperature float64 `json:"temperature,omitempty" example:"0.7"`
TopP float64 `json:"top_p,omitempty" example:"1"`
N int `json:"n,omitempty" example:"1"`
Stop []string `json:"stop,omitempty"`
PresencePenalty float64 `json:"presence_penalty,omitempty" example:"0"`
FrequencyPenalty float64 `json:"frequency_penalty,omitempty" example:"0"`
LogitBias map[string]float64 `json:"logit_bias,omitempty"`
User string `json:"user,omitempty" example:"user-123"`
Functions []FunctionDefinition `json:"functions,omitempty"`
FunctionCall string `json:"function_call,omitempty" example:"auto"`
Tools []Tool `json:"tools,omitempty"`
ToolChoice string `json:"tool_choice,omitempty" example:"auto"`
ResponseFormat map[string]string `json:"response_format,omitempty"`
}
ChatCompletionRequest represents a request to the chat completions API
type ChatCompletionResponse ¶
type ChatCompletionResponse struct {
ID string `json:"id" example:"chatcmpl-abc123"`
Object string `json:"object" example:"chat.completion"`
Created int64 `json:"created" example:"1677652288"`
Model string `json:"model" example:"gpt-4o"`
SystemFingerprint string `json:"system_fingerprint,omitempty" example:"fp_abc123"`
Choices []Choice `json:"choices"`
Usage Usage `json:"usage"`
ServiceTier string `json:"service_tier,omitempty" example:"default"`
}
ChatCompletionResponse represents a response from the chat completions API
type Choice ¶
type Choice struct {
Index int `json:"index" example:"0"`
Message Message `json:"message"`
LogProbs string `json:"logprobs" example:"null"`
FinishReason string `json:"finish_reason" example:"stop"`
}
Choice represents a completion choice
type ErrorInfo ¶
type ErrorInfo struct {
Message string `json:"message" example:"Invalid model specified"`
Type string `json:"type" example:"invalid_request_error"`
Param string `json:"param" example:"model"`
Code string `json:"code,omitempty" example:"invalid_model"`
}
ErrorInfo contains details about an error
type ErrorResponse ¶
type ErrorResponse struct {
Error ErrorInfo `json:"error"`
}
ErrorResponse represents an error response
type FunctionDefinition ¶
type FunctionDefinition struct {
Name string `json:"name" example:"get_weather"`
Description string `json:"description,omitempty" example:"Get the current weather in a location"`
Parameters map[string]interface{} `json:"parameters,omitempty"`
}
FunctionDefinition represents an available function definition
type Message ¶
type Message struct {
Role string `json:"role" example:"user"`
Content string `json:"content" example:"Hello, how are you?"`
Name string `json:"name,omitempty" example:"John"`
ToolCalls []ToolCall `json:"tool_calls,omitempty"`
ToolCallID string `json:"tool_call_id,omitempty"`
}
Message represents a chat message
type Model ¶
type Model struct {
ID string `json:"id" example:"gpt-4o"`
Object string `json:"object" example:"model"`
Created int64 `json:"created" example:"1677610602"`
OwnedBy string `json:"owned_by" example:"openai"`
}
Model represents a language model
type ModelsResponse ¶
type ModelsResponse struct {
Object string `json:"object" example:"list"`
Data []Model `json:"data"`
}
ModelsResponse represents the response from the models endpoint
type TokenDetails ¶
type TokenDetails struct {
CachedTokens int `json:"cached_tokens" example:"0"`
AudioTokens int `json:"audio_tokens" example:"0"`
ReasoningTokens int `json:"reasoning_tokens,omitempty" example:"0"`
AcceptedPredictionTokens int `json:"accepted_prediction_tokens,omitempty" example:"0"`
RejectedPredictionTokens int `json:"rejected_prediction_tokens,omitempty" example:"0"`
}
TokenDetails represents detailed token usage information
type Tool ¶
type Tool struct {
Type string `json:"type" example:"function"`
Function map[string]interface{} `json:"function,omitempty"`
}
Tool represents a tool available to the model
type ToolCall ¶
type ToolCall struct {
ID string `json:"id" example:"call_8qty38"`
Type string `json:"type" example:"function"`
Function map[string]interface{} `json:"function"`
}
ToolCall represents a call to a tool
type Usage ¶
type Usage struct {
PromptTokens int `json:"prompt_tokens" example:"10"`
CompletionTokens int `json:"completion_tokens" example:"20"`
TotalTokens int `json:"total_tokens" example:"30"`
// Added additional usage details for OpenAI compatibility
PromptTokensDetails TokenDetails `json:"prompt_tokens_details"`
CompletionTokensDetails TokenDetails `json:"completion_tokens_details"`
}
Usage represents token usage information