语音迭代小部件(预览)
该存储库包含一个可嵌入的 Web 组件,用于捕获键入的或 浏览器转录的指令,将其提交给拥有的 OpenFactory 应用程序,以及 轮询生成的维修单。该集成仅限预览。
软件包源位于 OpenFactory monorepo 中的 tools/voice-iterate 中。做
不假设 @openfactory/voice-iterate 或其 CDN 捆绑包已公开发布;
从存储库构建并固定经过审查的工件,直到发布为止
在包注册表中明确列出。
当前边界
端点接受具有 Git 源的应用程序的指令并调度
共享修复工作流程。 Stage 0 更改已部署的沙箱副本,并且可以
重新部署该预览。它不保证变更被承诺
上游存储库。标记为 done 的票据仅证明记录的代理
任务结果;查看其结果并亲自验证该应用程序。
该服务允许每个应用程序最多进行两次运行中迭代。附加
请求返回 429,直到票证达到最终状态。
先决条件
- 拥有 OpenFactory 应用程序与
source.git_url。 - 真实账户;来宾会话无法调度自主代码编辑。
of_mcp_帐户密钥保存在服务器上,而不是保存在浏览器 JavaScript 中。- HTTPS 或本地主机开发源(如果使用麦克风输入)。
从源代码构建小部件
来自单一仓库:
cd tools/voice-iterate
npm ci
npm test
npm run lint
npm run build供应商生成的版本化捆绑包或从您自己控制的安装它 注册表。记录应用程序使用的源提交和校验和。
使用同源代理
面向浏览器的小部件调用:
POST {endpoint}/iterate
GET {endpoint}/agent-status
GET {endpoint}/agent-status?thread_id={thread_id}您的服务器应固定目标应用程序 ID 并将这些请求转发到:
POST https://console.openfactory.tech/api/apps/{APP_ID}/iterate
GET https://console.openfactory.tech/api/apps/{APP_ID}/agent-status仅在服务器上附加 Authorization: Bearer <of_mcp_key>。认证
并对您自己的代理用户进行速率限制;否则每个访客都能够到达
路线可以使用您帐户的权限来更改固定的应用程序。允许
只有上面的三个路径和两个方法强制请求大小限制,并且执行
不转发任意标头或应用程序 ID。
使用代理端点挂载本地构建的模块:
import { createVoiceIterate } from './vendor/openfactory-voice-iterate/index.mjs';
const widget = createVoiceIterate({
appId: '550e8400-e29b-41d4-a716-446655440000',
endpoint: '/api/voice-iterate',
fallback: 'text',
onStatusChange: ({ status, thread }) => {
console.log(status, thread.taskResult);
},
});自定义元素及其样式在 Shadow DOM 中运行。默认文本 当浏览器语音识别不可用时,后备仍然可用。 浏览器语音服务和隐私行为因浏览器和部署而异; 获得同意并测试确切支持的浏览器集。 OpenFactory 收到 此路径上的结果文本,而浏览器或配置的语音 服务可以单独处理音频。
验收测试
- 针对非生产应用程序提交无害的、可逆的更改。
- 确认代理不能指向任何其他应用,并拒绝未经身份验证的调用方。
- 观察从
queued/working到终止状态done、failed、lost或stale的过程。 - 检查任务结果并手动预览。
- 确认上游 Git 存储库未更改,除非有单独的、 已审查的源持久性工作流程报告提交或拉取请求。
- 从规范源恢复或重建沙箱。
请参阅 Prompt-to-app agent 和 App deployment 了解相同的持久性与提升边界。