MuseMVP
MuseMVP 文档
AI

对话与摘要

基于 Workers AI 的流式对话、对话上下文、在 Queues 上执行的文档摘要、价格与限制。

模型

对话、摘要与提示词优化使用 packages/ai/src/text.ts 中的 TEXT_MODEL,当前为 Workers AI 上的 @cf/google/gemma-4-26b-a4b-it,通过 AI 绑定调用,不需要模型密钥。Mock 模式下由 mockText 返回确定性回答,对话可离线使用。

更换模型时需要一并核对输入格式、流式输出、上下文长度、成本与测试;本模板不是自动配置所有提供方的通用网关。

对话

POST /api/chat:

{
  "prompt": "为一款 AI 生图应用写三条宣传语",
  "requestId": "e60b2e4b-32b1-42a5-bfd0-dbb20ecb37e9",
  "history": [{ "prompt": "之前的问题", "answer": "之前的回答" }]
}
  • prompt 为 1 至 16,000 个字符。requestId 可选,提供时必须是 UUID,每条消息新生成一个。
  • history 最多 8 轮最近的对话(每条提问 4,000 字符、每条回答 8,000 字符),让模型保留上下文。/app/ai 工作室会自动带上。
  • 响应为 text/event-stream,需要逐段读取并处理断流,不要调用 response.json()。工作室会边接收边渲染 Markdown。

每条消息消耗 quotas.chatCredits(1 积分)。服务端先检查余额,写入一条生成记录预占积分,再调用模型。回答完成即结算;失败或断流只退还一次积分。

文档摘要

  1. 在 /app/files 上传你自己的 text/plain 或 text/markdown 文件(最大 1 MiB)。
  2. 调用 POST /api/summary,正文为 { "fileId": "your-owned-file-uuid" }。
  3. 响应是已创建的任务,而不是摘要全文。任务在 JOBS 队列中执行,在工作台中查看状态。

每次摘要消耗 quotas.summaryCredits(5 积分),只读取前 16,000 个字符,不会自动拆分长文、OCR 图片或解析任意 PDF。

验证

  • 空输入、超长输入、积分不足、非本人文件都应失败且不扣费。
  • 正常对话会流式输出并留下一条账目;中断的流不会改变余额。
  • 即使队列重复投递,同一份摘要也只成功一次。

继续阅读 积分与成本控制 和 测试。

本页目录