深蓝黑背景品牌封面:左侧大标题「用 API 手搓一个自己的 ChatGPT」,副标题「大模型 API 应用开发入门」;右侧原创装饰——一扇聊天窗口里有三条对话气泡,窗口下方经箭头连向标注「大模型 API · 按 token 计费」的方块,旁边有一枚「API Key 放后端」标签;左上标注「AI 工程知识专栏」,右上标注「Day 06 · 09-24」 图 1:本文封面,点明主题「用 API 自建对话应用」。

先想象一个场景。你每天都在用别人做好的对话产品,忽然冒出一个念头:这样一个能聊多轮、记得住上下文的网页,我自己能不能做一个?答案是能,而且比想象中近——大模型厂商把最难的「模型」做成了一次 HTTP 调用,剩下的都是常规 Web 开发。你需要做的是把五块积木拼起来。

核心结论一句话

一个自己的对话应用 = 聊天界面 + 会话记忆 + 自有后端 + 大模型 API + 部署上线。核心闭环只有三个环节:界面把用户的话发给自有后端,后端带着历史消息调用大模型 API,再把回复(最好是流式地)送回界面。五块积木里,「自有后端」是新手最容易省掉、也最不能省掉的那一块。

积木一:大模型 API,先看清合同条款

调用形态以 OpenAI 官方的 Chat Completions 接口为例:你POST一个 JSON,里面是一个 messages 数组,每条消息带 role(system 定人设、user 是用户的话、assistant 是模型之前的回复)和 content;把 stream 设为 true,回复就会像打字一样一段段流回来。计费按 token 走,输入输出分开计价:官方定价页显示,入门档模型(如 gpt-5.6-luna)短上下文每百万输入 token 0.20 美元、输出 1.20 美元,命中缓存的输入部分更便宜。价格随时调整,下手前以官方页面为准。

按这个价格粗算一笔账(仅为估算示例):假设一天 100 个用户、每人 20 轮对话、每轮连上下文共约 2000 输入 token 加 300 输出 token,一天的模型费用约 1.5 美元。自建对话应用的模型成本往往低到可以忽略,真正要花心思的是工程细节。

积木二:自有后端,Key 的保险箱

API Key 相当于你的钱包密码。它绝不能出现在前端代码里——任何人打开浏览器控制台就能把它拿走,然后刷爆你的账单。正确做法是写一个自己的后端(几十行 Node.js 或 Python 就够):Key 存在后端环境变量里,前端只跟你的后端说话,后端再转发给大模型 API。顺手在这个后端里做鉴权和限流,别人就不能拿你的接口当免费资源。

积木三:会话记忆,成本与效果的跷跷板

大模型 API 本身不记仇也不记情——每次请求都是无状态的,「记忆」靠的是你把历史消息一并塞进 messages 数组。但上下文越长 token 越多,账单越厚。实用策略:只保留最近若干轮,更早的轮次让模型先总结成一段摘要再带着,既保住记忆又按住成本。

积木四:聊天界面,先求能用再求好看

一个输入框加一条消息列表就构成最小界面。真正影响体验的是流式输出:让用户立刻看到第一个字、看着回复逐段出现,等待感会小一个数量级——这就是积木一里 stream 参数的用武之地。

积木五:部署上线,别人才用得上

本地跑通只是自娱自乐。配上域名和 HTTPS 部署到一台服务器,你的「手搓 ChatGPT」才算开张。上线前再过一遍:Key 在后端、有鉴权、有限流、上下文有截断。

架构流程图:一个自己的对话应用由五块积木串成——①聊天界面(输入框与消息列表)、②会话记忆(每轮请求带上历史消息并控制上下文长度)、③自有后端(保管 API Key、转发请求、做鉴权)、④大模型 API(按 token 计费、流式返回)、⑤部署上线(HTTPS 与域名,别人才能用)。下方两个要点面板:Key 绝不能放前端,任何人打开控制台就能拿走并刷爆账单;上下文越长 token 越多,历史消息要截断或总结,流式输出让用户立刻看到第一个字。底部结论:核心闭环是「界面 ↔ 自有后端 ↔ 大模型 API」,会话记忆由后端维护 图 2:自建对话应用的五块积木与两条铁律。

三个常见误区

误区一:把 Key 写进前端代码。这是新手第一大事故,上线第一天账单就可能失控。误区二:历史消息无限往上堆。对话到几十轮后,每句话都在为整本聊天记录付 token 费,截断或总结是必须做的减法。误区三:等全部生成完再显示。非流式的等待体验足以劝退第一批用户,而打开它只是一个参数的事。

给你的行动建议

最小闭环今晚就能跑:注册一个大模型 API 账号拿到 Key;写二十行后端,接收前端消息、拼上历史、调 API、开 stream 返回;写一个最简陋的页面连上去;然后故意做两个实验——把 Key 移到前端试试(再立刻移回来),连续聊二十轮看看 token 用量怎么涨。这两个实验做完,你对这个应用的理解就超过了九成「只聊过天」的用户。

你手搓的第一个 AI 应用想做成什么样——给自己用的私货,还是给朋友玩的小工具?欢迎聊聊你的计划。

参考资料

  • Create chat completion(OpenAI 官方 API 参考:messages 数组与 role 取值、stream 流式分块返回、usage 用量统计) — https://platform.openai.com/docs/api-reference/chat/create
  • API Pricing(OpenAI 官方定价页:按每百万 token 对输入/输出分别计价,gpt-5.6-luna 短上下文输入 0.20 美元、输出 1.20 美元,缓存命中输入更便宜) — https://platform.openai.com/docs/pricing