知识库章节 ▾

导航

▸ 从这里开始 按角色

类别

工具 54
词汇表 12

工具

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

Vercel AI SDK 是用于在 TypeScript 和 JavaScript 中构建 AI 应用的最流行 SDK。它提供统一的 generateText 和 streamText 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.7、DeepSeek V4 Flash 和 GLM-5.3 Flash,同样使用 streamText,但输入端价格仅为 $0.0062/1M token——成本降低了数十倍。

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

JoinGonka API 密钥:前往 gate.joingonka.ai/register 注册 —— 起步即赠送 3M 免费代币。在 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-your-key
});

const { text } = await generateText({
  model: gonka('MiniMaxAI/MiniMax-M2.7'),
  prompt: 'Explain what a decentralized inference network is',
});

console.log(text);

apiKey 参数会自动添加 Authorization: Bearer jg-your-key 请求头,无需另行配置。请将密钥保存在 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,
});

// allow streaming for up to 30 seconds
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: 'You are a helpful assistant. Answer briefly and to the point.',
    messages: convertToModelMessages(messages),
    maxOutputTokens: 8192, // Gateway output cap
  });

  return result.toUIMessageStreamResponse();
}

在客户端接入 @ai-sdk/react 提供的 useChat 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: 'Write a haiku about distributed computing',
});

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

模型参数。通过 Gateway 可使用三款模型:MiniMax M2.7 的上下文为 180K token,DeepSeek V4 Flash 为 380K,GLM-5.3 Flash 为 390K;响应上限(maxOutputTokens)在 MiniMax M2.7 和 GLM-5.3 Flash 上为 8192,在 DeepSeek V4 Flash 上为 32768:

  • MiniMaxAI/MiniMax-M2.7 —— 默认模型(MiniMax M2.7);
  • deepseek-ai/DeepSeek-V4-Flash-0731(DeepSeek V4 Flash,380K 上下文);
  • zai-org/GLM-5.3-Flash(GLM-5.3 Flash,推理模型 —— 作答前会先进行思考)。

如果不设置 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.0062/1M 输入 token,输出成本约为输入的三倍。对于每天有数千次请求的应用,这代表着从数百美元账单与仅几美分成本之间的巨大差异。免费的 3M token 足以让您运行项目的最初请求。

Tool calling 和代理

Vercel AI SDK 通过 tools 对象和 zod schema 以声明式方式描述工具。网络中的模型支持原生 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: 'Get the weather in a city',
      inputSchema: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, tempC: 17 }),
    }),
  },
  prompt: 'What is the weather in Moscow? Answer in one sentence.',
});

console.log(text);

模型调用 weather 工具、获取结果并生成最终回答。通过 Gonka 完成整个循环只需约 $0.000048,而 Anthropic 或 OpenAI 则要 $0.03-0.10。对于每个用户请求都会展开为 5-10 步的 agent 应用来说,生产环境每月可节省数千美元。

如果你用 Python 构建 AI 应用,可以看看 LangChain 指南——那里采用同样的思路,通过 OpenAI 兼容类来实现。

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

想了解更多?

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

获取免费 token →