meeting_memory/README.md

115 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 会议纪要长期记忆系统
基于 `LLM + LlamaIndex + 本地状态存储` 的会议纪要长期记忆原型,当前聚焦三件事:
- 会议内容结构化抽取
- 跨会议行动项与指标状态追踪
- 语义检索与重复内容过滤
## 当前处理链路
```text
meeting.md
-> 内容哈希去重
-> 语义相似去重
-> LLM 结构化抽取
-> 状态合并
-> 原文归档到 data/raw
-> 写入向量索引
```
当前版本已经移除了 `Obsidian` 作为主流程依赖,后续会继续引入图数据库来承载关系层。
## 快速开始
```bash
cd meeting_memory
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
copy .env.example .env
# 然后补充 API 配置
.venv\Scripts\python main.py process meeting_example.md
```
## 用法
```bash
python main.py
python main.py process meeting_example.md
python main.py process meeting_example.md -f
python main.py query "弱光指标目标值是多少"
python main.py stats
python main.py text "今天会议讨论了..."
python main.py batch "meetings/*.md" -f
```
## 目录
```text
meeting_memory/
├── config.py 配置
├── extractor.py LLM 结构化抽取
├── meeting_processor.py 主处理流程
├── meeting_state.py 跨会议状态追踪
├── raw_store.py 原文归档
├── vector_store.py 向量索引与语义检索
├── main.py CLI 入口
├── data/
│ ├── raw/ 原始会议文本归档
│ └── meeting_state.json 状态持久化
└── vector_store_data/ 向量索引持久化目录
```
## 核心能力
### 1. 结构化抽取
从会议文本中提取:
- 标题、日期、参会人
- 实体
- 关系
- 行动项
- 指标
- 决策
- 摘要
### 2. 长期状态追踪
- 行动项按 `task + assignee` 做稳定 ID
- 指标按 `metric_name + owner` 做稳定 ID
- 保留历史状态演化
- 支持跨会议合并
### 3. 双重去重
- 内容哈希精确去重
- 语义相似度去重
### 4. 语义检索
- 会议内容写入向量库
- 支持自然语言查询
- 索引持久化,重启自动加载
## 配置
编辑 `.env`
```ini
LLM_API_KEY=sk-xxx
LLM_BASE_URL=https://api.deepseek.com/v1
LLM_MODEL=deepseek-chat
EMBEDDING_API_KEY=sk-xxx
EMBEDDING_BASE_URL=https://api.openai.com/v1
EMBEDDING_MODEL=text-embedding-3-small
```
## 迁移计划
当前迁移进度见 [MIGRATION_TASKS.md](/d:/github_project/my_code/meeting_memory/MIGRATION_TASKS.md:1)。