eaiadminandClaude Code b4c8ea38d1 feat(asr): 降级兜底——分离路由全挂时退到无分离路由,只交付逐字稿
回退链从「一条主路由 + 一串替补」改成两级:先把同能力(有说话人分离)的路由
试完,全挂才降级到不分离的路由。降级是**本次事实**而不是配置事实,写进第 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>
2026-09-26 23:36:00 +08:00

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 向量嵌入模型名
S
Description
数字员工平台 - AI Agent Platform
Readme
1.5 GiB
Languages
Go 51.5%
Vue 34.4%
JavaScript 10.4%
Python 2.4%
Shell 0.9%
Other 0.4%