Documentation
¶
Overview ¶
Package openai implements the OpenAI LLM provider.
Index ¶
- Constants
- type Config
- type InternalTools
- type Provider
- func (p *Provider) AvailableModels() []llmproxy.ModelInfo
- func (p *Provider) Chat(ctx context.Context, req *llmproxy.ChatRequest) (*llmproxy.ChatResponse, error)
- func (p *Provider) DeleteFile(ctx context.Context, fileID llmproxy.FileID) (bool, error)
- func (p *Provider) Embed(ctx context.Context, req *llmproxy.EmbeddingRequest) (*llmproxy.EmbeddingResponse, error)
- func (p *Provider) EmbeddingDimension(model llmproxy.ModelID) (int, error)
- func (p *Provider) Health(ctx context.Context) error
- func (p *Provider) ProviderID() llmproxy.ProviderID
- func (p *Provider) UploadFile(ctx context.Context, req *llmproxy.FileUploadRequest) (*llmproxy.FileUploadResponse, error)
- type SearchContextSize
- type WebSearchConfig
Constants ¶
const ProviderID llmproxy.ProviderID = "OpenAI"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
APIKey string `env:"OPENAI_API_KEY"`
// InternalTools governs whether and how native provider-side tools fire when
// the corresponding marker tool is included in a ChatRequest.
InternalTools InternalTools
}
Config holds OpenAI-specific provider configuration. APIKey is env-parsed; InternalTools is programmatic (defaults or operator overrides).
type InternalTools ¶
type InternalTools struct {
// WebSearch enables OpenAI's native web_search tool when non-nil and a
// llmproxy.WebSearch marker is present in the request. nil means
// "native search disabled even if the marker is passed."
WebSearch *WebSearchConfig
}
InternalTools groups OpenAI-side native tool configurations.
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider implements Provider for OpenAI
func (*Provider) AvailableModels ¶
AvailableModels returns the static list of OpenAI models exposed by this provider.
func (*Provider) Chat ¶
func (p *Provider) Chat(ctx context.Context, req *llmproxy.ChatRequest) (*llmproxy.ChatResponse, error)
Chat sends a prompt to OpenAI and returns the response
func (*Provider) DeleteFile ¶
DeleteFile removes a file from OpenAI
func (*Provider) Embed ¶
func (p *Provider) Embed(ctx context.Context, req *llmproxy.EmbeddingRequest) (*llmproxy.EmbeddingResponse, error)
Embed generates embeddings for the given inputs using an OpenAI embedding model.
func (*Provider) EmbeddingDimension ¶
EmbeddingDimension returns the output dimension for the given embedding model.
func (*Provider) ProviderID ¶
func (p *Provider) ProviderID() llmproxy.ProviderID
ProviderID returns the unique identifier of the LLM provider.
func (*Provider) UploadFile ¶
func (p *Provider) UploadFile(ctx context.Context, req *llmproxy.FileUploadRequest) (*llmproxy.FileUploadResponse, error)
UploadFile uploads a file to OpenAI
type SearchContextSize ¶
type SearchContextSize string
SearchContextSize controls how much context OpenAI's native web search returns.
const ( SearchContextSizeLow SearchContextSize = "low" SearchContextSizeMedium SearchContextSize = "medium" SearchContextSizeHigh SearchContextSize = "high" )
type WebSearchConfig ¶
type WebSearchConfig struct {
// ContextSize controls how much search context is returned. Empty defaults to low.
ContextSize SearchContextSize
}
WebSearchConfig configures OpenAI's native web_search tool.