b4c8ea38d19be56e3b103c7326e4c1117b3f4aae
回退链从「一条主路由 + 一串替补」改成两级:先把同能力(有说话人分离)的路由 试完,全挂才降级到不分离的路由。降级是**本次事实**而不是配置事实,写进第 2 步 产物(capability_degraded / capability_zh),第 3 步与第 5/6 步据此判为不可用。 - transcribe.go:Result 加 CapabilityDegraded,判据 chain[0] 能分离而实际这条 不能;与 HasSpeakers 分开记(后者可能是「配了却没输出」那种异常) - audio_handlers.go:闸门从「读路由声明的能力」改成「读稿子里实际有没有标签」 (audioTranscriptSpeakerKeys),与第 3 步共用同一句 SpeakerKeysOf;本次没分离 → 哨兵错误 errAudioSpeakersUnavailableThisRun,不再放行去写一份看不出残缺的纪要 - 闸门**不看** capability_degraded:改动前落库的老产物没有这个字段,看它就 fail-open - 第 1 步「转写要求」提前把降级的后果说清;第 2 步产物带完整措辞与「⚠」日志 - 前端两处(SpecialistPanel.vue / audioSkill.js)判断顺序改为先读实际结果 has_speakers、再退回声明 speakers —— 顺序反了会在降级那一次照旧显示第 3 步 - ai_config.json:补 3 条云端无分离路由与各自的回退链 验证:三处变异(产物 key 拼错、标记写死 true、闸门 fail-closed)都验过会红; 新增两个用例文件走真实 gin 路由 + 真实鉴权中间件,断言拦下来的**理由**而不只是 「拦下来了」;go test ./... 全绿、gofmt 干净、前端构建通过。 同期把本地 ASR 装成 systemd 常驻服务(deploy/install_asr_local.sh 七步全过, 开机自启,实测 26.7 分钟录音 → 3.1 分钟)。装的过程挖出两个只在服务化时才暴露的坑: - E12 转写堵住事件循环 → 探活超时 → 本地被判不健康 → auto 静默退云端、音频出网, 全程没有任何报错。修法 run_in_threadpool(deploy/asr/serve.py) - E13 服务账号的 ~ 不可写,pyannote 写不了 ~/.pyannote/database.yml,每次转写 500。 修法 asr.env 加 HOME=<cache 目录>(该目录在 unit 的 ReadWritePaths 里) 顺带收口一处交付缺口:服务源码原先只有 ~/asr-poc 一份,而 DELIVERY.md 的清理计划 要 rm -rf 它 —— 那会让唯一副本变成 /opt 下 root 所有、不在任何版本库里的文件。 现在 deploy/asr/ 是唯一事实源,装机脚本与文档同步改。 已知偏离 / 未做(记在案): - 界面那句「本次没有说话人分离,后续步骤不可用」只验到后端接口层,没有造出真实 降级场景渲染出来看过 - deploy/asr/ 的引入改变了装机来源:原型目录 $SRC_DIR 从此只提供 venv 与模型, 服务代码一律从仓库取 Co-Authored-By: Claude Code <noreply@anthropic.com>
EAI AgentPlatform
智能 Agent 平台 — 基于 Go + Vue 3 构建。
快速启动
# 开发环境启动(前端 10231 + 后端 10232)
./start_dev_10231_10232.sh
端口说明
| 端口 | 服务 | 说明 |
|---|---|---|
| 10231 | 前端 Vite 开发服务器 | 本地开发,自动代理 API 请求 |
| 10232 | 后端 Go API 服务 | 本地开发端口 |
| 8080 | 外部 LLM 服务 (llamacpp) | AI 对话 API 入口 |
| 8081 | 外部 Embed 服务 (llamacpp) | 向量嵌入服务 |
| 11434 | 外部 Ollama 服务(可选) | 如使用 Ollama 路由则需运行 |
注意: 8080 和 8081 是外部 AI 服务的端口,平台后端会调用它们获取 LLM 对话和向量嵌入能力。
配置
复制环境变量模板并修改:
cp .env.example .env
主要配置项见 .env.example。
启动脚本参数
--force 强制释放端口(包括非本项目进程)
--skip-preflight 跳过预检查
--skip-smoke 跳过管理员登录冒烟测试
--skip-build 不重新编译后端
--help 显示帮助
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
| PORT | 8080 | 后端 API 端口 |
| EAI_DEV_BIND_HOST | 127.0.0.1 | 开发绑定地址 |
| EAI_DEV_PUBLIC_HOST | 自动检测 | 公开访问地址 |
| LLM_BASE_URL | http://127.0.0.1:8080/v1 | LLM 服务地址 |
| EMBED_MODEL | bge-m3 | 向量嵌入模型名 |
Languages
Go
51.5%
Vue
34.4%
JavaScript
10.4%
Python
2.4%
Shell
0.9%
Other
0.4%