你会学到什么
- Token 是什么,如何影响 API 计费与模型行为
- Context Window 的限制及实际开发中的应对策略
- Temperature 参数的控制方式与适用场景
- Prompt Engineering 的基本方法论
- 用 Vercel AI SDK 实现第一个流式对话接口
什么是 Token
Token 是模型处理文本时的最小计算单位。它不等同于字符、词语或汉字,而是经过 Tokenizer 算法切分后的文本片段。
对于英文,一个常见单词通常对应一个 Token。对于中文,一个汉字通常对应 1–2 个 Token。空格、标点、换行符各自也会占用 Token。
Context Window
Context Window 是模型在单次调用中能够读取的最大 Token 数量。 输入(Prompt)和输出(Completion)共用同一个窗口。
GPT-4o-mini 的 Context Window 是 128K Token,约等于一本 200 页的技术书籍。 超出限制的内容会被截断,通常是截断最早的消息,保留最近的对话。
Chat Completion API 基本用法
Vercel AI SDK 的 streamText 函数封装了 Chat Completion API, 并支持流式响应。以下是最小实现:
app/api/chat/route.ts
import { streamText } from "ai";
import { openai } from "@ai-sdk/openai";
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: openai("gpt-4o-mini"),
messages,
// 系统提示词约束模型角色
system: "你是一个专业的 AI 助手,用简洁的中文回答问题。",
});
// 转换为可流式传输的 Response 对象
return result.toDataStreamResponse();
}Temperature 参数
Temperature 控制输出的随机程度,取值范围通常是 0–2。
- 0:确定性输出。相同输入永远返回相同结果。 适合代码生成、数据提取、结构化输出。
- 0.7:默认值。在准确性和创造性之间平衡。 适合一般对话和问答场景。
- 1.0 以上:高随机性。适合创意写作, 但容易出现逻辑跳跃或无意义输出。