Documentation
¶
Overview ¶
Package llm provides a unified interface for interacting with LLM providers.
This package re-exports common types and configuration options from subpackages, allowing most use cases to work with just two imports:
import (
"github.com/humbornjo/llm"
"github.com/humbornjo/llm/providers/openai"
)
provider, err := openai.New(llm.WithAPIKey("sk-..."))
response, err := provider.Completion(ctx, llm.CompletionParams{
Model: "gpt-4o-mini",
Messages: []llm.Message{
{Role: llm.ROLE_USER, Content: "Hello!"},
},
})
Index ¶
- Constants
- Variables
- func NewToolsHandler(tools ...Tool) func(context.Context, FunctionCall, ...ToolOption) (string, error)
- type AuthenticationError
- type BaseError
- type Batch
- type BatchProvider
- type BatchRequestCounts
- type BatchRequestItem
- type BatchResult
- type BatchResultError
- type BatchResultItem
- type BatchStatus
- type Capabilities
- type CapabilityProvider
- type ChatCompletion
- type ChatCompletionChunk
- type Choice
- type ChunkChoice
- type ChunkDelta
- type CompletionParams
- type CompletionTokensDetails
- type Config
- type Content
- type ContentFilterError
- type ContentPart
- type ContentPartAudio
- type ContentPartFile
- type ContentPartImage
- type ContentPartText
- type ContentPartType
- type ContentParts
- type ContentString
- type ContextLengthError
- type CreateBatchParams
- type EmbeddingData
- type EmbeddingParams
- type EmbeddingProvider
- type EmbeddingResponse
- type EmbeddingUsage
- type File
- type Function
- type FunctionCall
- type ImageURL
- type InputAudio
- type InsufficientFundsError
- type InvalidRequestError
- type JSONSchema
- type ListBatchesOptions
- type Message
- type MissingAPIKeyError
- type Model
- type ModelLister
- type ModelNotFoundError
- type ModelsResponse
- type ModerationParams
- type ModerationProvider
- type ModerationResponse
- type ModerationResult
- type Option
- type PromptTokensDetails
- type Provider
- type ProviderError
- type RateLimitError
- type Reasoning
- type ReasoningEffort
- type RerankMeta
- type RerankParams
- type RerankProvider
- type RerankResponse
- type RerankResult
- type RerankUsage
- type ResponseFormat
- type StreamOptions
- type Tool
- type ToolCall
- type ToolChoice
- type ToolChoiceFunction
- type ToolConfig
- type ToolInfo
- type ToolOption
- type UnsupportedOperationError
- type UnsupportedParamError
- type UnsupportedProviderError
- type Usage
Constants ¶
const ( ROLE_ASSISTANT = providers.ROLE_ASSISTANT ROLE_SYSTEM = providers.ROLE_SYSTEM ROLE_TOOL = providers.ROLE_TOOL ROLE_USER = providers.ROLE_USER )
Message roles.
const ( CONTENT_PART_TEXT = providers.CONTENT_PART_TEXT CONTENT_PART_FILE = providers.CONTENT_PART_FILE CONTENT_PART_IMAGE_URL = providers.CONTENT_PART_IMAGE_URL CONTENT_PART_INPUT_AUDIO = providers.CONTENT_PART_INPUT_AUDIO )
Content part type constants.
const ( FINISH_REASON_CONTENT_FILTER = providers.FINISH_REASON_CONTENT_FILTER FINISH_REASON_LENGTH = providers.FINISH_REASON_LENGTH FINISH_REASON_STOP = providers.FINISH_REASON_STOP FINISH_REASON_TOOL_CALLS = providers.FINISH_REASON_TOOL_CALLS )
Finish reasons.
const ( BATCH_STATUS_CANCELLED = providers.BATCH_STATUS_CANCELLED BATCH_STATUS_CANCELLING = providers.BATCH_STATUS_CANCELLING BATCH_STATUS_COMPLETED = providers.BATCH_STATUS_COMPLETED BATCH_STATUS_EXPIRED = providers.BATCH_STATUS_EXPIRED BATCH_STATUS_FAILED = providers.BATCH_STATUS_FAILED BATCH_STATUS_FINALIZING = providers.BATCH_STATUS_FINALIZING BATCH_STATUS_IN_PROGRESS = providers.BATCH_STATUS_IN_PROGRESS BATCH_STATUS_VALIDATING = providers.BATCH_STATUS_VALIDATING )
Batch status constants.
const ( REASONING_EFFORT_AUTO = providers.REASONING_EFFORT_AUTO REASONING_EFFORT_HIGH = providers.REASONING_EFFORT_HIGH REASONING_EFFORT_LOW = providers.REASONING_EFFORT_LOW REASONING_EFFORT_MEDIUM = providers.REASONING_EFFORT_MEDIUM REASONING_EFFORT_NONE = providers.REASONING_EFFORT_NONE )
ReasoningEffort levels.
Variables ¶
var ( NewConfig = config.New WithAPIKey = config.WithAPIKey WithBaseURL = config.WithBaseURL WithExtra = config.WithExtra WithHTTPClient = config.WithHTTPClient WithTimeout = config.WithTimeout ContentFromParts = providers.ContentFromParts ContentFromString = providers.ContentFromString )
Configuration options.
var ( ErrAuthentication = errors.ErrAuthentication ErrContentFilter = errors.ErrContentFilter ErrContextLength = errors.ErrContextLength ErrInsufficientFunds = errors.ErrInsufficientFunds ErrInvalidRequest = errors.ErrInvalidRequest ErrMissingAPIKey = errors.ErrMissingAPIKey ErrModelNotFound = errors.ErrModelNotFound ErrProvider = errors.ErrProvider ErrRateLimit = errors.ErrRateLimit ErrUnsupported = errors.ErrUnsupported ErrUnsupportedParam = errors.ErrUnsupportedParam ErrUnsupportedProvider = errors.ErrUnsupportedProvider )
Sentinel errors for type checking with errors.Is().
var ErrToolNotFound = errors.New("tool not found")
Functions ¶
func NewToolsHandler ¶
func NewToolsHandler(tools ...Tool) func(context.Context, FunctionCall, ...ToolOption) (string, error)
Types ¶
type ChatCompletionChunk ¶
type ChatCompletionChunk = providers.ChatCompletionChunk
Request/Response types.
type CompletionTokensDetails ¶
type CompletionTokensDetails = providers.CompletionTokensDetails
Usage and model types.
type EmbeddingResponse ¶
type EmbeddingResponse = providers.EmbeddingResponse
Request/Response types.
type InsufficientFundsError ¶
type InsufficientFundsError = errors.InsufficientFundsError
Error types.
type ModerationResponse ¶
type ModerationResponse = providers.ModerationResponse
Request/Response types.
type PromptTokensDetails ¶
type PromptTokensDetails = providers.PromptTokensDetails
Usage and model types.
type Tool ¶
type Tool interface {
Info() ToolInfo
Function() Function
Execute(context.Context, string, ...ToolOption) (string, error)
ExecuteStream(context.Context, string, ...ToolOption) iter.Seq2[string, error]
}
Tool describes and executes one function that an LLM may call.
type ToolConfig ¶
ToolConfig contains metadata associated with one tool execution.
type ToolOption ¶
type ToolOption func(*ToolConfig)
ToolOption configures one tool execution.
func WithToolMetadata ¶
func WithToolMetadata(metadata map[string]any) ToolOption
WithToolMetadata attaches protocol-specific metadata to a tool execution.
type UnsupportedOperationError ¶
type UnsupportedOperationError = errors.UnsupportedOperationError
Error types.
type UnsupportedProviderError ¶
type UnsupportedProviderError = errors.UnsupportedProviderError
Error types.
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
basic
command
Example: Basic completion request
|
Example: Basic completion request |
|
multi-provider
command
Example: Multi-provider usage
|
Example: Multi-provider usage |
|
streaming
command
Example: Streaming responses
|
Example: Streaming responses |
|
tools
command
Example: Tool/Function calling
|
Example: Tool/Function calling |
|
internal
|
|
|
testutil
Package testutil provides testing utilities and fixtures for llm.
|
Package testutil provides testing utilities and fixtures for llm. |
|
Package providers defines the core provider interface and related types.
|
Package providers defines the core provider interface and related types. |
|
anthropic
Package anthropic provides an Anthropic provider implementation for llm.
|
Package anthropic provides an Anthropic provider implementation for llm. |
|
deepseek
Package deepseek provides a DeepSeek provider implementation for llm.
|
Package deepseek provides a DeepSeek provider implementation for llm. |
|
gateway
Package gateway provides a gateway provider implementation for any-llm.
|
Package gateway provides a gateway provider implementation for any-llm. |
|
gemini
Package gemini provides a Google Gemini provider implementation for llm.
|
Package gemini provides a Google Gemini provider implementation for llm. |
|
groq
Package groq provides a Groq provider implementation for llm.
|
Package groq provides a Groq provider implementation for llm. |
|
openai
Package openai provides an OpenAI provider implementation for llm.
|
Package openai provides an OpenAI provider implementation for llm. |
|
platform
Package platform provides a platform provider implementation for llm.
|
Package platform provides a platform provider implementation for llm. |
|
zai
Package zai provides a z.ai provider implementation for llm.
|
Package zai provides a z.ai provider implementation for llm. |
|
Package sdk provides metadata for the llm library.
|
Package sdk provides metadata for the llm library. |