我想在自己的作品集网站上加一个小型AI功能,能回答访客关于我背景和项目的问题,而不用直接接入OpenAI或Anthropic的API密钥,再处理各家不同的计费方式。结果发现,OpenRouter是实现这个目标最简单的方式。
为什么选OpenRouter
OpenRouter把几十家模型提供商统一收拢在一个兼容OpenAI的API背后。我不用为每家提供商分别折腾不同的SDK和API密钥,而是只需要一个端点、一个API密钥,以及一个随时可以更换的模型字符串。对于一个流量不大的作品集聊天机器人来说,这种灵活性比追求绝对最强的模型质量更重要。
挑一个便宜的模型
因为这个机器人只需要回答关于我经历和项目的有限范围问题(而不是开放式推理),所以我不需要顶尖模型。我选了Gemini Flash和DeepSeek Chat这类经济型选项,OpenRouter用和其他模型完全相同的请求格式暴露出来。对于一个在作品集网站后台默默运行、按token计费的功能来说,和高端模型相比,成本差异相当可观。
整体架构
聊天机器人跑在作品集的Next.js前端后面,由一个轻量级后端服务负责实际的OpenRouter调用。流程很简单:
- 前端把访客的问题发送到后端接口
- 后端构建一个包含我背景/项目上下文的提示词,发送给OpenRouter,指定使用一个便宜的模型
- OpenRouter把请求路由到底层提供商,并返回一个标准的聊天补全响应
- 后端把答案转发回前端的聊天组件
因为OpenRouter完全照搬了OpenAI的聊天补全格式,以后要切换模型(或者在某家提供商出问题时切换到另一个模型作为后备),只需要改一下配置,而不用重写代码。
值得了解的几点
- 速率限制和配额是按模型划分的,不同提供商也不一样,所以如果打算把某个模型用于日常玩玩以外的场景,值得先去看看OpenRouter的模型页面。
- 提示词范围很重要——因为用的是便宜模型,我把系统提示词写得很精简,上下文也只限于相关内容,而不是每次都把整份简历塞进去。
- 成本保持可预测,因为OpenRouter会显示每个模型每次请求的价格,这样在切换模型之前我就能估算出每月的花费。
目前状态:能用,但RAG部分还没完成
这个聊天机器人已经上线并能正常回应,而且在一次对话中能保留一定的记忆,但检索增强生成(RAG)这部分还没做完。它远不如ChatGPT或Claude那样的记忆能力那么敏锐——那些系统背后有更成熟的上下文管理和检索机制,而我这个还是相当基础的实现。目前它能保留最近的对话上下文,但要稳定地从更大的知识库中调取正确的背景信息,这部分我还需要好好完善。
总体来说,OpenRouter让我可以轻松地把AI功能挂到一个副业项目上,不用被绑死在单一供应商身上,也不用为一个经济型模型就能搞定的任务多花冤枉钱。RAG和记忆层是接下来要重点解决的部分。