Skip to content

Provider Management

Auto-Configuration

Sema auto-detects and configures all available providers from environment variables on startup. No manual setup is required — just set the API key for your provider.

llm/auto-configure

Manually trigger auto-configuration (runs automatically on startup unless --no-llm is used).

scheme
(llm/auto-configure)

Manual Configuration

llm/configure

Manually configure a provider with specific options.

scheme
(llm/configure :anthropic {:api-key "sk-..."})

;; Ollama with custom host
(llm/configure :ollama {:host "http://localhost:11434"
                         :default-model "llama3"})

Runtime Provider Switching

llm/list-providers

List all configured providers.

scheme
(llm/list-providers)   ; => (:anthropic :gemini :openai ...)

llm/current-provider

Get the currently active provider and model.

scheme
(llm/current-provider)   ; => {:name :anthropic :model "claude-sonnet-4-20250514"}

llm/set-default

Switch the active provider at runtime.

scheme
(llm/set-default :openai)

Supported Providers

All providers are auto-configured from environment variables. Use (llm/configure :provider {...}) for manual setup.

ProviderTypeChatStreamToolsEmbeddings
AnthropicNative
OpenAINative
Google GeminiNative
OllamaNative (local)
GroqOpenAI-compat
xAIOpenAI-compat
MistralOpenAI-compat
MoonshotOpenAI-compat
JinaEmbedding-only
VoyageEmbedding-only
CohereEmbedding-only

Environment Variables

VariableDescription
ANTHROPIC_API_KEYAnthropic API key
OPENAI_API_KEYOpenAI API key
GROQ_API_KEYGroq API key
XAI_API_KEYxAI/Grok API key
MISTRAL_API_KEYMistral API key
MOONSHOT_API_KEYMoonshot API key
GOOGLE_API_KEYGoogle Gemini API key
OLLAMA_HOSTOllama server URL (default: http://localhost:11434)
JINA_API_KEYJina embeddings API key
VOYAGE_API_KEYVoyage embeddings API key
COHERE_API_KEYCohere embeddings API key
SEMA_DEFAULT_MODELDefault model name
SEMA_LLM_PROVIDERPreferred provider