知识库章节 ▾

导航

▸ 从这里开始 按角色

类别

工具 32
词汇表 12

工具

Vercel AI SDK + Gonka AI — 低成本的 TypeScript AI 应用程序

Vercel AI SDK 是用于构建 TypeScript 和 JavaScript AI 应用最流行的 SDK。它提供统一的 generateTextstreamText API、UI 流式传输、原生 tool calling 以及适用于 Next.js App Router 的内置助手——涵盖了在 Web 上构建聊天机器人、Agent 和 RAG 流水线所需的一切。

所有 LLM 应用面临的共同问题是提供商的价格。流式聊天界面在每条消息中发送对话历史,Agent 在数十个步骤中处理上下文。按照 Anthropic(每 1M token $3-15)和 OpenAI(每 1M token $2.5-10)的价格,即使是生产环境中的一个小项目,每月也可能产生数百美元的账单。

JoinGonka Gateway 是基于 去中心化 Gonka 网络 的 OpenAI 兼容端点。Vercel AI SDK 可以像连接任何 OpenAI 兼容提供商一样连接到它——无需 fork,无需自定义适配器。使用相同的 Kimi K2.6 模型,相同的 streamText,但每 1M 输入 token 仅需 $0.003——成本降低了数百到数千倍。

第 1 步:获取密钥并连接提供商

JoinGonka API 密钥:请在 gate.joingonka.ai/register 注册 — 我们会在初始时提供 1000 万免费 Token。在 Dashboard 中,创建一个带有 jg- 前缀的密钥。

包安装。对于自定义兼容 OpenAI 的端点,Vercel AI SDK 推荐使用 @ai-sdk/openai-compatible 提供程序:

npm install ai @ai-sdk/openai-compatible

最小化配置 — 通过 createOpenAICompatible 创建一个提供程序实例并调用 generateText

import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { generateText } from 'ai';

const gonka = createOpenAICompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY, // jg-你的密钥
});

const { text } = await generateText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  prompt: '解释什么是去中心化推理网络',
});

console.log(text);

apiKey 参数会自动添加 Authorization: Bearer jg-你的密钥 请求头,无需额外设置。请将密钥存储在 GONKA_API_KEY 环境变量中(例如在 .env.local 中),而不要将其写在代码里。

替代方案 — 使用 @ai-sdk/openai 包及其 createOpenAI({ baseURL, apiKey }) 工厂函数。两种方式均可使用;对于非 OpenAI 端点,AI SDK 的文档明确建议使用 @ai-sdk/openai-compatible,因为它不会带有不必要的 OpenAI 特定假设。

第 2 步:流式传输和 Next.js 路由处理程序

Vercel AI SDK 的核心特性是流式响应。streamText 函数会立即开始分发 token,而 toUIMessageStreamResponse() 辅助工具则可以直接从 Next.js App Router 的 route handler 中返回完整的流。

服务端处理器 app/api/chat/route.ts:

import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { streamText, convertToModelMessages, type UIMessage } from 'ai';

const gonka = createOpenAICompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY,
});

// 允许最长 30 秒的流传输
export const maxDuration = 30;

export async function POST(req: Request) {
  const { messages }: { messages: UIMessage[] } = await req.json();

  const result = streamText({
    model: gonka('MiniMaxAI/MiniMax-M2.7'),
    system: '你是一位有用的助手。请简明扼要地回答。',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // 通过 Gateway 限制输出长度
  });

  return result.toUIMessageStreamResponse();
}

在客户端,请使用 @ai-sdk/react 提供的 useChat hook——它会自动请求 /api/chat 并渲染消息流。此时,后端调用的是 Gonka 而非 OpenAI。

非 UI 脚本 (Node, 使用 async-iterator 处理流):

import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { streamText } from 'ai';

const gonka = createOpenAICompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY,
});

const result = streamText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  prompt: '写一首关于分布式计算的俳句',
});

for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}

模型参数。通过 Gateway 可使用两款模型,两者的上下文窗口均为 200K tokens;每种模型的输出限制 (maxOutputTokens) 最高可达 8192

若未设置 maxOutputTokens,对于非流式请求,Gateway 默认返回最多 1500 tokens——建议在流式聊天场景中明确指定该值。

成本比较

Vercel AI SDK 通常用于交互式界面——如聊天、Agent 或应用内助手。每条消息都包含对话历史,每个 Agent 步骤都包含工具上下文。因此,实际成本应按生产负载计算,而非单次请求。以下是典型场景对比:

场景TokensAnthropic / OpenAIJoinGonka Gonka
单条聊天消息~3K$0.01 — $0.05$0.000014
20 条对话记录~150K$0.50 — $2.25$0.00072
RAG 响应 (搜索+生成)~5K$0.015 — $0.05$0.000024
带 tool calling 的 Agent 步骤~10K$0.03 — $0.10$0.000048
每天 10,000 次请求 (生产环境)~50M$150 — $500$0.24

JoinGonka 的价格约为每 1M 输入 token $0.003,输出成本约为输入的三倍。对于每天有数千次请求的应用来说,这不仅是账单金额的巨大差异(从几百美元降至几美分)。免费提供的 10M tokens 足以让您在投入生产环境之前完成项目的完整运行和调试。

Tool calling 和代理

Vercel AI SDK 通过 tools 对象和 zod 模式以声明式方式定义工具。Kimi K2.6 支持原生的 function calling,因此 AI SDK 可以直接接收结构化的 tool_calls,无需解析文本响应。使用 stopWhen: stepCountIs(n) 参数可以允许连续执行多个步骤 —— 模型调用工具,获取结果并继续处理。

import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { generateText, tool, stepCountIs } from 'ai';
import { z } from 'zod';

const gonka = createOpenAICompatible({
  name: 'gonka',
  baseURL: 'https://gate.joingonka.ai/v1',
  apiKey: process.env.GONKA_API_KEY,
});

const { text } = await generateText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  stopWhen: stepCountIs(5),
  tools: {
    weather: tool({
      description: '查询城市天气',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: '莫斯科天气如何?请用一句话回答。',
});

console.log(text);

模型调用 weather 工具,获取结果并生成最终回复。使用 Gonka 完成整个循环的成本约为 $0.000048,而在 Anthropic 或 OpenAI 上则为 $0.03-$0.10。对于代理应用(agentic applications),当用户的每个请求展开为 5-10 个步骤时,生产环境下的成本节省可达每月数千美元。

如果您正在使用 Python 构建 AI 应用,请查看 LangChain 指南 —— 它通过兼容 OpenAI 的类使用相同的方法。

Vercel AI SDK + Gonka = 极低成本的生产级 TypeScript AI 应用。createOpenAICompatible 无需分叉即可连接 Gateway,generateText 和 streamText 正常工作,原生 tool calling 和 Next.js route handlers —— 全部仅需 $0.003/1M token,取代了 OpenAI 和 Anthropic 的 $2.5-15 价格。

想了解更多?

探索其他章节或立即开始赚取 GNK。

获取免费的 10M 令牌 →