AI 功能
如何在 Mosaic 中配置和使用 AI 功能
AI 功能
Mosaic 集成了 AI 用于自动标签、摘要、日记生成和机器人回复。所有 AI 功能都是可选的,需要配置 AI 提供者。
架构
Mosaic 将每用户对话配置与服务端共享嵌入配置分开管理:
| 配置键 | 用途 | 模型类型 |
|---|---|---|
bot | 当前用户的对话、标签、摘要、日记生成 | GPT-4o、Claude 等 |
embedding | 生成向量嵌入以支持语义搜索 | text-embedding-3-small 等 |
对话能力读取 user_ai_configs。管理员 AI 面板中的 bot 编辑当前登录管理员的
对话配置;其他用户的配置通过用户管理页或 /admin/api/users/{userId}/ai-config
管理。用户可通过 /api/user/ai-config 管理自己的配置。embedding 为服务端共享
配置,两者可使用不同提供者。
支持的提供者
| 提供者 | 协议 | 示例 |
|---|---|---|
| 兼容 OpenAI | /chat/completions + Bearer 认证 | OpenAI、Ollama、Groq、Together AI、vLLM |
| Anthropic | /messages + x-api-key 认证 | Claude 3.5 Sonnet、Claude Opus |
可用功能
自动标签
创建笔记时自动建议标签(仅在笔记无标签时触发)。
- 默认:开启
- 设置项:
auto_tag_enabled - 触发条件:创建笔记时 tags 为空
自动摘要
为每条笔记生成一行摘要。
- 默认:关闭
- 设置项:
auto_summary_enabled - 输出:存储在
memo.ai_summary字段
自动日记
根据当天的笔记自动生成日记条目。
- 默认:开启
- 设置项:
auto_diary_enabled— 总开关auto_diary_min_memos— 最少笔记数触发(默认:2)auto_diary_min_chars— 最少总字符数(默认:150)
- 触发条件:创建笔记后达到阈值
- 锁定机制:手动编辑日记后锁定,阻止自动生成覆盖
机器人回复
AI 机器人自动回复你的笔记。
- 按机器人设置:每个机器人有
auto_reply开关 - 触发条件:关键词匹配笔记内容
- 上下文:机器人可配置使用记忆(历史笔记)通过记忆系统
首次回复与后续追问共享同一套通用对话规则 —— 不存在按机器人配置的 few-shot 示例。 规则保留角色自身的人设、幽默与称呼方式,同时要求:
- 回应真正说出的内容。 日常分享、玩笑或照片通常用一到四句话简短回应;只有在对方求 建议或存在具体风险时才展开给建议。
- 不替对方读心。 未说出的动机保持未知。回复只描述可观察的行为,对动机和因果保留 不确定性。
- 避免空泛套话。 不重复总结、不给模板式安慰、不强行升华,也不使用"不是 X 而是 Y" 这类修辞重构。
- 谨慎使用旧记忆。 检索到的记忆被视为可能相关的历史片段。只有当它明确有助于当前 话题时才提及,并保留其发生时间;跨记录的代词引用在没有证据时不合并。当前消息的 权重大于旧上下文。
推理过程、草稿和内部独白不会出现在回复中。
配置
通过管理面板
- 打开管理面板
http://你的服务器:8080/admin - 进入 AI 配置 部分
- 在 OpenAI 或 Anthropic 提供者之间切换
- 填写:
Base URL、API Key、Model name - 为每个配置点击保存
通过 API
PUT /admin/api/ai-config/bot
{
"provider": "openai",
"baseUrl": "https://api.openai.com/v1",
"apiKey": "sk-...",
"model": "gpt-4o",
"temperature": 0.7,
"maxTokens": 2048,
"timeoutSeconds": 30
}本地运行 AI(Ollama)
为最大隐私保护,你可以通过 Ollama 运行本地模型:
- 安装 Ollama
- 拉取模型:
ollama pull llama3.2 # 用于对话/标签 ollama pull nomic-embed-text # 用于嵌入 - 在管理面板 → AI 配置:
- 提供者:OpenAI
- Base URL:
http://host.docker.internal:11434/v1 - 模型:
llama3.2
- 嵌入配置同理,模型设为
nomic-embed-text
注意:本地模型可能比云 API 慢且准确度较低。