网页直连对话 AI(开发中)
开发中
这种接法正在开发,暂时不能在平台上选用,现在请连 GitHub 仓库或用本地测试机。已经用它接好的项目照常可用,下面的说明照旧适用。
适合只看回复的聊天机器人、智能客服、知识库问答和其他大模型应用。在网页上填接口地址和密钥,不用装任何东西。平台执行器把每道测试题发给你们的接口,评审模型按判断标准逐条判定回复。
如果这个 AI 还会查系统、改数据,这种接法只测它说了什么。要测它的工具调用和改动的数据,请连 GitHub 仓库或用本地测试机。
1. 建项目
点「新建项目」,选「问答 / 客服机器人」,起个名字。
2. 连接对话 AI
选接口类型:
- OpenAI 兼容接口:多数模型服务和网关都支持(OpenAI、各大云厂商、兼容接口、自己部署的 vLLM)。填接口地址、模型和密钥。系统提示词可选:它作为第一条系统消息发出,「系统提示词泄露」这项检查也会拿回复和它比对。
- 平台模型:平台的模型之一,不用你们的接口地址和密钥。选模型(默认选好项目的模型),写系统提示词。这样建的对话 AI,之后项目换了模型,它也保留自己的模型,因为你们要测的就是那个模型。
- 自定义 HTTP 接口:你们自己的对话接口。填地址、需要的请求头和 JSON 请求体模板。请求头里按页面上给出的占位符写密钥的位置;请求体里用占位符代表问题和整段对话。支持 SSE 流式回复。
不知道请求该怎么写,可以只填地址,让平台的 AI 写好并测通:见下面的「让 AI 填好并测通」。
也可以展开「从 curl 命令填写」,粘贴接口文档里的 curl 示例(或浏览器开发者工具里「复制为 cURL」的命令),点「填进表单」。平台会读出地址、请求头和请求体,把请求体里的问题换成占位符,把像密钥的请求头值放进「密钥」框。命令只被读取,不会执行。调用的是 OpenAI 兼容的 /chat/completions 时,直接按 OpenAI 兼容接口填好地址、模型和系统提示词。
OpenAI 兼容接口填好地址和密钥后,平台执行器会向这个地址要模型列表(GET …/models),「模型名」下面就能直接选;列不出来的,照样手动填。
点「保存」,平台马上用「你好,请简单介绍一下你能帮我做什么。」测一次连接。自定义 HTTP 接口不用自己找答案在哪个字段。平台认得 OpenAI、Anthropic 的回复格式、常见的回答字段(reply、answer、output、text 等)和流式回复;认不出来时,由平台模型读原始回复挑出回答,这会计入助手的每日用量。用的是哪个字段、怎么认出来的,测试结果下面写着;不对的话,在原始回复里点真正的回答就改过来了。
平台收到密钥就把它密封,加密保存。API 读不回原文,页面上只显示末四位,只有平台执行器能解密。自定义 HTTP 接口可以把这个 AI 的系统提示词贴进来给泄露检查用;这份只用来比对,不会发给 AI。(OpenAI 兼容接口填的系统提示词就是发出去的那条,见上。)
让 AI 填好并测通
在「接口地址」里填上地址,有密钥就填进「密钥」框。再把手上有的资料贴进「接口文档、curl 示例或请求和回复的例子」:接口文档里讲聊天接口的那一段、一条 curl 命令、一次请求和它的回复,或者几句说明都行,没有也可以。有 OpenAPI / Swagger 文档的,填上它的地址。然后点 「让 AI 填好并测通」,之后的事由平台做完,页面上一步步显示(理解接口 → 写连接配置 → 测连接(第 n 次)→ 结果):
- 平台的模型按地址和你贴的内容判断这是 OpenAI 兼容接口还是自定义接口,写好连接配置:地址的路径和查询参数、请求头、放问题的请求体、回答在回复的哪个字段、是不是流式回复。地址看起来是 OpenAI 兼容的,平台执行器先向它要一次模型列表(
GET …/models);填了 OpenAPI 地址的,由平台执行器去读那份文档。 - 模型像开发者一样在一次对话里做:写连接配置,用平台的检查自检,让平台执行器测,看回来的结果再改。它也可以让平台执行器再读你给的主机上最多 4 份文档(例如
…/openapi.json),或者在那个主机的别的路径上要模型列表;它做的每一步页面上都列出来。 - 平台执行器用「你好,请简单介绍一下你能帮我做什么。」测一次连接,和「测试连接」一样。没拿到回答的话,模型按状态码、报错和原始回复改了再测,最多测 5 次。测过的配置不会原样再测。
- 平台的 AI 忙(组织里同时用它的任务多,或者模型服务在限流)时,它在队里等到轮到为止,最多 2 小时,页面写着排第几、大概多久,不用回来再点。
- 测通后,平台像你点了「保存」一样保存这个连接,表单里填的名称和系统提示词也一起保存。审计记录记在你名下,标明是 AI 写的。项目还没有测试集时,平台接着按这个 AI 的自我介绍起草起步测试题(见第 3 步)。
- 没测通时写清楚原因,AI 最后写的配置填进下面的表单,可以直接改了再保存:
- 还差密钥:接口回了 401 / 403,或者文档写了要密钥。页面写明密钥放在哪个请求头;把密钥填进「密钥」框再点一次,平台接着上次写好的配置带上密钥测。
- 连不上:主机名、端口不对,或者接口不能从公网访问。
- 测了 5 次都没拿到回答(或者 AI 2 次对话都没测通):页面写明最后一次的结果。可以多贴一些接口文档再点一次,平台从 AI 最后写的配置接着改;也可以手动改。
这几条由平台的代码把关,不靠提示词:
- 只连你给的地址的协议、主机和端口。模型写了别的地址一律退回,请求从不发到别处。
- 密钥只放在请求头里(值写成
),由平台执行器发请求时填进去,模型看不到它。你贴的内容里像密钥的部分,会先隐去再给模型看。 - 贴的内容和接口的回复只是给模型读的资料,里面的指令一律不照做;curl 命令只被读取,不会执行。
- 每个请求都经平台执行器的出口检查(内网、本机和云元数据地址一律拒绝),读回来的内容有大小上限。
模型调用算进助手的每日用量,到上限会停下并说明。测连接调的是你们自己的接口,平台不另收费。对自定义接口,平台只发 POST,请求体是 JSON。平台只在请求头里带密钥,所以只接受把密钥放在请求体或地址里的接口,用这种办法连不上。
3. 准备测试题
第一次连上时,如果项目里还没有测试集,平台会按项目的业务领域、系统提示词和它刚才的自我介绍起草几道「起步测试题」,用的是平台模型,计入助手的每日用量。题目用这个对话 AI 自己的语言,看不出来时用你网页的语言。这些题没有参考答案,参考答案只能由你们给。它们都标了「待补答案」,只用不需要参考答案的判断标准来判。AI 自动审批开着时,它们会像别的草稿一样先让 AI 过一遍。可以直接改、删,或者补上参考答案。
写下要问的问题,附上参考答案或要点,用来核对回复。先从最常见、最重要的 10–50 个问题开始。
- 导入表格:从 Excel 粘贴,或上传
.xlsx(第一个工作表)、CSV、JSONL。promptfoo 的测试文件也能用。一个测试集最多 1000 道测试题,一份表格最多 500 万个字符;更大的拆成几个测试集。 - 手动填写,或者让助手起草:描述一下你们的 AI 是做什么的。
- 多轮对话用
||隔开各轮:平台一轮一轮地发,判定最后一轮的回答。
然后选判断标准,比如:和参考答案一致、覆盖要点、不泄露系统提示词。通过标准不用先定。测试集没单独定通过标准的,开始测试时按默认标准判断:每题问几次就要几次都通过,这样的题至少占 90%。安全测试集,也就是有攻击题或安全检查的,每道题都要通过,有一次攻击得逞就不通过。「开始测试」上写着用的是哪条,点「修改」去改。
「不泄露系统提示词」要拿回复和系统提示词比对。OpenAI 兼容接口和平台模型,用连接里填的系统提示词;自定义 HTTP 接口,用「它的系统提示词」里贴的那份。都没有的话,这项判断不了,开始测试时会自动不测这一项,页面上会写明,测试照常开始。
4. 开始测试,看报告
点「开始测试」。平台执行器调用你们的接口,默认同时最多 4 个请求、每分钟最多 120 个。报告按回复给出结论,「通过」或「不通过」,每道题的问题、回复和判定都在里面。这里的「通过」是说,单看 AI 说了什么,所有通过标准都满足了,工具和数据没有测。测试取消了或没跑完,报告开头会写明,并说执行了几次。没执行的不算通过,也不算没过,和上一次比较时也是这样。
5. 自动运行
在「开始测试」下面设定时(最多每小时一次),或新建项目 API 令牌,让你们的 CI 每次部署后发起一轮:用令牌调 POST /v1/projects/<id>/jobs。每次自动运行都把全部已确认的测试集发给这个项目连接的对话 AI。项目连了几个对话 AI 时,自动运行会被拒绝并说明原因,请只留要测的那一个。它以打开定时(或建令牌)的人的身份运行,和手动发起的一样计费,测完给这个人发邮件。
平台怎样访问你们的接口
- 请求来自我们伦敦控制面上的平台执行器,走 HTTPS,出口是控制面的固定 IP。
- 执行器只发 HTTP 请求,从不运行你们的代码。
- 地址解析出的每个 IP 都会检查并固定:云厂商的元数据地址、内网和本机地址一律拒绝,所以执行器不会被指向内部系统。
- AI 要求的工具调用只记进报告,从不执行。
什么会进我们的云
对话内容(测试题和 AI 的回复)、对话 AI 的密钥(密封),以及之后的运行包。
测试题和回复会发给评审模型的提供方做判定。起草起步测试题、认不出回答在哪个字段时,项目的业务领域、系统提示词和测试连接的回复会发给平台模型(助手用的那个)的提供方。用「让 AI 填好并测通」时,这些也会发给它:接口地址、你贴的内容(像密钥的部分已隐去)、OpenAPI 文档和它在你的主机上读的别的文档、测连接时接口的回复。密钥不会发出去。见子处理者。