OpenRouter Kit 使用教程
openrouter-kit 项目地址: https://gitcode.com/gh_mirrors/op/openrouter-kit
1. 项目介绍
OpenRouter Kit 是一个强大的、灵活的且用户友好的 TypeScript/JavaScript 库,用于与 OpenRouter API 进行交互。它通过提供统一的 API 简化了大型语言模型(LLM)的工作,支持聊天、历史管理、工具调用(函数调用)、请求路由、网络搜索、推理令牌等功能。
2. 项目快速启动
首先,您需要安装 OpenRouter Kit。可以使用以下命令之一:
npm install openrouter-kit
# 或者
yarn add openrouter-kit
# 或者
pnpm add openrouter-kit
然后,您可以通过以下简单的示例来发送请求并从模型中获取响应:
// simple-chat.ts
import { OpenRouterClient } from 'openrouter-kit';
// 初始化客户端并设置您的 API 密钥
const client = new OpenRouterClient({
apiKey: process.env.OPENROUTER_API_KEY || 'sk-or-v1-...',
model: 'google/gemini-2.0-flash-001' // 默认模型
});
async function main() {
console.log('发送简单请求...');
const result = await client.chat({
prompt: '编写 README 的简短问候语。',
model: 'openai/gpt-4o-mini', // 覆盖默认模型
temperature: 0.7
});
console.log('--- 结果 ---');
console.log('模型响应:', result.content);
console.log('使用的模型:', result.model);
console.log('使用的令牌:', result.usage);
}
main();
确保您已经设置了环境变量 OPENROUTER_API_KEY
,或者将其直接硬编码到代码中。
3. 应用案例和最佳实践
对话示例(带历史管理)
为了保持对话上下文,使用 historyAdapter
并传递一个用户 ID。库将自动加载和保存历史记录。
// dialog-chat.ts
import { OpenRouterClient, MemoryHistoryStorage } from 'openrouter-kit';
const client = new OpenRouterClient({
apiKey: process.env.OPENROUTER_API_KEY || 'sk-or-v1-...',
historyAdapter: new MemoryHistoryStorage(),
enableCostTracking: true,
model: 'google/gemini-2.0-flash-001'
});
const userId = 'dialog-user-123'; // 用户唯一 ID
async function runDialog() {
try {
console.log(`[${userId}] 你:你好!你叫什么名字?`);
const result1 = await client.chat({
user: userId,
prompt: "你好!你叫什么名字?"
});
console.log(`[${userId}] 机器人:${result1.content}`);
console.log(`(花费:${result1.cost?.toFixed(6) || 'N/A'})`);
console.log(`\n[${userId}] 你:今天天气怎么样?`);
const result2 = await client.chat({
user: userId,
prompt: "今天天气怎么样?"
});
console.log(`[${userId}] 机器人:${result2.content}`);
console.log(`(花费:${result2.cost?.toFixed(6) || 'N/A'})`);
// 检查保存的历史记录
const historyManager = client.getHistoryManager();
const historyKey = `user:${userId.replace(/[[:]
\/?%]/g, '_')}`;
const history = await historyManager.getHistory(historyKey);
console.log `\n保存的与${historyKey}相关的消息数量:${history.length}`;
} catch (error) {
console.error("\n--- 错误 ---");
console.error(`消息:${error.message}`);
if (error.code) console.error(`错误代码:${error.code}`);
} finally {
console.log('\n结束对话...');
await client.destroy();
}
}
runDialog();
工具使用示例(工具/函数调用)
此示例展示如何让模型使用您提供的函数(工具)来获取外部信息。
// tools-example.js (CommonJS)
const { OpenRouterClient } = require("openrouter-kit");
// 示例数据(用您的实际数据源替换)
const users = [
{ id: "user_1001", nick: "alice" },
// ...
];
const messages = [
{ id: "msg_101", userId: "user_1001", content: "Hi!" },
// ...
];
// 工具定义
const userTools = [
{
type: "function",
function: {
name: "getUserIdByNick",
description: "根据昵称获取用户 ID",
parameters: {
type: "object",
properties: {
nick: { type: "string" }
},
required: ["nick"]
}
},
execute: async (args) => {
console.log(`[工具执行:getUserIdByNick] 参数:${JSON.stringify(args)}`);
const user = users.find(u => u.nick.toLowerCase() === args.nick.toLowerCase());
return user ? { userId: user.id, found: true } : { userId: null, found: false };
}
},
// ...
];
// ...
4. 典型生态项目
OpenRouter Kit 可以与多种生态项目配合使用,例如:
- 用于对话系统的项目,可以集成 OpenRouter Kit 以提供更自然、上下文相关的对话。
- 在复杂的决策支持系统中,可以利用 OpenRouter Kit 的工具调用功能来访问外部数据和系统。
通过以上介绍,您可以开始使用 OpenRouter Kit 构建强大的应用。
openrouter-kit 项目地址: https://gitcode.com/gh_mirrors/op/openrouter-kit