LangChain Integration
LangChain can integrate with CoreRouter via OpenAI-compatible interfaces. Core configuration remains API Key, Base URL, and Model ID.
Python
Installation
bash
pip install langchain-openaiBasic Usage
python
from langchain_openai import ChatOpenAI
import os
llm = ChatOpenAI(
model="claude-sonnet-4-5",
api_key=os.environ["COREROUTER_API_KEY"],
base_url="https://api.corerouter.cloud/v1",
)
response = llm.invoke("Hello, please introduce yourself.")
print(response.content)Streaming Output
python
for chunk in llm.stream("Introduce CoreRouter in three sentences."):
print(chunk.content, end="", flush=True)Chain Example
python
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
import os
llm = ChatOpenAI(
model="claude-sonnet-4-5",
api_key=os.environ["COREROUTER_API_KEY"],
base_url="https://api.corerouter.cloud/v1",
)
prompt = ChatPromptTemplate.from_messages([
("system", "You are a professional translation assistant."),
("user", "Please translate the following to English: {text}"),
])
chain = prompt | llm | StrOutputParser()
print(chain.invoke({"text": "你好,世界"}))JavaScript / TypeScript
Installation
bash
npm install @langchain/openai @langchain/core langchainBasic Usage
typescript
import { ChatOpenAI } from "@langchain/openai";
const llm = new ChatOpenAI({
model: "claude-sonnet-4-5",
apiKey: process.env.COREROUTER_API_KEY,
configuration: {
baseURL: "https://api.corerouter.cloud/v1",
},
});
const response = await llm.invoke("Hello, please introduce yourself.");
console.log(response.content);Chain Example
typescript
import { StringOutputParser } from "@langchain/core/output_parsers";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { ChatOpenAI } from "@langchain/openai";
const llm = new ChatOpenAI({
model: "claude-sonnet-4-5",
apiKey: process.env.COREROUTER_API_KEY,
configuration: {
baseURL: "https://api.corerouter.cloud/v1",
},
});
const prompt = ChatPromptTemplate.fromMessages([
["system", "You are a professional translation assistant."],
["user", "Please translate the following to English: {text}"],
]);
const chain = prompt.pipe(llm).pipe(new StringOutputParser());
console.log(await chain.invoke({ text: "你好,世界" }));Models and Capabilities
- Regular chat: Select any available chat model.
- Tool Calling / Agent: Select models marked as supporting tool calling or Coding Agent in the console.
- Vision: Select models that support image input.
- RAG: Chat models and Embeddings models may need separate configuration; refer to console model list.
- Responses API: If the application or Agent depends on Responses API, first validate
/v1/responsesseparately with a Model ID that supports Responses; don't only validate Chat Completions.
Embeddings
python
from langchain_openai import OpenAIEmbeddings
import os
embeddings = OpenAIEmbeddings(
model="embedding-model-id",
api_key=os.environ["COREROUTER_API_KEY"],
base_url="https://api.corerouter.cloud/v1",
)
vector = embeddings.embed_query("CoreRouter documentation")
print(len(vector))Common Issues
Legacy Parameter Names Don't Work
Different LangChain versions may use different parameter names: model / modelName, apiKey / openAIApiKey. If the example throws a type error, upgrade dependencies first, or adjust according to current package version type hints.
Agent Cannot Call Tools
First test tool calling with the same model using regular OpenAI SDK examples. If SDK doesn't return tool_calls either, the current model or channel doesn't support that capability.
RAG Query Results Abnormal
Confirm the same Embeddings model is used for document indexing and querying, and check vector dimensions, text chunking, and recall count.
