| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package tools
- import "context"
- type ToolInfo struct {
- Name string
- Description string
- Parameters map[string]any
- Required []string
- }
- type toolResponseType string
- const (
- ToolResponseTypeText toolResponseType = "text"
- ToolResponseTypeImage toolResponseType = "image"
- )
- type ToolResponse struct {
- Type toolResponseType `json:"type"`
- Content string `json:"content"`
- IsError bool `json:"is_error"`
- }
- func NewTextResponse(content string) ToolResponse {
- return ToolResponse{
- Type: ToolResponseTypeText,
- Content: content,
- }
- }
- func NewTextErrorResponse(content string) ToolResponse {
- return ToolResponse{
- Type: ToolResponseTypeText,
- Content: content,
- IsError: true,
- }
- }
- type ToolCall struct {
- ID string `json:"id"`
- Name string `json:"name"`
- Input string `json:"input"`
- }
- type BaseTool interface {
- Info() ToolInfo
- Run(ctx context.Context, params ToolCall) (ToolResponse, error)
- }
|