diff --git a/README.md b/README.md index b21e6cc..1927533 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,94 @@ # 灵感收集器 (Inspiration Collector) -手机随手记灵感 → AI 自动整理 → Gitea 交付 +手机随手记灵感 → 永久卡片化 → AI 自动整理 → Gitea 交付 + +## 核心理念 + +**原始素材与加工成果并行保留。** + +- 每条 Memos 灵感 → 独立 `cards/` 卡片文件(可检索、可引用) +- AI 分析 → `ai-insights/` 每日摘要(加工成果) +- 两条线互不覆盖,失真可追溯 ## 数据流向 ``` 手机 Memos App / Web - ↓ + │ + ▼ 服务器 Memos 实例 (memo.xybkwd.top) - ↓ -Python 脚本 + DeepSeek API - ↓ -ai-insights/daily/ 中的 .md 文件 - ↓ -git push → Gitea (fxy/inspiration-collector) - ↓ -你通过 nav.xybkwd.top 或 Gitea Web 直接阅读 + │ + ├──→ cards/ 目录(每条灵感独立 .md 卡片) + │ └── git push → Gitea 永久保存 + │ + └──→ Python 脚本 + DeepSeek API + └──→ ai-insights/daily/ 每日摘要 + └── git push → Gitea ``` -> Obsidian 已从工作流中移除。所有产出在 Gitea 上直接获取。 +## 卡片系统(v2.0 新增) + +每条 Memos 自动转换为一张独立卡片: + +```markdown +--- +title: "这是我的第一条灵感" ← 第一句话自动成为标题 +date: 2026-06-12T21:35:33+08:00 +id: 20260612213533 ← 唯一 ID(时间戳) +source: memos +tags: [交易, 策略] ← 从内容中提取的 #标签 +--- + +这是我的第一条灵感,来自自己部署的服务... + +可以通过 [[卡片标题]] 或 [[ID]] 实现双向链接。 +``` + +- 现有 19 条 memos 已全部回填 +- 每日 22:00 自动同步当天新 memos +- 文件名格式:`{ID}_{标题前30字}.md` ## 目录结构 ``` inspiration-collector/ -├── ai-insights/ # AI 生成的报告(git 追踪) +│ +├── cards/ # 📇 原始灵感卡片(每 memos 一条) +│ ├── 20260612213533_这是我的第一条灵感.md +│ ├── 20260612222144_总是匆匆总是倒计时.md +│ └── ... # 所有历史灵感 +│ +├── ai-insights/ # 🧠 AI 加工成果 │ ├── daily/ # 每日灵感摘要(含待办提取) +│ │ ├── YYYY-MM-DD_digest_HHMMSS.md +│ │ └── 01_课程分析.md(课程笔记分析) │ └── weekly/ # 每周灵感趋势 +│ ├── tools/ # 核心工具模块 │ ├── llm.py # DeepSeek API 客户端 -│ ├── memos_client.py # Memos 数据读取(Connect RPC) +│ ├── memos_client.py # Memos 数据读取 │ ├── config.py # 配置加载 │ ├── formatter.py # Markdown 输出格式化 -│ └── deepseek_balance.py # 余额查询(导航页用) -├── analyzers/ # 分析逻辑 -│ ├── daily_digest.py # 每日分析 -│ └── weekly_trend.py # 每周分析 -├── scripts/ # 自动化脚本 -│ ├── run_daily_digest.sh -│ ├── run_weekly_trend.sh -│ ├── todo_server.py # 待办 API(导航页待办系统后端) -│ ├── extract_todos.py # 从灵感摘要提取待办 -│ ├── extract_all_todos.py # 全量待办提取 -│ ├── fetch_news.py # 每日要闻抓取 -│ ├── summarize_news.py # AI 新闻摘要 -│ ├── daily_brief_gen.py # 每日简报生成 │ └── deepseek_balance.py # 余额查询 +│ +├── analyzers/ # 分析逻辑 +│ ├── daily_digest.py # 每日分析(22:00 cron) +│ └── weekly_trend.py # 每周分析 +│ +├── scripts/ # 自动化脚本 +│ ├── run_daily_digest.sh # cron 入口 +│ ├── run_weekly_trend.sh # cron 入口 +│ ├── backfill_cards.py # memos→卡片回填 +│ │ +│ │ # 关联系统(以下脚本已迁移至独立仓库) +│ ├── todo_server.py → 见 fxy/todo-system +│ ├── extract_todos.py → 见 fxy/todo-system +│ ├── fetch_news.py → 见 fxy/daily-brief +│ ├── summarize_news.py → 见 fxy/daily-brief +│ └── deepseek_balance.py +│ ├── secrets/ # 密钥(不入库,chmod 600) -│ ├── .gitignore -│ └── secrets.json.template -├── CHANGELOG.md # 版本记录 +├── CHANGELOG.md └── README.md ``` @@ -71,23 +110,33 @@ python3 analyzers/daily_digest.py # 设置 cron crontab -e -# 每日 22:00 北京时间 -0 14 * * * /home/ubuntu/inspiration-collector/scripts/run_daily_digest.sh -# 每周日 16:00 北京时间 -0 8 * * 0 /home/ubuntu/inspiration-collector/scripts/run_weekly_trend.sh +# 每日 22:00 北京时间 - 每日分析 +0 14 * * * cd ~/inspiration-collector && python3 analyzers/daily_digest.py && bash scripts/sync_cards.sh +# 每周日 16:00 北京时间 - 每周趋势 +0 8 * * 0 cd ~/inspiration-collector && python3 analyzers/weekly_trend.py ``` -### 阅读产出 +## 阅读方式 -打开以下任一方式: +| 渠道 | 说明 | +|:---|:---| +| **Gitea Web** | `gitea.xybkwd.top/fxy/inspiration-collector` | +| **导航页** | `nav.xybkwd.top` → 每日要闻 / 待办事项 | +| **AI 对话** | `chat.xybkwd.top` → 问:"查memos" | +| **本地 Obsidian** | `git clone` 后打开 Obisidian,支持 Graph View 双链 | -1. **导航页** `nav.xybkwd.top` → 每日要闻 / 待办事项 -2. **Gitea Web** `gitea.xybkwd.top/fxy/inspiration-collector` -3. **直接服务器** `cat ~/inspiration-collector/ai-insights/daily/YYYY-MM-DD_digest.md` +## 关联仓库 -### 依赖 +| 仓库 | 功能 | +|:---|:---| +| `fxy/inspiration-collector` | 本仓库 — 灵感卡片 + AI 分析 | +| `fxy/todo-system` | 待办系统 | +| `fxy/daily-brief` | 每日要闻(新闻聚合) | +| `fxy/nav-page` | 导航页 | + +## 依赖 - Python 3.10+ -- `requests` / `feedparser` / `httpx` -- DeepSeek API Key(余额 ¥10 约可用 3-6 个月) -- 自托管 Memos 实例 +- `requests` / `feedparser` +- DeepSeek API Key +- 自托管 Memos 实例(memo.xybkwd.top)