按用户指示做**一包提交**,不按工作流拆分。本提交刻意混合了多条并行线:
· 本地 ASR 接管:audio 成为与 chat/embed/image/video 同等的路由类别
(IsLocalRoute 单一判据、audio 健康探测、default_audio_route、
auto 占位、GET /api/ai/routes/audio、回退云端时界面明示「音频已出网」)
· LLM 调用层:ctx 贯穿、ToolCall/ToolSchema、EmptyCompletionError /
TransientUpstreamError(按错误类型而非文案判重试)
· 编排 Agent:general_assistant orchestrate/persistence/spec_driver
· 联网搜索:internal/search(playwright)
· 网盘:backend + 前端
· 前端 UI:导航/路由/工作台若干页
· 交付文档:DELIVERY.md / AR04 / 部署文档的「无 Python」表述据实改写,
新增 eai_agentplatform-asr.service、asr.env、clonezilla-cleanup 清 ~/asr-poc
不分拆的原因:dev 早期,粒度不该打断工作节奏。且实测过——这些改动
**在编译上是同一个单元**(llm.go 的 ctx 签名变更牵动 12 个调用点,
chat_message.go 的 ctx 改动又与编排重写同处一个 hunk),拆出来的中间态编不过。
详见 TOP_CODING_RULES.md G14.5 与 bugs_and_errors.md E09。
Co-Authored-By: Claude Code <noreply@anthropic.com>
31 lines
1.9 KiB
Bash
31 lines
1.9 KiB
Bash
# 本地语音转写服务(eai_agentplatform-asr.service)的环境变量样例。
|
||
#
|
||
# 装机:sudo cp deploy/asr.env /opt/eai_agentplatform-asr/asr.env
|
||
# 端口不在这里配 —— 它写在 unit 的 ExecStart 上(--port 8090),
|
||
# 与后端 config/ai_config.json 里 audio_route_local_whisper.base_url 的 8090
|
||
# 是同一个值。改端口要同时改这两处,否则后端起不来时界面会显示
|
||
# 「本地路由不健康」,而真实原因是对不上端口。
|
||
# 这里注释掉的那行只是记录这个耦合,别指望它生效:
|
||
# ASR_PORT=8090
|
||
|
||
# 计算精度。8G 显存要和 llama-server 共用,float16 会 OOM(原型机实测,
|
||
# 见 bugs_and_errors.md E06)。int8_float16 是这台机器的可用档位。
|
||
ASR_COMPUTE_TYPE=int8_float16
|
||
|
||
# 模型目录**不在这里配**:serve.py 按 `脚本所在目录/models` 找,也就是
|
||
# /opt/eai_agentplatform-asr/models(软链或实体目录都行,见 DELIVERY.md 第 1 节)。
|
||
# 把模型放到别处就得改 asr_core.py,不如把目录放对。
|
||
|
||
# 离线开关。权重全部是本地文件(faster-whisper 直接读目录、pyannote 的
|
||
# config.yaml 已改写成本地文件路径),正常情况下一个网络请求都不发。
|
||
# 这两个开关是安全网:万一哪条分支想回 huggingface.co,本机到那边是**不通**的,
|
||
# 表现会是挂起几分钟而不是报错 —— 加上开关,它立刻失败,日志里一眼能看出来。
|
||
HF_HOME=/opt/eai_agentplatform-asr/cache/huggingface
|
||
HF_HUB_OFFLINE=1
|
||
TRANSFORMERS_OFFLINE=1
|
||
|
||
# 故意没有 PYTORCH_CUDA_ALLOC_CONF 之类的分配器开关:这台机器的显存配置
|
||
# (int8_float16 + 转写前后释放模型)是实测调出来的,见 bugs_and_errors.md E06。
|
||
# 没在这台机器上验过的旋钮不要加进来 —— 加错了表现是 OOM,
|
||
# 而 OOM 看起来又像「模型太大」,很容易往错误的方向查。
|