外观
为什么使用 Go Core 与 Python Processor?
项目版本说明
这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。
标准回答
Go Core 承担 API、授权、事务、任务协调和检索编排,使权威状态变更尽量可验证。Python Processor 承担更依赖模型生态的提取、泛化和向量生成,让模型和运行环境的变化不直接进入核心数据库写入路径。
这种拆分增加协议、部署和观测成本,因此需要版本化任务输入、候选结构、超时与错误语义。不是因为 Go 不会调用模型,而是为了限制谁能决定最终状态,以及让慢模型工作不长期占有数据库事务。
一个必须保留的例外是查询 Embedding:当前召回路径会通过有界的同步私有 RPC 获取查询向量。它不在 Go 进程内执行模型,也不是等待普通异步 Processor DAG;该依赖失败可降级到词法召回,完整语义体验会受到影响。
追问与回答
Processor 全部停机后还能做什么
已经提交的记忆仍可读取;依赖后台模型计算的新写入处理会延迟。语义召回还取决于单独的查询向量服务,不能笼统说所有功能无影响。
为什么不一开始全部用 Python
单语言可以降低复杂度;多语言只有在确定性边界、模型生态和独立运行需求值得其成本时才成立,应解释具体收益与额外维护。
易混淆点
- 声称整个系统所有模型调用都异步且不影响读取。
内容来源
- Android 与 AI 工程 Wiki · 原条目
q150