Skip to content
On this page

LangChain 接入

LangChain 可以通过 OpenAI 兼容接口接入 CoreRouter。核心配置仍然是 API Key、Base URL 和 Model ID。

Python

安装

bash
pip install langchain-openai

基础使用

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.tech/v1",
)

response = llm.invoke("你好,请介绍一下你自己。")
print(response.content)

流式输出

python
for chunk in llm.stream("用三句话介绍 CoreRouter。"):
    print(chunk.content, end="", flush=True)

Chain 示例

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.tech/v1",
)

prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个专业的翻译助手。"),
    ("user", "请将以下内容翻译成英文:{text}"),
])

chain = prompt | llm | StrOutputParser()

print(chain.invoke({"text": "你好,世界"}))

JavaScript / TypeScript

安装

bash
npm install @langchain/openai @langchain/core langchain

基础使用

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.tech/v1",
  },
});

const response = await llm.invoke("你好,请介绍一下你自己。");
console.log(response.content);

Chain 示例

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.tech/v1",
  },
});

const prompt = ChatPromptTemplate.fromMessages([
  ["system", "你是一个专业的翻译助手。"],
  ["user", "请将以下内容翻译成英文:{text}"],
]);

const chain = prompt.pipe(llm).pipe(new StringOutputParser());

console.log(await chain.invoke({ text: "你好,世界" }));

模型与能力

  • 普通聊天:选择任意可用聊天模型。
  • Tool Calling / Agent:选择控制台标记支持工具调用或 Coding Agent 的模型。
  • Vision:选择支持图像输入的模型。
  • RAG:聊天模型和 Embeddings 模型可能需要分别配置,请以控制台模型列表为准。
  • Responses API:如果应用或 Agent 依赖 Responses API,请先用支持 Responses 的 Model ID 单独验证 /v1/responses,不要只验证 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.tech/v1",
)

vector = embeddings.embed_query("CoreRouter 文档")
print(len(vector))

常见问题

旧版参数名不生效

LangChain 版本不同,参数名可能是 model / modelName、apiKey / openAIApiKey。如果示例报类型错误,请先升级依赖,或按当前包版本的类型提示调整。

Agent 无法调用工具

先用普通 OpenAI SDK 的工具调用示例测试同一个模型。如果 SDK 也没有返回 tool_calls,说明当前模型或渠道不支持该能力。

RAG 查询效果异常

确认文档入库和查询使用同一个 Embeddings 模型,并检查向量维度、文本切分和召回数量。

Released under the MIT License.