Skip to content

Providers

GoAI SDK supports 22+ LLM providers with a single unified API. Most hosted providers auto-resolve credentials from environment variables; local/custom providers (for example ollama, vllm, compat) typically use explicit options.

All 7 core functions — GenerateText, StreamText, GenerateObject[T], StreamObject[T], Embed, EmbedMany, and GenerateImage — work identically across all providers.

Tier 1

Dedicated implementations with extended API support.

ProviderChatEmbedImageProvider ToolsAuth Env Var
OpenAIgpt-4o, o3text-embedding-3-*gpt-image-14 toolsOPENAI_API_KEY
Anthropicclaude-*10 toolsANTHROPIC_API_KEY
Googlegemini-*text-embedding-004imagen-*3 toolsGOOGLE_GENERATIVE_AI_API_KEY or GEMINI_API_KEY
Bedrockanthropic.*, meta.*titan-embed-*, cohere.embed-*AWS_ACCESS_KEY_ID
Azuregpt-4o, claude-*AZURE_OPENAI_API_KEY
Vertex AIgemini-*ADC, or GOOGLE_API_KEY / GEMINI_API_KEY / GOOGLE_GENERATIVE_AI_API_KEY fallback

Tier 2

ProviderChatEmbedImageProvider ToolsAuth Env Var
Coherecommand-r-*embed-*COHERE_API_KEY
Mistralmistral-large, magistral-*MISTRAL_API_KEY
xAI (Grok)grok-*2 toolsXAI_API_KEY
Groqllama-*, mixtral-*1 toolGROQ_API_KEY
DeepSeekdeepseek-chat, deepseek-reasonerDEEPSEEK_API_KEY
MiniMaxMiniMax-M2.7, MiniMax-M2.5, MiniMax-M2.1, MiniMax-M2MINIMAX_API_KEY

Tier 3

Most use the shared internal/openaicompat codec (some wrappers delegate via provider/compat).

ProviderEndpointAuth Env Var
Fireworksapi.fireworks.aiFIREWORKS_API_KEY
Togetherapi.together.xyzTOGETHER_AI_API_KEY (or TOGETHER_API_KEY)
DeepInfraapi.deepinfra.comDEEPINFRA_API_KEY
OpenRouteropenrouter.aiOPENROUTER_API_KEY
Perplexityapi.perplexity.aiPERPLEXITY_API_KEY
Cerebrasapi.cerebras.aiCEREBRAS_API_KEY
RunPodapi.runpod.aiRUNPOD_API_KEY

Local / Custom

ProviderDefault EndpointAuthFeatures
Ollamalocalhost:11434/v1None requiredEmbedding support
vLLMlocalhost:8000/v1OptionalEmbedding support
Generic Compatible(required)ConfigurableAny OpenAI-compatible endpoint

Common Options

Most providers support these options (Bedrock uses AWS credential options; Azure uses WithEndpoint; Ollama requires no auth):

go
openai.WithAPIKey(key)        // Static API key
openai.WithTokenSource(ts)    // Dynamic auth (OAuth, service accounts)
openai.WithBaseURL(url)       // Override endpoint
openai.WithHeaders(h)         // Custom HTTP headers
openai.WithHTTPClient(c)      // Custom HTTP transport

Each provider package exports its own With* functions with broadly similar signatures (with provider-specific exceptions where needed).

Released under the MIT License.