Documentation
¶
Overview ¶
Package gemini provides Google Gemini API integration for the LLM gateway.
Index ¶
- Variables
- func New(providerCfg providers.ProviderConfig, opts providers.ProviderOptions) core.Provider
- type Provider
- func (p *Provider) CancelBatch(ctx context.Context, id string) (*core.BatchResponse, error)
- func (p *Provider) ChatCompletion(ctx context.Context, req *core.ChatRequest) (*core.ChatResponse, error)
- func (p *Provider) CreateBatch(ctx context.Context, req *core.BatchRequest) (*core.BatchResponse, error)
- func (p *Provider) CreateFile(ctx context.Context, req *core.FileCreateRequest) (*core.FileObject, error)
- func (p *Provider) DeleteFile(ctx context.Context, id string) (*core.FileDeleteResponse, error)
- func (p *Provider) Embeddings(ctx context.Context, req *core.EmbeddingRequest) (*core.EmbeddingResponse, error)
- func (p *Provider) GetBatch(ctx context.Context, id string) (*core.BatchResponse, error)
- func (p *Provider) GetBatchResults(ctx context.Context, id string) (*core.BatchResultsResponse, error)
- func (p *Provider) GetFile(ctx context.Context, id string) (*core.FileObject, error)
- func (p *Provider) GetFileContent(ctx context.Context, id string) (*core.FileContentResponse, error)
- func (p *Provider) ListBatches(ctx context.Context, limit int, after string) (*core.BatchListResponse, error)
- func (p *Provider) ListFiles(ctx context.Context, purpose string, limit int, after string) (*core.FileListResponse, error)
- func (p *Provider) ListModels(ctx context.Context) (*core.ModelsResponse, error)
- func (p *Provider) Responses(ctx context.Context, req *core.ResponsesRequest) (*core.ResponsesResponse, error)
- func (p *Provider) SetBaseURL(url string)
- func (p *Provider) SetModelsURL(url string)
- func (p *Provider) StreamChatCompletion(ctx context.Context, req *core.ChatRequest) (io.ReadCloser, error)
- func (p *Provider) StreamResponses(ctx context.Context, req *core.ResponsesRequest) (io.ReadCloser, error)
Constants ¶
This section is empty.
Variables ¶
var Registration = providers.Registration{ Type: "gemini", New: New, Discovery: providers.DiscoveryConfig{ DefaultBaseURL: defaultOpenAICompatibleBaseURL, CredentialFields: []providers.CredentialField{ {Name: providers.CredentialFieldAPIKeys}, {Name: providers.CredentialFieldBackend, Options: []string{geminiBackendAIStudio, geminiBackendVertex}}, {Name: providers.CredentialFieldBaseURL, Advanced: true}, {Name: providers.CredentialFieldAPIMode, Advanced: true, Options: []string{geminiAPIModeNative, geminiAPIModeOpenAICompatible}}, {Name: providers.CredentialFieldAuthType, Advanced: true, Options: []string{geminiAuthTypeAPIKey, geminiAuthTypeGCPADC, geminiAuthTypeServiceKey}}, {Name: providers.CredentialFieldVertexProject, Advanced: true}, {Name: providers.CredentialFieldVertexLocation, Advanced: true}, {Name: providers.CredentialFieldServiceAccountJSON, Advanced: true}, {Name: providers.CredentialFieldServiceAccountFile, Advanced: true}, {Name: providers.CredentialFieldServiceAccountJSONBase64, Advanced: true}, {Name: providers.CredentialFieldGCPScope, Advanced: true}, }, }, }
Registration provides factory registration for the Gemini provider.
Functions ¶
func New ¶
func New(providerCfg providers.ProviderConfig, opts providers.ProviderOptions) core.Provider
New creates a new Gemini provider.
Types ¶
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider implements the core.Provider interface for Google Gemini
func NewVertexWithHTTPClient ¶
func NewVertexWithHTTPClient(providerCfg providers.ProviderConfig, opts providers.ProviderOptions, httpClient *http.Client) *Provider
NewVertexWithHTTPClient creates a Vertex-configured Gemini provider using an already-authenticated HTTP client. It is used by the vertex package so Vertex owns Google auth while reusing Gemini request/response translation.
func NewWithHTTPClient ¶
NewWithHTTPClient creates a new Gemini provider with a custom HTTP client. If httpClient is nil, http.DefaultClient is used.
func (*Provider) CancelBatch ¶
CancelBatch cancels a native Gemini batch job.
func (*Provider) ChatCompletion ¶
func (p *Provider) ChatCompletion(ctx context.Context, req *core.ChatRequest) (*core.ChatResponse, error)
ChatCompletion sends a chat completion request to Gemini
func (*Provider) CreateBatch ¶
func (p *Provider) CreateBatch(ctx context.Context, req *core.BatchRequest) (*core.BatchResponse, error)
CreateBatch creates a native Gemini batch job through its OpenAI-compatible endpoint.
func (*Provider) CreateFile ¶
func (p *Provider) CreateFile(ctx context.Context, req *core.FileCreateRequest) (*core.FileObject, error)
CreateFile uploads a file through Gemini's OpenAI-compatible /files API.
func (*Provider) DeleteFile ¶
DeleteFile deletes a file object through Gemini's OpenAI-compatible /files API.
func (*Provider) Embeddings ¶
func (p *Provider) Embeddings(ctx context.Context, req *core.EmbeddingRequest) (*core.EmbeddingResponse, error)
Embeddings sends an embeddings request to Gemini via its OpenAI-compatible endpoint
func (*Provider) GetBatchResults ¶
func (p *Provider) GetBatchResults(ctx context.Context, id string) (*core.BatchResultsResponse, error)
GetBatchResults fetches Gemini batch results via the output file API.
func (*Provider) GetFile ¶
GetFile retrieves one file object through Gemini's OpenAI-compatible /files API.
func (*Provider) GetFileContent ¶
func (p *Provider) GetFileContent(ctx context.Context, id string) (*core.FileContentResponse, error)
GetFileContent fetches raw file bytes through Gemini's /files/{id}/content API.
func (*Provider) ListBatches ¶
func (p *Provider) ListBatches(ctx context.Context, limit int, after string) (*core.BatchListResponse, error)
ListBatches lists native Gemini batch jobs.
func (*Provider) ListFiles ¶
func (p *Provider) ListFiles(ctx context.Context, purpose string, limit int, after string) (*core.FileListResponse, error)
ListFiles lists files through Gemini's OpenAI-compatible /files API.
func (*Provider) ListModels ¶
ListModels retrieves the list of available models from Gemini
func (*Provider) Responses ¶
func (p *Provider) Responses(ctx context.Context, req *core.ResponsesRequest) (*core.ResponsesResponse, error)
Responses sends a Responses API request to Gemini (converted to chat format)
func (*Provider) SetBaseURL ¶
SetBaseURL allows configuring a custom base URL for the provider
func (*Provider) SetModelsURL ¶
SetModelsURL allows configuring a custom models API base URL. This is primarily useful for tests and local emulators.
func (*Provider) StreamChatCompletion ¶
func (p *Provider) StreamChatCompletion(ctx context.Context, req *core.ChatRequest) (io.ReadCloser, error)
StreamChatCompletion returns a raw response body for streaming (caller must close)
func (*Provider) StreamResponses ¶
func (p *Provider) StreamResponses(ctx context.Context, req *core.ResponsesRequest) (io.ReadCloser, error)
StreamResponses returns a raw response body for streaming Responses API (caller must close)