![[BUG]: Magic Echo On‑Screen Awareness for Generic OpenAI Connections](https://www.chat-gpts.plus/wp-content/uploads/2026/07/5991-22930ed0.jpg)
[BUG]: Magic Echo On‑Screen Awareness for Generic OpenAI Connections
快速结论:该报错通常发生在 AnythingLLM Desktop 使用 llama.cpp(通用 OpenAI 兼容端点)作为提供商时,启用 Magic Echo 和 On‑Screen Awareness 功能后,后端因 getModelCapabilities() 未返回 Promise 而抛出 TypeError: ...then is not a function。优先排查代码调用路径中是否对返回值类型做了统一处理,而非仅依赖环境变量补丁。
问题场景
用户在 AnythingLLM Desktop v1.15.0(Windows)上,通过 llama.cpp 的通用 OpenAI 兼容端点(generic‑openai)连接视觉能力模型(如 Gemma 4 12B),并已按之前 Issue #5984 的建议在 .env 中添加了 PROVIDER_SUPPORTS_VISION="generic-openai"。启用 Magic Echo 的 On‑Screen Awareness 后,智能转录失败,回退到原始转录。
报错原文
This smart transcription failed and fell back to raw transcription instead: i?.getModelCapabilities(...).then is not a function
原因分析
Magic Echo 代码路径中调用 getModelCapabilities() 时,假设该方法始终返回一个 Promise 对象,以便顺利调用 .then()。但对于 generic‑openai 提供商(包括 llama.cpp 兼容端点),getModelCapabilities() 实际返回的是 undefined 或普通对象,而非 Promise。Issue #5984 的环境变量工作项仅静态填充了能力标志位,并未修复消费端代码对 Promise 返回值的依赖,因此后端仍会抛出 TypeError 并回退。
环境排查
- AnythingLLM Desktop 版本:v1.15.0(Windows)
- 提供商类型:llama.cpp(Generic OpenAI‑compatible endpoint)
- 模型:Gemma 4 12B(已确认在主聊天界面中支持图像输入)
- llama‑server 启动参数:包含
--mmproj(视觉投影仪)和--jinja聊天模板 .env中是否已设置PROVIDER_SUPPORTS_VISION="generic-openai"
解决步骤
- 确保已查看 Issue #5991 的后续新版本更新(Issue 中提到已修补,将在下一个更新中包含)。
- 如果当前仍处于 v1.15.0 或更早版本,请升级到包含该修复的最新版本。
- 若无法升级,可优先尝试在调用
getModelCapabilities()的对应代码位置(Magic Echo 管道内部)添加Promise.resolve()包裹,或者在使用.then()前增加对返回值类型的检查(例如,判断是否为 Promise 对象)。 - 注意:
PROVIDER_SUPPORTS_VISION="generic-openai"环境变量仅解决了能力检测问题,不能替代后端调用的修正。
验证方法
升级到包含该修复的版本后,重新启用 Magic Echo 及 On‑Screen Awareness,测试智能转录是否能够正常完成,不再出现回退错误。同时,确认 llama.cpp 日志中不再出现原描述中的 i?.getModelCapabilities(...).then is not a function 错误信息。



