mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-08-14 03:18:04 +00:00
refactor: Remove libs directory
This commit is contained in:
-231
@@ -1,231 +0,0 @@
|
||||
# AI Chat Converter - AI 助手完全指南
|
||||
|
||||
> **把这个文档发给 AI 助手,它就知道怎么帮你用这个工具了**
|
||||
|
||||
---
|
||||
|
||||
## 🎯 这是什么?
|
||||
|
||||
一个把 Codex、Kiro、Gemini、Claude 的聊天记录全部存到一个 SQLite 数据库的工具。
|
||||
|
||||
**数据库位置**: `项目目录/output/chat_history.db`
|
||||
|
||||
---
|
||||
|
||||
## 🚀 怎么启动?
|
||||
|
||||
### 方式一:双击启动(推荐)
|
||||
```bash
|
||||
./start.sh # Linux/macOS
|
||||
start.bat # Windows(双击)
|
||||
```
|
||||
|
||||
### 方式二:命令行
|
||||
```bash
|
||||
cd ai-chat-converter
|
||||
python src/main.py --watch # 持续监控(推荐)
|
||||
python src/main.py # 同步一次就退出
|
||||
```
|
||||
|
||||
### 方式三:后台运行
|
||||
```bash
|
||||
nohup ./start.sh > /dev/null 2>&1 &
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 数据库长啥样?
|
||||
|
||||
### 主表:sessions
|
||||
|
||||
| 字段 | 说明 | 例子 |
|
||||
|------|------|------|
|
||||
| file_path | 主键,文件路径 | `/home/user/.codex/sessions/xxx.jsonl` |
|
||||
| session_id | 会话ID | `019b2164-168c-7133-9b1f-5d24fea1d3e1` |
|
||||
| source | 来源 | `codex` / `kiro` / `gemini` / `claude` |
|
||||
| cwd | 工作目录 | `/home/user/projects/myapp` |
|
||||
| messages | 消息内容(JSON) | `[{"time":"...", "role":"user", "content":"..."}]` |
|
||||
| start_time | 开始时间 | `2025-12-18T10:30:00` |
|
||||
| token_count | Token 数量 | `1234` |
|
||||
|
||||
---
|
||||
|
||||
## 🔍 常用查询(直接复制用)
|
||||
|
||||
### 1. 看看有多少数据
|
||||
|
||||
```sql
|
||||
SELECT source, COUNT(*) as 会话数, SUM(token_count) as Token总数
|
||||
FROM sessions
|
||||
GROUP BY source;
|
||||
```
|
||||
|
||||
### 2. 最近的 10 个会话
|
||||
|
||||
```sql
|
||||
SELECT session_id, source, cwd, start_time, token_count
|
||||
FROM sessions
|
||||
ORDER BY start_time DESC
|
||||
LIMIT 10;
|
||||
```
|
||||
|
||||
### 3. 搜索包含某个词的对话
|
||||
|
||||
```sql
|
||||
SELECT session_id, source, cwd, start_time
|
||||
FROM sessions
|
||||
WHERE messages LIKE '%要搜索的词%'
|
||||
ORDER BY start_time DESC
|
||||
LIMIT 20;
|
||||
```
|
||||
|
||||
### 4. 查某个项目的所有对话
|
||||
|
||||
```sql
|
||||
SELECT session_id, source, start_time, token_count
|
||||
FROM sessions
|
||||
WHERE cwd LIKE '%项目名%'
|
||||
ORDER BY start_time;
|
||||
```
|
||||
|
||||
### 5. 看某个会话的完整内容
|
||||
|
||||
```sql
|
||||
SELECT messages FROM sessions WHERE session_id = '会话ID';
|
||||
```
|
||||
|
||||
### 6. 统计每天用了多少 Token
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
date(start_time) as 日期,
|
||||
SUM(token_count) as Token数
|
||||
FROM sessions
|
||||
GROUP BY 日期
|
||||
ORDER BY 日期 DESC
|
||||
LIMIT 7;
|
||||
```
|
||||
|
||||
### 7. 统计每个来源的 Token
|
||||
|
||||
```sql
|
||||
SELECT source, SUM(token_count) as tokens
|
||||
FROM sessions
|
||||
GROUP BY source
|
||||
ORDER BY tokens DESC;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💻 命令行用法
|
||||
|
||||
| 命令 | 干啥的 |
|
||||
|------|--------|
|
||||
| `python src/main.py` | 同步一次 |
|
||||
| `python src/main.py -w` | 持续监控(推荐) |
|
||||
| `python src/main.py --stats` | 看统计信息 |
|
||||
| `python src/main.py --search "关键词"` | 搜索 |
|
||||
| `python src/main.py --export json` | 导出 JSON |
|
||||
| `python src/main.py --export csv` | 导出 CSV |
|
||||
| `python src/main.py --prune` | 清理已删除文件的记录 |
|
||||
|
||||
---
|
||||
|
||||
## 🐍 用 Python 查询
|
||||
|
||||
```python
|
||||
import sqlite3
|
||||
import json
|
||||
|
||||
# 连接数据库
|
||||
db = sqlite3.connect('output/chat_history.db')
|
||||
|
||||
# 查所有 Codex 会话
|
||||
for row in db.execute("SELECT session_id, cwd, token_count FROM sessions WHERE source='codex'"):
|
||||
print(f"{row[0]}: {row[2]} tokens - {row[1]}")
|
||||
|
||||
# 搜索包含 "python" 的对话
|
||||
for row in db.execute("SELECT session_id, source FROM sessions WHERE messages LIKE '%python%'"):
|
||||
print(f"[{row[1]}] {row[0]}")
|
||||
|
||||
# 获取某个会话的消息
|
||||
row = db.execute("SELECT messages FROM sessions WHERE session_id=?", ('会话ID',)).fetchone()
|
||||
if row:
|
||||
messages = json.loads(row[0])
|
||||
for msg in messages:
|
||||
print(f"{msg['role']}: {msg['content'][:100]}...")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 文件在哪?
|
||||
|
||||
```
|
||||
ai-chat-converter/
|
||||
├── start.sh ← 双击这个启动
|
||||
├── output/
|
||||
│ ├── chat_history.db ← 数据库在这
|
||||
│ └── logs/ ← 日志在这
|
||||
└── src/
|
||||
└── main.py ← 主程序
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ❓ AI 助手任务示例
|
||||
|
||||
当用户说这些话时,你应该这样做:
|
||||
|
||||
| 用户说 | 你做 |
|
||||
|--------|------|
|
||||
| "帮我查最近的对话" | 执行最近会话 SQL |
|
||||
| "搜索关于 Python 的讨论" | 用 `--search` 或 SQL 搜索 |
|
||||
| "这个月用了多少 Token" | 执行 Token 统计 SQL |
|
||||
| "导出所有 Codex 记录" | `python src/main.py --export json --source codex` |
|
||||
| "启动监控" | `./start.sh` 或 `python src/main.py -w` |
|
||||
| "数据库在哪" | `output/chat_history.db` |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 出问题了?
|
||||
|
||||
### 问题:找不到数据库
|
||||
```bash
|
||||
# 先运行一次同步
|
||||
python src/main.py
|
||||
```
|
||||
|
||||
### 问题:依赖没装
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 问题:权限不够
|
||||
```bash
|
||||
chmod +x start.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 消息格式
|
||||
|
||||
数据库里的 `messages` 字段是 JSON 数组:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"time": "2025-12-18T10:30:00",
|
||||
"role": "user",
|
||||
"content": "帮我写个 Python 脚本"
|
||||
},
|
||||
{
|
||||
"time": "2025-12-18T10:30:05",
|
||||
"role": "ai",
|
||||
"content": "好的,这是一个简单的脚本..."
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
- `role`: `user`(用户)或 `ai`(AI 回复)
|
||||
- `time`: ISO 格式时间
|
||||
- `content`: 消息内容
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
# Roadmap
|
||||
|
||||
## v1.0 ✅ Core
|
||||
- [x] Multi-CLI support (Codex/Kiro/Gemini/Claude)
|
||||
- [x] Auto path detection
|
||||
- [x] SQLite storage
|
||||
- [x] Incremental sync
|
||||
- [x] Cross-platform watch mode (watchdog)
|
||||
- [x] Token counting (tiktoken)
|
||||
|
||||
## Future
|
||||
- [ ] Web UI
|
||||
- [ ] API server mode
|
||||
- [ ] Vector storage (RAG)
|
||||
- [ ] Cross-AI context sharing
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
# 数据库结构 (v5)
|
||||
|
||||
**位置**: `项目目录/output/chat_history.db`
|
||||
|
||||
## sessions 表(主表)
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| file_path | TEXT | 主键,源文件路径 |
|
||||
| session_id | TEXT | 会话 ID |
|
||||
| source | TEXT | 来源: codex/kiro/gemini/claude |
|
||||
| cwd | TEXT | 工作目录 |
|
||||
| messages | TEXT | JSON 数组 |
|
||||
| file_mtime | INTEGER | 文件修改时间戳 |
|
||||
| start_time | TEXT | 会话开始时间 |
|
||||
| token_count | INTEGER | Token 数量 |
|
||||
|
||||
**索引**: `idx_source`, `idx_session_id`, `idx_start_time`
|
||||
|
||||
## meta 表(全局统计)
|
||||
|
||||
| key | 说明 |
|
||||
|-----|------|
|
||||
| schema_version | 数据库版本 (5) |
|
||||
| total_sessions | 总会话数 |
|
||||
| total_messages | 总消息数 |
|
||||
| total_tokens | 总 Token 数 |
|
||||
| last_sync | 最后同步时间 |
|
||||
|
||||
## meta_{cli} 表(各 CLI 统计)
|
||||
|
||||
每个 CLI 独立的元信息表:`meta_codex`, `meta_kiro`, `meta_gemini`, `meta_claude`
|
||||
|
||||
| key | 说明 |
|
||||
|-----|------|
|
||||
| path | 监控路径 |
|
||||
| sessions | 会话数 |
|
||||
| messages | 消息数 |
|
||||
| total_tokens | Token 总数 |
|
||||
| last_sync | 最后同步时间 |
|
||||
|
||||
## 消息格式
|
||||
|
||||
```json
|
||||
[
|
||||
{"time": "2025-12-18T10:30:00", "role": "user", "content": "..."},
|
||||
{"time": "2025-12-18T10:30:05", "role": "ai", "content": "..."}
|
||||
]
|
||||
```
|
||||
Reference in New Issue
Block a user