Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Message ¶
type Message interface { // GetRole returns the role of the message sender (e.g., "user", "assistant", "system") GetRole() string // GetContent returns the text content of the message GetContent() string // GetToolCalls returns any tool calls made in this message GetToolCalls() []ToolCall // IsToolResponse returns true if this message is a response from a tool IsToolResponse() bool // GetToolResponseID returns the ID of the tool call this message is responding to GetToolResponseID() string // GetUsage returns token usage statistics if available GetUsage() (input int, output int) }
Message represents a message in the conversation
type Provider ¶
type Provider interface { // CreateMessage sends a message to the LLM and returns the response CreateMessage(ctx context.Context, prompt string, messages []Message, tools []Tool) (Message, error) // CreateToolResponse creates a message representing a tool response CreateToolResponse(toolCallID string, content interface{}) (Message, error) // SupportsTools returns whether this provider supports tool/function calling SupportsTools() bool // Name returns the provider's name Name() string }
Provider defines the interface for LLM providers
type Schema ¶
type Schema struct { Type string `json:"type"` Properties map[string]interface{} `json:"properties"` Required []string `json:"required"` }
Schema defines the input parameters for a tool
type Tool ¶
type Tool struct { Name string `json:"name"` Description string `json:"description"` InputSchema Schema `json:"input_schema"` }
Tool represents a tool definition
type ToolCall ¶
type ToolCall interface { // GetName returns the tool's name GetName() string // GetArguments returns the arguments passed to the tool GetArguments() map[string]interface{} // GetID returns the unique identifier for this tool call GetID() string }
ToolCall represents a tool invocation
Click to show internal directories.
Click to hide internal directories.