Skip to content

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-openai

Basic 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 langchain

Basic 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/responses separately 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.

Released under the MIT License.