Spaces:
Sleeping
Sleeping
| package tools | |
| import "context" | |
| type Message struct { | |
| Role string `json:"role"` | |
| Content string `json:"content"` | |
| ToolCalls []ToolCall `json:"tool_calls,omitempty"` | |
| ToolCallID string `json:"tool_call_id,omitempty"` | |
| } | |
| type ToolCall struct { | |
| ID string `json:"id"` | |
| Type string `json:"type"` | |
| Function *FunctionCall `json:"function,omitempty"` | |
| Name string `json:"name,omitempty"` | |
| Arguments map[string]interface{} `json:"arguments,omitempty"` | |
| } | |
| type FunctionCall struct { | |
| Name string `json:"name"` | |
| Arguments string `json:"arguments"` | |
| } | |
| type LLMResponse struct { | |
| Content string `json:"content"` | |
| ToolCalls []ToolCall `json:"tool_calls,omitempty"` | |
| FinishReason string `json:"finish_reason"` | |
| Usage *UsageInfo `json:"usage,omitempty"` | |
| } | |
| type UsageInfo struct { | |
| PromptTokens int `json:"prompt_tokens"` | |
| CompletionTokens int `json:"completion_tokens"` | |
| TotalTokens int `json:"total_tokens"` | |
| } | |
| type LLMProvider interface { | |
| Chat(ctx context.Context, messages []Message, tools []ToolDefinition, model string, options map[string]interface{}) (*LLMResponse, error) | |
| GetDefaultModel() string | |
| } | |
| type ToolDefinition struct { | |
| Type string `json:"type"` | |
| Function ToolFunctionDefinition `json:"function"` | |
| } | |
| type ToolFunctionDefinition struct { | |
| Name string `json:"name"` | |
| Description string `json:"description"` | |
| Parameters map[string]interface{} `json:"parameters"` | |
| } | |