The pattern
All providers live inlangchat.providers. Every provider reads credentials from environment variables automatically — you don’t pass keys in code.
LLM providers
OpenAI
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
ANTHROPIC_API_KEY
Google Gemini
GEMINI_API_KEY or GOOGLE_API_KEY (either works)
Mistral
MISTRAL_API_KEY
Cohere
COHERE_API_KEY
Ollama (local)
No API key required. Ollama runs on your own machine.Vector database
Pinecone
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.History database
Supabase
SUPABASE_URL and SUPABASE_KEY (or SUPABASE_SERVICE_ROLE_KEY)
LangChat creates the required tables automatically on first run.
LangChat settings
Pass these toLangChat(...) 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.
