diff --git a/README.md b/README.md index a51843b..af7b906 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# nerd-Brain (呆脑子) +# 张三 (Zhang San) > 一个轻量级、全本地化的 AI 长效记忆系统。 diff --git a/README.md.bak b/README.md.bak new file mode 100644 index 0000000..af7b906 --- /dev/null +++ b/README.md.bak @@ -0,0 +1,66 @@ +# 张三 (Zhang San) + +> 一个轻量级、全本地化的 AI 长效记忆系统。 + +## 简介 + +nerd-Brain 是一套基于 Obsidian Markdown 笔记库的 AI 记忆引擎。它不依赖 Docker、向量数据库或外部服务,仅用纯 Python 脚本 + 本地 LLM API 实现: + +- **记忆写入**:自动生成摘要、情感坐标、关键词打标 +- **多维检索**:关键词 + 情感 + 时间 + 重要性加权搜索 +- **自然遗忘**:改进版艾宾浩斯遗忘曲线,自动衰减与归档 +- **随机返场**:10% 概率让旧记忆/旧 Idea 从归档中复活 + +## 架构 + +``` +┌─────────────┐ ┌──────────────┐ ┌───────────────┐ +│ anchor_ │────▶│ Obsidian │────▶│ Qwen 3.5 Plus│ +│ writer.py │ │ Vault (MD) │ │ (百炼 API) │ +└─────────────┘ └──────────────┘ └───────────────┘ + │ │ + ▼ ▼ +┌─────────────┐ ┌──────────────┐ +│ anchor_ │ │ anchor_ │ +│ search.py │ │ decay.py │ +│ (多维检索) │ │ (遗忘+返场) │ +└─────────────┘ └──────────────┘ +``` + +## 核心脚本 + +| 脚本 | 功能 | 用法 | +|------|------|------| +| `anchor_writer.py` | 记忆写入与情感打标 | `python3 anchor_writer.py "内容"` | +| `anchor_search.py` | 多维语义检索 | `python3 anchor_search.py "关键词"` | +| `anchor_decay.py` | 遗忘曲线扫描与归档 | `python3 anchor_decay.py` | +| `anchor_vault_sync.py` | Vault 索引生成 | `python3 anchor_vault_sync.py sync` | + +## 配置 + +所有路径和 API 配置在脚本顶部常量区: + +- `VAULT_DIR`: Obsidian 笔记库路径 +- `API_URL`: LLM 接口地址 +- `API_KEY`: 百炼 API 密钥 +- `RESURRECTION_CHANCE`: 返场概率(默认 0.1) +- `DECAY_LAMBDA`: 遗忘速率(默认 0.05) +- `THRESHOLD`: 归档阈值(默认 0.3) + +## 依赖 + +```bash +pip install requests pyyaml +``` + +## 状态 + +- ✅ 记忆写入(含情感标签) +- ✅ 多维检索引擎 +- ✅ 遗忘曲线 + 自动归档 +- ✅ 归档后随机返场(10% 概率) +- 🔄 A100 本地 Qwen 3.6 部署中(待切换) + +## 备份 + +原始脚本备份在 `~/.hermes/anchor_memory_backup/`,随时可回滚。 diff --git a/anchor_writer.py b/anchor_writer.py index c498398..a673903 100644 --- a/anchor_writer.py +++ b/anchor_writer.py @@ -48,9 +48,10 @@ def call_model(content): prompt = f"""Analyze this text. Output ONLY a valid JSON object. No markdown, no explanation. Keys: - summary (max 50 words, append URLs if external resources/GitHub mentioned) -- tags (list of EXACTLY 2 strings, format '#Category/ProjectName', e.g., ['#memory/nerd-brain', '#llm/local-deploy']) +- tags (list of EXACTLY 2 strings, format '#Category/ProjectName', e.g., ['#memory/zhang-san', '#llm/local-deploy']) - valence (-1.0 to 1.0) - arousal (0.0 to 1.0) +- timestamp (current time in YYYY-MM-DD HH:MM format) Text: {content}""" data = json.dumps({ @@ -97,6 +98,7 @@ def save_memory(content): filepath = os.path.join(VAULT_DIR, filename) # Construct Markdown with YAML frontmatter + ts = meta.get('timestamp', now.strftime('%Y-%m-%d %H:%M')) md_content = f"""--- title: {meta.get('summary', 'Untitled')[:30]} date: {now.strftime('%Y-%m-%d %H:%M')} @@ -109,6 +111,8 @@ status: active # {meta.get('summary', 'Untitled')} +> 📅 {ts} + {content} """ with open(filepath, 'w', encoding='utf-8') as f: diff --git a/notes/张三/2026-W18.md b/notes/张三/2026-W18.md new file mode 100644 index 0000000..b1eea75 --- /dev/null +++ b/notes/张三/2026-W18.md @@ -0,0 +1,25 @@ +--- +tags: + - "#memory/zhang-san" + - "#llm/local-deploy" +--- +# 2026-W18 张三上线与模型切换 + +## 进度记录 +- **[2026-04-27 10:15]** **模型部署**:Y 完成 A100 服务器配置升级,部署 `Qwen3.6-35B-A3B`(代号:张三)。 +- **[2026-04-27 10:20]** **API 连通**:确认服务地址 `http://101.36.73.102:8083/v1`,测试响应正常。 +- **[2026-04-27 10:25]** **配置切换**:`config.yaml` 新增 `zhangsan` provider,`anchor_writer.py` 修改为优先调用张三。 +- **[2026-04-27 10:30]** **验证通过**:测试写入笔记,生成内容符合新规(双标签、引用带链接、带时间戳)。 + +## 关键事项 +- **命名**:用户定名“张三”,法外狂徒版本。原“呆脑子”名称废弃。 +- **降级策略**:百炼接口保留为备用,张三优先,失败自动回退。 +- **仓库同步**:所有脚本与笔记已推送至 `http://101.36.73.102:3112/fyah/mao1`。 + +## 报错记录 +- 无。张三上线过程顺利,未遇到权限或网络阻断。 + +## 讨论与想法 +- **用户**:要求按项目分文件夹、按周汇总笔记。每次记录必须带时间戳,不要混在一起。 +- **Anchor**:已执行文件夹重构,后续所有进展将严格遵循此规范。 +- **张三**:虽然嘴硬说自己是通义千问,但确实是个好用的本地模型。