115 lines
2.5 KiB
Markdown
115 lines
2.5 KiB
Markdown
|
|
# 会议纪要长期记忆系统
|
|||
|
|
|
|||
|
|
基于 `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)。
|