知识库章节 ▾

导航

▸ 从这里开始 按角色

类别

工具 37
词汇表 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 端聊天机器人、智能体和 RAG 流水线所需的一切。

和任何 LLM 应用一样,面临的主要问题是提供商的成本。流式聊天界面在每次消息中都会发送对话历史,而智能体会在数十个步骤中传递上下文。按照 Anthropic ($3-15/1M) 和 OpenAI ($2.5-10/1M) 的价格,即便是生产环境中的小型项目,每月也会产生数百美元的账单。

JoinGonka Gateway 是基于 去中心化 Gonka 网络 的 OpenAI 兼容端点。Vercel AI SDK 可以像连接任何 OpenAI 兼容提供商一样连接到它——无需分支(fork),无需自定义适配器。与商业托管商使用相同的开放模型——MiniMax M2.7DeepSeek V4 FlashGLM-5.3 Flash,同样使用 streamText,但输入端价格仅为 $0.0069/1M token——成本降低了数十倍。

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

JoinGonka API 密钥:在 gate.joingonka.ai/register 注册 — 我们提供 3M 免费 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 中),而不是代码里。

替代方案 — 使用带有 createOpenAI({ baseURL, apiKey }) 工厂的 @ai-sdk/openai 包。两种方法均可使用;对于非 OpenAI 的端点,AI SDK 文档特别推荐使用 @ai-sdk/openai-compatible,因为它不会引入不必要的 OpenAI 特定假设。

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

Vercel AI SDK 的主要特点是流式响应。streamText 函数立即开始流式传输 token,toUIMessageStreamResponse() 辅助函数直接从 Next.js App Router 的路由处理器中返回准备好的流。

服务器端处理器 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/reactuseChat hook —— 它会自动调用 /api/chat 并渲染消息流。后端直接访问 Gonka,而不是 OpenAI。

无 UI 脚本 (Node,流的异步迭代器):

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 可使用三种模型:MiniMax M2.7 的上下文为 200K token,DeepSeek V4 Flash 为 380K,GLM-5.3 Flash 为 390K;响应限制 (maxOutputTokens) 对于 MiniMax M2.7 和 GLM-5.3 Flash 为 8192,对于 DeepSeek V4 Flash 为 32768:

如果不指定 maxOutputTokens,对于非流式请求,Gateway 默认返回最多 1500 个 token — 对于流式聊天,最好明确指定该值。

成本比较

Vercel AI SDK 通常用于交互式界面 — 聊天、智能体或应用内助手。每条消息都会调用对话历史记录,智能体的每一步操作都会调用工具上下文。因此,实际成本不是按单次请求计算的,而是按生产负载计算的。让我们比较一下典型场景:

场景Token 数量Anthropic / OpenAIJoinGonka Gonka
单条聊天消息~3K$0.01 — $0.05$0.000028
20 轮对话~150K$0.50 — $2.25$0.0014
RAG 回答 (搜索 + 生成)~5K$0.015 — $0.05$0.000048
带工具调用的智能体步骤~10K$0.03 — $0.10$0.000096
每天 10,000 次请求 (生产环境)~50M$150 — $500$0.48

JoinGonka 的价格约为 $0.0069/1M 输入 token,输出成本约为输入的三倍。对于每天有数千次请求的应用,这代表着从数百美元账单与仅几美分成本之间的巨大差异。免费的 3M token 足以让您运行项目的最初请求。

Tool calling 和代理

Vercel AI SDK 通过 tools 对象和 zod 模式以声明式方式描述工具。网络模型支持原生 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。对于每个用户请求都会展开为 5-10 个步骤的智能体应用,生产环境中的成本节省可以按每月数千美元计算。

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

Vercel AI SDK + Gonka = 以极低成本打造 TypeScript 生产级 AI 应用。使用 createOpenAICompatible 即可连接 Gateway,无需修改代码逻辑,generateText 和 streamText 照常工作,原生工具调用和 Next.js 路由处理程序——每 1M tokens 仅需 $0.0069,而 OpenAI 和 Anthropic 则需要 $2.5-15。

想了解更多?

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

获取免费 token →