LangChain
Track usage, control costs, and add guardrails to your LangChain applications
What is LangChain?
LangChain is the most widely adopted framework for developing applications powered by large language models. It provides composable building blocks for chains, agents, retrieval (RAG), and tool calling.
By routing LangChain through FastRouter, you get:
100+ models from OpenAI, Anthropic, Google, xAI, Meta, Groq, Mistral, and more through one endpoint, no separate provider SDKs or keys inside your LangChain code
Observability for every request: cost, tokens, latency, and model selection tracked in real time
Reliability through automatic failover across providers, response caching, and intelligent routing
Governance with per-key budgets, rate limits, model restrictions, role-based access, and project isolation
This guide covers connecting LangChain (Python) to FastRouter via ChatOpenAI, plus streaming, tool calling, and model selection. It does not cover LangChain.js.
Prerequisites
A FastRouter.ai account (sign up)
Python 3.10 or higher
Quick Start
Step 1: Create a Project and Virtual Environment
You'll only need to do this once:
mkdir my_projectcd my_projectpython -m venv .venvActivate the virtual environment. Do this every time you start a new terminal session.
On macOS or Linux:
On Windows:
Step 2: Install LangChain
Step 3: Get Your FastRouter API Key
Sign up or log in at fastrouter.ai
Navigate to your project's Keys page
Click Create User Key
Copy the key immediately. FastRouter does not display the key again after creation.
Export it in your terminal:
Step 4: Point ChatOpenAI at FastRouter
FastRouter is fully OpenAI-compatible, so the standard ChatOpenAI class works out of the box—just override the base URL. Save this as langchain_example.py:
Step 5: Run the Script

Streaming and Tool Calling
Because ChatOpenAI is LangChain's standard chat model interface, the FastRouter-backed llm object drops into any LangChain feature. Both of these run through FastRouter unchanged:
Use LangChain with 100+ Models
FastRouter uses the provider/model-name format. Switch providers by changing the model slug—no new dependencies or credentials:
Explore the full model catalog
Automatic Model Selection
Let FastRouter pick the best model for each request based on query complexity, domain, and cost:
Explore automatic model selection
Flex Pricing for Batch Workloads
For RAG indexing, evaluation runs, or other batch chains that tolerate higher latency, append :flex to any model to access up to 50% lower token costs:
Note: Flex is not recommended for interactive chains where you need low-latency responses.
FAQs
Configuration & Setup
Can I use multiple models with the same API key?
Yes. The API key controls access and budget. The model is selected per ChatOpenAI instance, and you can run several models side by side in one application.
What if OPENAI_API_KEY is already set in my environment?
The explicit api_key= argument takes precedence. Pass your FastRouter key directly to avoid accidentally routing to OpenAI.
Can I restrict a key to only use specific models?
Yes. When creating or editing a key, use the Select Models setting to limit which models the key can access. FastRouter rejects requests to unauthorized models.
bind_tools raises ValidationError: invalid_tool_calls.0.args — Input should be a valid string. What's wrong?
Some model routes currently return tool-call arguments as a JSON object instead of the JSON-encoded string the OpenAI specification requires. Plain invoke and stream calls are unaffected, but tool calling fails. If you hit this error, switch to a model verified for tool calling through FastRouter, such as openai/gpt-5.2 or anthropic/claude-4.5-sonnet.
Costs & Budgeting
How do I track LangChain spending by team or app?
Create separate projects for each team, issue project-scoped API keys, and use Dynamic Tags for finer-grained attribution. The Dashboard breaks down costs by project, key, model, and tag.
Performance & Reliability
Does FastRouter add latency to LangChain calls?
FastRouter adds near-zero gateway overhead. For most chains, this is negligible compared to model inference time.
Next Steps
Set up Fallback Models for high availability
Configure Alerts for spend and performance monitoring
Run a Free Audit on your existing LLM traffic to identify savings
Last updated
