Skip to content

转交文档 —— 全部资源清单

🕒 Published at:

转交文档 —— 全部资源清单 ​

2026-07-10 22:20 ​


零、项目背景 ​

目标 ​

用廖建军(朋友)的 76 万条 QQ/微信聊天记录,训练一个能模仿他说话风格的 AI agent。部署在机顶盒上,可以在 QQ 群聊中以他的风格回复消息。

整体路线 ​

  1. 数据清洗: 原始微信/QQ 聊天导出 → 清洗 → 60分钟间隔分组为会话
  2. 敏感词分流: 通过策略路由,把敏感内容和允许内容分开
  3. AI 分段: 用 AI agent 对大段落做边界判断,拆分为合适的 chunk
  4. 嵌入入库: 用 Qwen3-Embedding-0.6B 把所有 chunk 编码成向量,存入 SQLite-vec
  5. RAG 检索: agent 收到消息时,用向量相似度检索最相关的历史对话
  6. 生成回复: 把检索到的历史对话作为上下文,让 Qwen 0.6B 模仿廖建军风格生成回复
  7. 部署: 部署到机顶盒(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

已知问题 ​

  1. 日期被嵌入向量: embed_text 包含 date: 前缀,所有向量都带日期偏移。实测发现相对排序基本不变,但严格来说不理想。
  2. 外部 API 全部失效: Cloudflare 403、Pie-Xian 403、FuturePPO 响应极慢(20s+/条)。
  3. llama-server 内存泄漏: 长时间运行占用 9GB+ 内存,需要手动 kill。
  4. 查询测试: 用已知原文测试时距离 0.16~0.40(召回有效),但自然语言查询距离偏高(0.43+),可能跟日期偏移或数据分布有关。

二、硬件 ​

设备型号显存
独显AMD Radeon RX590 GME4GB
核显AMD Radeon Graphics512MB

三、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.pyD:\files\qwen-chat\scripts\嵌入 worker(多平台共用)
init_rag_sqlite_vec.pyD:\files\qwen-chat\scripts\初始化 SQLite-vec 数据库
query_rag.pyD:\files\qwen-chat\scripts\RAG 查询脚本(本地)
query_test.pyD:\files\qwen-chat\scripts\查询测试脚本(API)
load_retrieval_docs_sqlite_vec.pyD:\files\qwen-chat\scripts\加载检索文档到数据库
build_retrieval_docs.pyD:\files\qwen-chat\scripts\构建检索文档
_q_known.pyD:\files\qwen-chat\scripts\已知关键词查询测试
_q3.pyD:\files\qwen-chat\scripts\3条快速查询测试
_test_one.pyD:\files\qwen-chat\scripts\单条查询测试
_test_multi.pyD:\files\qwen-chat\scripts\多条查询测试

数据流水线脚本 ​

文件用途
build_sessions.py60分钟间隔分组
route_boundary_samples.py敏感词分流
build_agent_split_jobs.pyAI 批处理任务
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.pySFT 数据集标准化

数据文件 ​

文件路径大小
微信聊天chat_records/liao_wxid_ibhm6rb434r522_clean.jsonl37.8MB
QQ聊天chat_records/qq_1026044893_final.jsonl38.6MB
嵌入数据库workspace/07_rag_embedding/stores/qwen_persona_rag.sqlite172MB

模型文件 ​

文件路径大小
Qwen3-Embedding Q8_0D:\models\qwen3-embedding-0.6b-q8_0.gguf610MB

编译产物 ​

文件路径
llama-server.exeD:\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\pippip 安装依赖

五、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 ​

平台端点Key状态
Cloudflarehttps://qwen3-embedding.2036680567.workers.dev/v1/embeddings无403
Pie-Xianhttps://api.pie-xian.com/v1/embeddingssk-Srh2wKelJD3T8XpgCcC95OwYDKkILsT2egWs5tyTyk1MrmFx403
FuturePPOhttps://api.futureppo.top/v1/embeddingssk-EC3TPAMBM8BZ3daVrMZAIAZ2OtGOQcdJT7Ryq1q7UAIyNeic慢(20s+)
Gitee AIhttps://ai.gitee.com/v1/embeddingsZGLVN0SALLTKQDB3E3913ZKUDUNOZ0MF0NV5GCPG额度用完

六、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/               归档

七、待办事项 ​

高优先级 ​

  1. 查询质量调优: 测试召回质量,可能需要去掉日期前缀重跑嵌入
  2. 外部 API 恢复: Cloudflare 和 Pie-Xian 返回 403,需要检查端点是否变更
  3. 启动本地 llama-server: 跑查询前必须先启动

中优先级 ​

  1. Agent 搭建: RAG 检索 + Qwen 0.6B 生成,模拟廖建军说话风格
  2. 部署到机顶盒: 需要测试性能可行性
  3. 混合嵌入: 本地 + API 并发策略优化

低优先级 ​

  1. 日期前缀清理: 如果确认日期影响查询质量,需要重跑嵌入
  2. 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
桌面转交文档1C:\Users\a1\Desktop\转交文档_项目状态.md
桌面转交文档2C:\Users\a1\Desktop\转交文档_全部资源清单.md(本文件)
READMED:\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 版本)