转交文档 —— 全部资源清单 2026-07-10 22:20 零、项目背景 目标 用廖建军(朋友)的 76 万条 QQ/微信聊天记录,训练一个能模仿他说话风格的 AI agent。部署在机顶盒上,可以在 QQ 群聊中以他的风格回复消息。
整体路线 数据清洗 : 原始微信/QQ 聊天导出 → 清洗 → 60分钟间隔分组为会话敏感词分流 : 通过策略路由,把敏感内容和允许内容分开AI 分段 : 用 AI agent 对大段落做边界判断,拆分为合适的 chunk嵌入入库 : 用 Qwen3-Embedding-0.6B 把所有 chunk 编码成向量,存入 SQLite-vecRAG 检索 : agent 收到消息时,用向量相似度检索最相关的历史对话生成回复 : 把检索到的历史对话作为上下文,让 Qwen 0.6B 模仿廖建军风格生成回复部署 : 部署到机顶盒(8GB 内存),QQ 群聊中使用硬件约束 AMD RX590 GME 4GB 独显(主力推理) Intel 核显 512MB(可辅助) 目标部署设备: 机顶盒(资源有限) 当前进度 阶段 1-4 已完成(数据清洗 → 嵌入库,76万条消息,100%嵌入) 阶段 5-6 待搭建(RAG + agent 生成) 阶段 7 待验证(机顶盒部署可行性) 一、当前状态 数据库(已完成) 路径: D:\files\qwen-chat\workspace\07_rag_embedding\stores\qwen_persona_rag.sqlite 大小: 172MB chunk 总数: 17,846 条 嵌入完成: 17,846 / 17,846 (100%) 嵌入模型: Qwen3-Embedding-0.6B 嵌入维度: 1024 向量表: vec_qwen3_0_6b embedding_text 格式: date: YYYY-MM-DD\n\nuser/assistant chat text(日期带入了向量) 总消息数: 762,712 条 总字符数: 12,235,518 日期范围: 2022-10-04 ~ 2026-07-03 来源: 微信 37.8MB + QQ 38.6MB 已知问题 日期被嵌入向量 : embed_text 包含 date: 前缀,所有向量都带日期偏移。实测发现相对排序基本不变,但严格来说不理想。外部 API 全部失效 : Cloudflare 403、Pie-Xian 403、FuturePPO 响应极慢(20s+/条)。llama-server 内存泄漏 : 长时间运行占用 9GB+ 内存,需要手动 kill。查询测试 : 用已知原文测试时距离 0.16~0.40(召回有效),但自然语言查询距离偏高(0.43+),可能跟日期偏移或数据分布有关。二、硬件 设备 型号 显存 独显 AMD Radeon RX590 GME 4GB 核显 AMD Radeon Graphics 512MB
三、GitHub 仓库 1. qwen-chat(人格模拟 + RAG 嵌入库) 本地: D:\files\qwen-chat
远程: https://github.com/chentianxiong123/qwen-chat-rx580-lora-persona-agent.git
最新提交: b025b69 Clarify persona agent repository role 2. llama.cpp-lora-embed(嵌入引擎) 本地: D:\llama-lora-embed
远程: https://github.com/chentianxiong123/llama.cpp-lora-embed.git
上游: https://github.com/ggerganov/llama.cpp.git (push disabled)
编译产物: build\bin\Release\llama-server.exe 3. stable-diffusion.cpp-flux2-klein(图像生成,独立项目) 本地: D:\workapp\sd-cli-src
远程: https://github.com/chentianxiong123/stable-diffusion.cpp-flux2-klein-rx580.git
上游: https://github.com/leejet/stable-diffusion.cpp.git 四、文件位置总表 核心脚本 文件 路径 用途 embed_worker_sqlite_vec.py D:\files\qwen-chat\scripts\ 嵌入 worker(多平台共用) init_rag_sqlite_vec.py D:\files\qwen-chat\scripts\ 初始化 SQLite-vec 数据库 query_rag.py D:\files\qwen-chat\scripts\ RAG 查询脚本(本地) query_test.py D:\files\qwen-chat\scripts\ 查询测试脚本(API) load_retrieval_docs_sqlite_vec.py D:\files\qwen-chat\scripts\ 加载检索文档到数据库 build_retrieval_docs.py D:\files\qwen-chat\scripts\ 构建检索文档 _q_known.py D:\files\qwen-chat\scripts\ 已知关键词查询测试 _q3.py D:\files\qwen-chat\scripts\ 3条快速查询测试 _test_one.py D:\files\qwen-chat\scripts\ 单条查询测试 _test_multi.py D:\files\qwen-chat\scripts\ 多条查询测试
数据流水线脚本 文件 用途 build_sessions.py 60分钟间隔分组 route_boundary_samples.py 敏感词分流 build_agent_split_jobs.py AI 批处理任务 build_final_segments_from_agent_decisions.py 最终分段 build_event_stream.py 事件流构建 build_style_stream_short_sft.py 风格 SFT 数据 build_weighted_style_mix_sft.py 加权风格混合 build_distribution_sft.py 分布式 SFT normalize_sft_dataset.py SFT 数据集标准化
数据文件 文件 路径 大小 微信聊天 chat_records/liao_wxid_ibhm6rb434r522_clean.jsonl 37.8MB QQ聊天 chat_records/qq_1026044893_final.jsonl 38.6MB 嵌入数据库 workspace/07_rag_embedding/stores/qwen_persona_rag.sqlite 172MB
模型文件 文件 路径 大小 Qwen3-Embedding Q8_0 D:\models\qwen3-embedding-0.6b-q8_0.gguf 610MB
编译产物 文件 路径 llama-server.exe D:\llama-lora-embed\build\bin\Release\llama-server.exe
Python 环境 路径 说明 D:\files\qwen-chat.venv\Scripts\python.exe 必须用这个(有 sqlite_vec) D:\files\qwen-chat.venv\Scripts\pip pip 安装依赖
五、API 端点 本地 端点: http://127.0.0.1:8081/v1/embeddings
模型: qwen3-embedding-0.6b
启动: llama-server.exe --model D:\models\qwen3-embedding-0.6b-q8_0.gguf --host 127.0.0.1 --port 8081 --embedding --pooling last --embd-normalize 2 --main-gpu 0 --n-gpu-layers 9999 --batch-size 512 --ctx-size 8192 外部 API 六、workspace 目录结构 D:\files\qwen-chat\workspace\
├── 00_source_clean/ 原始数据清洗
├── 01_sessions_60m/ 60分钟会话分组
├── 02_policy_route_sensitive_split/ 敏感词分流(api_allowed / api_blocked)
├── 03_agent_split_jobs/ AI 批处理任务
├── 04_ai_batch_workspaces/ AI 工作空间
├── 05_agent_decisions/ AI 决策结果
├── 06_final_segments/ 最终分段
├── 07_rag_embedding/ 嵌入库(stores/qwen_persona_rag.sqlite)
├── 08_sft_datasets/ SFT 数据集
├── 09_train_runs/ 训练记录
├── 90_logs/ 日志
└── 99_archive/ 归档 七、待办事项 高优先级 查询质量调优 : 测试召回质量,可能需要去掉日期前缀重跑嵌入外部 API 恢复 : Cloudflare 和 Pie-Xian 返回 403,需要检查端点是否变更启动本地 llama-server : 跑查询前必须先启动中优先级 Agent 搭建 : RAG 检索 + Qwen 0.6B 生成,模拟廖建军说话风格部署到机顶盒 : 需要测试性能可行性混合嵌入 : 本地 + API 并发策略优化低优先级 日期前缀清理 : 如果确认日期影响查询质量,需要重跑嵌入SFT 数据集 : workspace/08_sft_datasets/ 目前为空八、常用命令 启动本地嵌入服务 powershell D:\llama - lora - embed\build\bin\Release\ llama-server.exe -- model D:\models\qwen3 - embedding - 0. 6b - q8_0.gguf -- host 127.0 . 0.1 -- port 8081 -- embedding -- pooling last -- embd - normalize 2 -- main - gpu 0 -- n - gpu - layers 9999 -- batch - size 512 -- ctx - size 8192 启动嵌入 worker(本地 GPU) powershell D:\files\qwen - chat\.venv\Scripts\ python.exe D:\files\qwen - chat\scripts\embed_worker_sqlite_vec.py -- provider local -- model qwen3 - embedding - 0. 6b -- endpoint http: // 127.0 . 0.1 : 8081 / v1 / embeddings -- batch - size 32 -- limit 5000 -- claim - any - provider -- claim - any - model 查看嵌入进度 powershell D:\files\qwen - chat\.venv\Scripts\ python.exe - c " import sqlite3;conn=sqlite3.connect(r'D:\files\qwen-chat\workspace\07_rag_embedding\stores\qwen_persona_rag.sqlite');c=conn.cursor();[print(s,cnt) for s,cnt in c.execute('SELECT status,COUNT(*) FROM embedding_jobs GROUP BY status')];conn.close() " 杀掉内存泄漏的 llama-server powershell Get-Process - Name " llama-server " | Stop-Process - Force 查询测试(本地) powershell D:\files\qwen - chat\.venv\Scripts\ python.exe D:\files\qwen - chat\scripts\query_rag.py - q " 你要查的内容 " 九、文档位置 文件 位置 项目内并发指南 D:\files\qwen-chat\docs\embedding_concurrent_guide.md 桌面并发教程 C:\Users\a1\Desktop\并发嵌入建库教程_多Worker实战.md 桌面转交文档1 C:\Users\a1\Desktop\转交文档_项目状态.md 桌面转交文档2 C:\Users\a1\Desktop\转交文档_全部资源清单.md(本文件) README D:\files\qwen-chat\README.md workspace布局 D:\files\qwen-chat\docs\workspace_layout.md 嵌入生产说明 D:\files\qwen-chat\docs\embedding_production.md
十、环境变量 / 依赖 Python: D:\files\qwen-chat\.venv\ (3.12+)
pip 依赖: openai, sqlite-vec
llama.cpp: D:\llama-lora-embed\ (自编译,Release 版本)