Self-hosted Companion 是 cognee 项目中提供的一个自托管 AI 伴侣示例,代码位于仓库的 examples/cookbooks/self_hosted_companion/ 目录。它的用途是让用户与一个了解自己笔记文件夹的伴侣对话:该文件夹可以是日记、Obsidian 库,或任何 .md、.txt 文件。运行后,笔记会被记住并存入 cognee 数据集 self_hosted_companion,随后可以针对这些笔记内容提问;每次聊天也会保存到记忆中,因此之后的对话能知道之前聊过什么。
主要能力与使用方式:所有命令都需从仓库根目录运行。第一步先做配置检查,运行 uv run python examples/cookbooks/self_hosted_companion/self_hosted_companion.py --check <folder>,其中 <folder> 是用户指定的笔记文件夹。如果退出码为 0,则进入下一步;如果退出码为 2,每个 [setup] MISSING: 行会指明一项需要修复的内容,用户可根据 README 的 “What it needs” 表修复对应项后停止。若用户没有自己的笔记文件夹,或想先看看效果,可以省略 <folder>,此时运行会使用示例笔记([setup] 行会说明这一点),并且只需要 LLM_API_KEY;此时应告知用户答案来自示例笔记。由于无法在交互式聊天中输入,需要通过 --ask 传入用户消息:uv run python examples/cookbooks/self_hosted_companion/self_hosted_companion.py <folder> --ask "..."。当文件夹已被记住后,后续消息只需运行 uv run python examples/cookbooks/self_hosted_companion/scripts/chat.py --ask "..."。答案位于 [chat] companion> 之后,应原样交给用户。每次 --ask 都是独立的聊天会话并保存到记忆,因此之后的会话能知道它。如果脚本失败,self_hosted_companion.py 会以退出码 1 退出,并输出一行说明问题所在;可单独从 examples/cookbooks/self_hosted_companion/scripts/ 目录运行对应脚本以进一步排查。
适用场景:适合希望以自托管方式,围绕个人笔记建立可记忆、可连续对话的问答助手,例如查询自己的日记、Obsidian 笔记或其他 Markdown、文本资料。
限制与注意事项:笔记是用户的私有文件,不应超出回答问题所需范围引用,也不应打印 .env。每次运行都会消耗 LLM 额度,因此只在用户要求时运行。示例运行在导入前会先忘记 cookbook 的数据集 self_hosted_companion([clear] 行);对于用户自己的数据,只有当他们要求重新开始时才传 --clear,因为它会忘记该数据集中的所有内容,包括之前的聊天记录。除非用户要求浏览图谱,否则不要传 --ui,因为它会一直运行到 Ctrl+C。清理命令为 uv run cognee-cli forget --dataset self_hosted_companion。关于具体收费、价格、平台等信息,资料暂未提供。