| name | onezion-chatlab |
| description | ChatLab 本地聊天记录查询工具。通过 ChatLab REST API 查询、搜索、统计导入的聊天记录(WhatsApp、微信等)。支持关键词搜索、SQL 聚合查询、会话管理、数据导入导出。触发词:ChatLab、聊天记录、chat history、search chat、聊天搜索、查询消息、聊天统计 |
| agent_created | true |
| triggers | ["ChatLab","chatlab","聊天记录","chat history","search chat","聊天搜索","查询消息","聊天统计","聊天导出"] |
onezion-chatlab — ChatLab 本地聊天记录查询
通过 ChatLab REST API 查询、搜索和分析导入的本地聊天记录。
前置条件
ChatLab API 已启用(Settings → ChatLab API → Enable Service)。Token 已配置,无需用户额外操作。
API 配置
| 项目 | 值 |
|---|
| Base URL | http://127.0.0.1:5200 |
| API Prefix | /api/v1 |
| 认证 | Authorization: Bearer clb_YOUR_CHATLAB_TOKEN_HERE |
| 数据格式 | JSON |
Token 前缀为 clb_。如过期,引导用户到 ChatLab Settings → ChatLab API 重新生成。
常用 curl 命令模板
所有请求都必须带上认证 header:
TOKEN="clb_YOUR_CHATLAB_TOKEN_HERE"
AUTH="-H 'Authorization: Bearer $TOKEN'"
服务状态
curl -s http://127.0.0.1:5200/api/v1/status \
-H "Authorization: Bearer $TOKEN"
列出所有会话
curl -s http://127.0.0.1:5200/api/v1/sessions \
-H "Authorization: Bearer $TOKEN"
获取单个会话详情
curl -s http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID> \
-H "Authorization: Bearer $TOKEN"
查询消息(带过滤)
curl -s "http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/messages?keyword=<KEYWORD>&page=1&limit=50" \
-H "Authorization: Bearer $TOKEN"
curl -s "http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/messages?startTime=1700000000&endTime=1710000000" \
-H "Authorization: Bearer $TOKEN"
curl -s "http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/messages?senderId=<SENDER_ID>" \
-H "Authorization: Bearer $TOKEN"
curl -s "http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/messages?keyword=<KEYWORD>&startTime=<TS>&endTime=<TS>&senderId=<ID>&page=1&limit=100" \
-H "Authorization: Bearer $TOKEN"
消息查询支持参数:page, limit(最大1000), startTime, endTime(Unix时间戳), keyword, senderId, type
获取成员列表
curl -s http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/members \
-H "Authorization: Bearer $TOKEN"
获取会话统计概览
curl -s http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/stats/overview \
-H "Authorization: Bearer $TOKEN"
执行 SQL 查询(只读)
curl -s -X POST http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/sql \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"sql": "SELECT sender, COUNT(*) as count FROM messages GROUP BY sender ORDER BY count DESC LIMIT 10"}'
注意:仅允许 SELECT 查询。 常用 SQL 示例:
SELECT sender, COUNT(*) as count FROM messages GROUP BY sender ORDER BY count DESC;
SELECT date(timestamp, 'unixepoch') as day, COUNT(*) as count FROM messages GROUP BY day ORDER BY day;
SELECT * FROM messages WHERE content LIKE '%关键词%' ORDER BY timestamp DESC LIMIT 20;
SELECT strftime('%H', timestamp, 'unixepoch') as hour, COUNT(*) as count FROM messages GROUP BY hour ORDER BY count DESC;
导出会话
curl -s "http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/export" \
-H "Authorization: Bearer $TOKEN"
导出限制:最多 100,000 条消息。
导入聊天记录
curl -s -X POST http://127.0.0.1:5200/api/v1/import \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @chatlab-format.json
curl -s -X POST http://127.0.0.1:5200/api/v1/sessions/<SESSION_ID>/import \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @new-messages.json
工作流程
查询聊天记录时
- 先用
GET /sessions 获取会话列表,确认目标会话 ID
- 用
GET /sessions/:id/members 获取成员列表(了解发送者)
- 根据需求选择:
- 简单搜索 →
GET /sessions/:id/messages?keyword=xxx
- 统计分析 →
POST /sessions/:id/sql 执行聚合查询
- 内容导出 →
GET /sessions/:id/export
分析聊天内容时
- 先用
GET /sessions/:id/stats/overview 了解整体概况
- 用 SQL 查询进行维度分析(按人、按时间、按类型)
- 用关键词搜索定位具体消息
- 结果过多时分页获取(
page 参数)
导入新聊天记录时
- 确认 ChatLab Format JSON 格式正确
- 用
POST /import 创建新会话
- 后续增量数据用
POST /sessions/:id/import 导入
- 去重规则:
timestamp + senderPlatformId + contentLength
注意事项
- ChatLab 服务仅绑定
127.0.0.1,仅本地可访问
- SQL 查询只允许
SELECT,不支持写操作
- 消息分页最大每页 1000 条
- 导出最多 100,000 条消息
- JSON 导入 body 限制 50MB,JSONL 流式导入无限制
- 同一时间只能执行一个导入任务