OpenRouter Kit 使用教程

OpenRouter Kit 使用教程

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 openrouter-kit 项目地址: https://gitcode.com/gh_mirrors/op/openrouter-kit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俞予舒Fleming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值