Mosaic📔

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" 这类修辞重构。
  • 谨慎使用旧记忆。 检索到的记忆被视为可能相关的历史片段。只有当它明确有助于当前 话题时才提及,并保留其发生时间;跨记录的代词引用在没有证据时不合并。当前消息的 权重大于旧上下文。

推理过程、草稿和内部独白不会出现在回复中。

配置

通过管理面板

  1. 打开管理面板 http://你的服务器:8080/admin
  2. 进入 AI 配置 部分
  3. 在 OpenAI 或 Anthropic 提供者之间切换
  4. 填写:Base URL、API Key、Model name
  5. 为每个配置点击保存

通过 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 运行本地模型:

  1. 安装 Ollama
  2. 拉取模型:
    ollama pull llama3.2       # 用于对话/标签
    ollama pull nomic-embed-text  # 用于嵌入
  3. 在管理面板 → AI 配置:
    • 提供者:OpenAI
    • Base URL:http://host.docker.internal:11434/v1
    • 模型:llama3.2
  4. 嵌入配置同理,模型设为 nomic-embed-text

注意:本地模型可能比云 API 慢且准确度较低。

On this page