概述
集成详情
模型功能
设置
要通过 OpenRouter 访问模型,您需要创建一个 OpenRouter 账户,获取 API 密钥,并安装@langchain/openrouter 集成包。
凭证
前往 OpenRouter 密钥页面 注册并生成 API 密钥。完成此操作后,设置OPENROUTER_API_KEY 环境变量:
安装
LangChain OpenRouter 集成位于@langchain/openrouter 包中:
实例化
现在您可以实例化模型:调用
流式输出
工具调用
OpenRouter 使用与 OpenAI 兼容的工具调用格式。您可以描述工具及其参数,并让模型返回一个包含要调用的工具及其输入的 JSON 对象。绑定工具
使用ChatOpenRouter.bindTools,您可以将 Zod 模式、LangChain 工具或原始函数定义作为工具传递给模型。在底层,这些会被转换为 OpenAI 工具模式,并在每次模型调用时传递。
严格模式
将strict: true 传递给模型,以确保模型输出与工具定义中提供的 JSON 模式完全匹配:
结构化输出
ChatOpenRouter 通过 .withStructuredOutput() 方法支持结构化输出。提取策略根据模型功能自动选择:
jsonSchema—原生 JSON 模式响应格式(当模型支持时使用)functionCalling—将模式包装为工具调用(默认回退)jsonMode—要求模型在无严格模式约束的情况下以 JSON 格式响应
当多模型路由处于活动状态(
models 列表或 route: "fallback"),该方法始终回退到 functionCalling,因为实际后端模型的功能在请求时未知。strict: true 与 jsonSchema 和 functionCalling 方法传递,以强制执行精确的模式遵循:
多模态输入
OpenRouter 支持对接受它们的模型进行 多模态输入。可用的模态取决于您选择的模型—请查看 OpenRouter 模型页面 获取详细信息。并非所有模型都支持所有模态。请查看 OpenRouter 模型页面 获取模型特定的支持信息。
图像输入
使用列表内容格式提供图像输入和文本。Token 使用元数据
调用后,token 使用信息可在响应的usage_metadata 属性上获取:
output_token_details.reasoning—用于内部思维链推理的 tokeninput_token_details.cache_read—从提示词缓存中提供的输入 token
提供者路由
OpenRouter 上的许多模型由多个提供者提供服务。provider 参数让您可以控制哪些提供者处理您的请求以及如何选择它们。
设置和过滤提供者
使用order 设置首选提供者顺序。OpenRouter 按顺序尝试每个提供者,如果某个提供者不可用,则回退到下一个:
only。要排除某些提供者,请使用 ignore:
按成本、速度或延迟排序
默认情况下,OpenRouter 在提供者之间进行负载均衡,优先考虑较低成本。使用sort 更改优先级:
数据收集策略
如果您的用例要求提供者不存储或基于您的数据训练,请将data_collection 设置为 "deny":
按量化过滤
对于开放权重模型,您可以限制路由到特定的精度级别:组合选项
提供者选项可以组合在一起:多模型路由
OpenRouter 支持跨多个模型路由请求。传递models 数组和可选的 route 策略:
插件
OpenRouter 支持扩展模型功能的 插件。通过plugins 参数传递插件配置:
web(网络搜索)、file-parser(PDF 解析)、moderation、auto-router 和 response-healing。
应用归因
OpenRouter 通过 HTTP 头支持应用归因。通过构造函数参数设置这些头:API 参考
查看所有ChatOpenRouter 功能和配置的详细文档,请访问 ChatOpenRouter API 参考。
有关 OpenRouter 平台、模型和功能的更多信息,请参阅 OpenRouter 文档。
官方原文:src/oss/javascript/integrations/chat/openrouter.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。