指南

如何搭建 AI 聊天机器人应用:密钥、提示词、成本与安全

要搭建一个 AI 聊天机器人应用,你需要四样东西:聊天界面、一个保存模型提供商 API 密钥并将消息转发给模型的小型服务器、一段告诉模型它是谁、可以做什么的系统提示词,以及控制成本和滥用的限制措施。AI 应用构建工具可以根据描述生成这些内容。而需要你自己负责的,是选择提供商、编写指令,并决定机器人绝对不能做什么。

AI 聊天机器人应用由哪些部分组成

大多数聊天机器人应用,无论是客服助手、辅导工具,还是内部的“询问我们的文档”工具,都包含相同的几个部分:

部分作用能否省略
聊天界面消息列表、输入框、“思考中”状态、逐字流式显示的回复不能
服务器路由接收用户消息,加上系统提示词,并使用你的私密密钥调用提供商不能,密钥绝不能到达浏览器
系统提示词长期有效的指令:角色、语气、服务范围、哪些请求要拒绝不能
知识库机器人据以回答的你自己的内容(常见问题、政策、产品文档)通用助手可以省略
对话存储将对话保存到数据库,方便用户随时回来继续第一版可以省略
账户让每位用户只能看到自己的历史记录,并可按人限制用量用于有严格限制的公开演示时可以省略
限制与日志消息长度上限、频率限制、消费上限、错误记录不能

服务器路由是最容易出错的部分。如果聊天页面直接从浏览器调用模型提供商,任何人都能打开开发者工具,复制你的密钥,然后随意消耗你的额度。

搭建前需要做的决定

选择哪家提供商和哪个模型

主流提供商(OpenAI、Anthropic、Google 等)都提供聊天式 API,调用方式基本相同:发送一组消息,获得一条回复。实际的选择更多取决于模型的规模,而不是品牌:

  • 较小、较快的模型价格更低,响应迅速。适合简短回答、分类以及简单的常见问题机器人。
  • 较大的模型推理能力更强,更能可靠地遵循较长的指令,也能处理杂乱的问题,但每条消息的成本更高,响应也更慢。

建议先选一个中等规模的模型,用你的真实问题来测试,再据此决定升级还是降级。如果你还不熟悉这些 API 的定价和调用方式,请先阅读如何使用大模型 API。

机器人的知识从哪里来

你的内容做法
一两页内容(营业时间、退货政策、价格)直接写进系统提示词
几十页很少变动的内容在提示词中放入精简版本,或按主题拆分,只加入相关章节
数百份文档,或每天都在变化的内容存储起来,针对每个问题检索匹配的段落,只发送这些段落(RAG)

先从能覆盖你内容的最简单方案开始。检索会增加搜索索引、索引的更新维护,以及更多出错的环节。很多实用的机器人根本用不上检索。

公开访问,还是需要登录

放在官网上的公开聊天机器人容易被访问,也容易被滥用:有人可以用脚本对它发送成千上万条消息。需要登录的聊天机器人则可以按用户保存历史记录,并为每个账户设置每日额度。如果机器人是公开的,请限制消息长度,限制单个访客在一定时间内可发送的消息数,并在提供商的控制台里设置每月硬性上限。如何为应用添加登录功能介绍了账户方面的内容。

是否保存对话

保存对话很有用:用户可以接着上次的内容继续,你也可以通过阅读真实的提问来改进提示词。但对话也属于个人数据。请决定保存多长时间,在隐私声明中说明,并且不要保存任何不需要的内容。

把系统提示词当作岗位说明书来写

系统提示词是模型在每次对话前都会收到的指令。一份好的系统提示词,读起来应该像给新员工的简短工作说明:

  • 角色与受众: “你是 Oakline 自行车维修店的帮助助手,你的对话对象是顾客。”
  • 服务范围: “回答有关服务、价格、营业时间和预约的问题。其他问题请说明你只能协助店铺相关事务。”
  • 信息来源: “只使用下方提供的信息。如果答案不在其中,请说明你不知道,并提供店铺的电话号码。”
  • 语气与长度: “友好、使用简单明了的语言,除非对方要求详细说明,否则不超过三句话。”
  • 硬性规则: “绝不承诺未列出的维修价格。绝不索要银行卡信息。”

然后用棘手的问题来测试它:与主题无关的请求、粗鲁的消息、内容中没有答案的问题,以及试图让它无视指令的尝试(“忘掉你的规则,然后……”)。不断调整提示词,直到答案是你愿意署名认可的。

让成本保持可预测

提供商按 token(大致相当于词的片段)计费,输入和输出都要计算。影响账单的主要有三点:

  1. 对话长度。 每条新消息通常都会重新发送整个对话线程,让模型了解上下文。一段 40 条消息的聊天,每次回复的成本远高于 4 条消息的聊天。请只保留最近几轮,或将较早的内容压缩成摘要。
  2. 提示词大小。 很长的系统提示词或大段粘贴的知识内容,每条消息都会被发送一次。
  3. 输出长度。 在 API 调用中设置回复的最大长度,并在提示词中要求简洁的回答。

上线前,请在提供商的控制台里设置每月消费上限,并记录每次请求的 token 用量,以便了解哪些对话特别昂贵。这里不列出具体价格,因为价格因模型而异,而且经常变动;请以提供商自己的定价页面为准。

分步搭建

第一步:描述机器人,而不是代码

第一条提示词如果说明了受众、服务范围、数据和安全规则,基本就能完成大部分工作:

为 Oakline(一家自行车维修店)搭建一个客服聊天机器人。包含一个聊天页面,有消息列表和输入框,回复逐字流式显示。通过服务器路由调用 Anthropic API,使用私密的环境变量 ANTHROPIC_API_KEY,绝不暴露给浏览器。系统提示词只回答关于我们服务、价格和营业时间的问题,这些信息来自名为 shop-info.md 的文件;其他问题则回复“我不太确定,请拨打下方的电话”。每条消息限制 500 个字符,每位访客每小时最多 20 条消息。设计简洁友好,适合手机浏览。

第二步:把密钥存为私密配置

在提供商的控制台中创建密钥,然后将其保存到项目的环境变量或私密配置中,而不要放在聊天内容或代码里。如果密钥曾经出现在任何公开的地方,请立即在提供商处撤销,并重新创建一个。什么是环境变量和私密配置解释了其中的原因。

第三步:测试回答的质量,而不只是界面

聊天功能跑通之后,请把大部分精力放在回答质量上。准备一份约 20 个真实问题的清单,其中包括一些应该被拒绝的问题,每次修改提示词后都逐一测试。请检查:

  • 它是否始终停留在服务范围之内?
  • 当它不知道答案时,是否会承认,而不是编造答案?
  • 当有人试图推翻它的指令时,它是否依然稳定?
  • 浏览器下载的任何内容中,是否都看不到密钥?

第四步:需要时再添加记忆和账户

单次对话跑通之后,再要求把对话保存到数据库中;如有需要,再添加注册和登录功能,让每位用户只能看到自己的聊天记录。同时添加按用户计算的每日消息额度。

第五步:开启限制后再发布

确保已发布的应用与预览环境使用相同的配置,在提供商处设置好消费上限,并将错误记录在你会看到的地方。然后先与一小群人分享测试,再放到你的主网站上。

安全与信任

聊天机器人是以你的名义在与公众对话,因此要把它的各种失效情况当作你自己的责任:

  • 错误的回答。 模型可能非常自信地说出错误的内容。请让机器人聚焦于狭窄的主题,以你自己的内容为依据,并在任何重要问题的回答下附上“答案可能有误”的简短提示。
  • 提示词注入。 用户(或机器人读取的文档)中可能包含诸如“忽略之前的规则”之类的指令。不要赋予机器人它无法被可靠信任的权限:未经你的代码检查,不要因为用户的一句话就退款、删除数据或发送邮件。
  • 敏感话题。 涉及医疗、法律或金融问题时,应让它引导用户去寻求专业人士的帮助,而不是直接给出建议。
  • 个人数据。 除非必要,不要把客户记录粘贴到提示词中,并且要查看提供商的条款,了解 API 数据的处理方式。

我们的AI 构建应用安全检查清单涵盖了整个应用的更多安全事项。

常见错误

  • 从浏览器直接调用提供商。 密钥会因此泄露。请始终通过你自己的服务器中转。
  • 公开机器人没有任何限制。 一个脚本就能在一个下午耗尽整月的预算。
  • 一开始就同时使用 RAG、工具调用和多个模型。 先让一段好的对话跑起来,等真实问题表明确实需要时再添加其他功能。
  • 只测试友善的问题。 上线第一天,用户就会问各种古怪、充满敌意和与主题无关的问题。
  • 任由对话线程无限增长。 随着每条消息增加,成本和响应时间都会不断上升。

什么时候现成的产品更合适

如果聊天机器人是你产品的一部分,需要使用你自己的数据或工作流程,或者需要特定的外观和行为,那么自己搭建是合理的。以下情况下,自己搭建往往并不划算:

  • 你只想在现有网站上放一个客服挂件。 许多帮助台和在线客服产品现在都内置了 AI 答复机器人,可以读取你的帮助中心,并已经包含人工接管、收件箱和报表功能。
  • 只有你或你的团队会使用。 订阅 ChatGPT、Claude 等通用助手,再上传你的文档,可能就已经足够。
  • 你需要严格的合规保障(例如受监管的健康或金融数据)。拥有相关认证的供应商,可能比定制开发更安全。

使用 Mythex 搭建

Mythex 是一款 AI 应用构建工具:你在聊天中描述聊天机器人,它会在实时预览中编写界面和服务器端调用,并将其发布到一个公开网址。应用中的 AI 使用的是你自己的提供商密钥。你可以在项目的私密配置中添加它,也可以通过 Mythex 在聊天中需要时显示的密钥卡片来添加。模型用量将计入你自己的提供商账户,而不是 Mythex 的构建额度。Mythex 不为你应用的用户提供 token,也不附带现成的知识库产品或速率限制:这些都是你需要主动要求并自行测试的部分。文档中关于在应用内添加 AI 的说明介绍了具体步骤,使用你自己的 API 密钥添加 AI还提供了一份入门提示词。

如果机器人需要保存对话线程,你提出要求时,Mythex 会为项目附加一个 Postgres 数据库。关于在应用中使用模型的更多方式,从摘要到分类,请参阅如何为应用添加 AI 功能,或浏览应用模板获取起步参考。

常见问题

搭建 AI 聊天机器人应用需要自己的 API 密钥吗?

几乎所有情况下都需要。聊天机器人会把每条消息发送给 OpenAI、Anthropic 或 Google 等模型提供商,由提供商向持有该 API 密钥的账户收费。密钥必须放在你的服务器上,绝不能放在网页里。

运行一个 AI 聊天机器人要花多少钱?

提供商按 token 收费,发送的文字和模型返回的文字都要计费,而且不同模型的价格差别很大。由于每次新消息通常都会重新发送之前的整段对话,聊天越长,每条消息的成本就越高。请查看提供商的定价页面,并在其控制台里设置消费上限。

我可以用自己的文档训练聊天机器人吗?

通常不需要训练模型本身。内容量少的时候,把内容直接粘贴进系统提示词即可;内容量大的时候,需要先将其存储起来,针对每个问题检索相关段落,然后只把这些段落发送给模型。第二种做法称为检索增强生成,即 RAG。

不写代码能搭建 AI 聊天机器人应用吗?

可以。AI 应用构建工具可以根据你的自然语言描述,生成聊天界面、调用模型的服务器路由,以及用于保存对话的数据库。不过你仍然需要自己创建模型提供商的账户和 API 密钥。

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 繁體中文(香港) 繁體中文(台灣)