Skip to main content

The pattern

All providers live in langchat.providers. Every provider reads credentials from environment variables automatically — you don’t pass keys in code.
You can also pass credentials explicitly when environment variables aren’t available:

LLM providers

OpenAI

Environment variable: OPENAI_API_KEY Available models: gpt-4o-mini · gpt-4o · gpt-4-turbo · gpt-3.5-turbo · any valid OpenAI chat model Multiple API keys (automatic rotation on failure):
str
default:"gpt-4o-mini"
OpenAI model name. First positional argument.
str | None
default:"None"
API key. Defaults to OPENAI_API_KEY environment variable.
list[str] | None
default:"None"
Multiple API keys for automatic rotation. Takes precedence over api_key.
float
default:"1.0"
Sampling temperature. Lower = more deterministic.
int
default:"2"
Retries per key before rotating to the next one.

Anthropic

Environment variable: ANTHROPIC_API_KEY

Google Gemini

Environment variables: GEMINI_API_KEY or GOOGLE_API_KEY (either works)

Mistral

Environment variable: MISTRAL_API_KEY

Cohere

Environment variable: COHERE_API_KEY

Ollama (local)

No API key required. Ollama runs on your own machine.
Install Ollama and pull a model first:

Vector database

Pinecone

Environment variables: PINECONE_API_KEY and OPENAI_API_KEY (for embeddings)
str
required
Pinecone index name. First positional argument.
str | None
default:"None"
Pinecone API key. Defaults to PINECONE_API_KEY.
str | None
default:"None"
OpenAI API key for embeddings. Defaults to OPENAI_API_KEY.
str
default:"text-embedding-3-large"
OpenAI embedding model. Use text-embedding-3-small for lower cost.
Your Pinecone index dimensions must match the embedding model:
  • text-embedding-3-large3072 dimensions
  • text-embedding-3-small1536 dimensions

History database

Supabase

Environment variables: SUPABASE_URL and SUPABASE_KEY (or SUPABASE_SERVICE_ROLE_KEY) LangChat creates the required tables automatically on first run.

LangChat settings

Pass these to LangChat(...) as keyword arguments:
Any
required
LLM provider instance.
Any
required
Vector database provider instance.
Any
required
History database provider instance.
Any | None
default:"None"
Reranker instance. Defaults to FlashrankRerankAdapter with ms-marco-MiniLM-L-12-v2.
str | None
default:"None"
System prompt template. Must contain {context}, {chat_history}, {question}. See Prompts guide.
str | None
default:"None"
Prompt for reformulating follow-up questions. Must contain {chat_history} and {question}.
bool
default:"False"
Enable verbose LangChain chain logging.
int
default:"20"
Number of past exchanges to include in each prompt. One exchange = one user message + one AI response.

Complete example