项目转交文档
更新时间: 2026-07-10 21:05
一、硬件环境
| 设备 | 型号 | 显存 |
|---|---|---|
| 独显 | AMD Radeon RX590 GME | 4GB (驱动报告) |
| 核显 | AMD Radeon Graphics | 512MB |
注意: RX590 GME 报告显存为 4GB,不是 8GB。llama-server 在当前配置下可能 fallback 到系统内存。
二、GitHub 仓库
1. qwen-chat (人格模拟 + RAG 嵌入库)
- 本地路径: D:\files\qwen-chat
- 远程: https://github.com/chentianxiong123/qwen-chat-rx580-lora-persona-agent.git
- 最新提交: 025b69 Clarify persona agent repository role
- 用途: 聊天数据处理 + 嵌入库构建 + SFT数据集生成 + LoRA 训练配置
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)
- 最新提交: c9cc80387 Document engine repository role
- 编译产物: uild\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
- 最新提交: 2635242 Upstream base without media artifacts
- 用途: FLUX2 Klein 局部重绘 (inpaint), 支持 mask + 参考图
三、数据处理流水线
本地路径: D:\files\qwen-chat\workspace\
| 步骤 | 目录 | 说明 |
|---|---|---|
| 00 | �0_source_clean | 原始聊天记录清洗 |
| 01 | �1_sessions_60m | 按60分钟间隔分组为会话 |
| 02 | �2_policy_route_sensitive_split | 敏感词分流 (敏感/非敏感) |
| 03 | �3_agent_split_jobs | 为 AI 批处理准备任务队列 |
| 04 | �4_ai_batch_workspaces | AI 批处理工作空间 |
| 05 | �5_agent_decisions | AI 处理结果/决策 |
| 06 | �6_final_segments | 最终文本分段 |
| 07 | �7_rag_embedding | SQLite-vec 嵌入库 (当前进度 88.9%) |
| 08 | �8_sft_datasets | SFT 训练数据集 |
| 09 | �9_train_runs | LoRA 训练记录 |
| 90 | 90_logs | 运行日志 |
| 99 | 99_archive | 归档 |
嵌入库当前状态
- 数据库: workspace/07_rag_embedding/stores/qwen_persona_rag.sqlite (172MB)
- 总 chunk: 17,846 条
- 已嵌入: 15,864 条 (88.9%)
- 待处理: 1,763 条 (pending in embedding_jobs)
- 失败: 219 条
四、嵌入服务配置
本地 GPU 服务 (RX590)
模型: D:\models\qwen3-embedding-0.6b-q8_0.gguf (Q8_0量化, 610MB) 启动命令: 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 端点: http://127.0.0.1:8081/v1/embeddings
外部 API (单串行, 各100-500次/天)
| 平台 | 端点 | API Key | 余量 |
|---|---|---|---|
| Gitee AI | https://ai.gitee.com/v1/embeddings | ZGLVN0SALLTKQDB3E3913ZKUDUNOZ0MF0NV5GCPG | ~97次/天 |
| Pie-Xian | https://api.pie-xian.com/v1/embeddings | sk-Srh2wKelJD3T8XpgCcC95OwYDKkILsT2egWs5tyTyk1MrmFx | ~100次/天 |
| FuturePPO | https://api.futureppo.top/v1/embeddings | sk-EC3TPAMBM8BZ3daVrMZAIAZ2OtGOQcdJT7Ryq1q7UAIyNeic | ~100次/天 |
| Cloudflare | https://qwen3-embedding.2036680567.workers.dev/v1/embeddings | (无key) | 未知 |
嵌入参数 (统一)
- 模型: Qwen3-Embedding-0.6B
- Pooling: last
- Normalize: 2 (L2)
- 输入格式: 纯文本 (用户: 助手: 格式, 无系统提示词)
- 每条数据: 日期 + 文本 (无名字, 无 route, 无平台区分)
五、Worker 脚本
路径: D:\files\qwen-chat\scripts\embed_worker_sqlite_vec.py
启动方式 (必须用 venv)
D:\files\qwen-chat\.venv\Scripts\python.exe D:\files\qwen-chat\scripts\embed_worker_sqlite_vec.py --db D:\files\qwen-chat\workspace\07_rag_embedding\stores\qwen_persona_rag.sqlite --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
关键参数
- --limit N: 处理 N 条后退出 (默认 0 = 无限)
- --batch-size N: 每次请求的文本数
- --claim-any-provider: 允许 claim 任何 provider 的 pending 任务
- --claim-any-model: 允许 claim 任何 model 的 pending 任务
已知问题
- 必须用 venv: 系统 python 没有 sqlite_vec 模块
- 内存泄漏: 长时间运行不释放内存, SSD 磨损风险。建议每 100-200 条重启一次
- RX590 GPU fallback: llama-server 可能没完全跑在显存上, 用的是系统 RAM (进程占 ~900MB)
- 参数名: --batch-size 不是 --n-batch; --limit 不是 --max-jobs
六、其他桌面项目
NewAPI Android APK
- 本地路径: C:\Users\a1\Desktop\oneapi-android-apk (改名中)
- 用途: NewAPI 的 Android 壳, 需要配合 new-api-src 编译的二进制
七、待办 / 未完成
- 嵌入完成: 还剩 ~1,982 条 pending + 219 条 failed, 需要继续跑
- 内存问题: 本地 GPU worker 长时间跑会占满内存, 需要分批重启策略
- RX590 显存利用: 当前 llama-server 可能没完全用到显存 (Q8_0 模型 610MB + KV cache), 进程显示 ~900MB 内存占用
- Agent 搭建: RAG 嵌入库完成后, 需要搭建模拟廖建军说话的 agent (本地 Qwen + RAG 检索)
- 部署: 计划部署到机顶盒, 需要测试性能可行性
- 混合嵌入: 本地 + 外部 API 并发跑任务, 需要解决锁竞争
八、数据格式
嵌入输入格式 (统一)
用户: <文本内容> 助手: <回复内容>
- 无系统提示词
- 无用户名字
- 无 route 信息
- 无平台区分 (微信/QQ 合并)
- 日期作为 chunk 的 date 字段单独存储
格式历史 (已废弃)
- 旧格式: U|QQ|2024-01-01 12:00|name|text (带平台和用户名)
- 中间格式: T|date|text (带 T/U 标记)
- 当前格式: 用户: / 助手: (正统 ChatML)
九、启动顺序 (日常操作)
- 启动本地 llama-server (RX590 独显)
- 等待 Health check 通过
- 启动 embed_worker (venv python)
- 启动外部 API worker (串行, 低并发)
- 监控内存, 每 100-200 条重启 worker
本文档由 Codex 生成, 基于 2026-07-10 会话上下文。