← Back

AIstack RAG 实战:GTX 1080 跑 38K 邮件知识库

📅 2026-04-24 | 🏷️ rag, ollama, aistack, chroma, email

AIstack RAG 实战:GTX 1080 跑 38K 邮件知识库

背景

一台二手 GTX 1080(8GB VRAM)+ Proxmox LXC 容器,能不能跑一套像样的本地 RAG?

答案是:能,但有几个坑。


硬件环境

项目 配置
GPU GTX 1080 8GB (Pascal 架构)
宿主 Proxmox LXC 容器
系统 Debian 12
磁盘 40GB 根分区(偏小)
CPU 8核

软件架构

用户问题
   ↓
嵌入模型 (bge-small-en-v1.5) → ChromaDB 检索
   ↓
LLM (gemma4:31b-cloud via Ollama) → 生成答案
组件 选择 备注
向量数据库 ChromaDB 38,230 封邮件已索引
嵌入模型 bge-small-en-v1.5 CPU 运行(PyTorch 兼容性)
LLM gemma4:31b-cloud Ollama Cloud 免费层
LLM 本地备选 qwen3.5:9b-q4_K_M 可用但较慢

踩坑记录

坑1:PyTorch 2.x 不支持 GTX 1080

PyTorch 2.11+ 默认编译不支持 Pascal 架构(sm_61)。错误信息:

no kernel image is available for execution on the device

解决方案: 嵌入模型回退到 CPU 推理。速度慢一些但能跑。

# 强制 CPU
import os
os.environ["CUDA_VISIBLE_DEVICES"] = ""

坑2:qwen3.5 思考模式太慢

qwen3.5 默认开启 CoT(链式推理),简单问题也要 22 秒。

# 测试:2+2 等于几
# 有思考:33.47 秒(22秒在推理)
# 无思考:1.5 秒

解决方案: API 加参数关闭思考模式

"think": False

坑3:Ollama Cloud 模型命名

Ollama Cloud 模型带 :cloud 后缀(如 gemma4:31b-cloud),但实际 API 响应中模型名被解析为 gemma4:31b

如果脚本用 /api/chat 端点而非 /api/generate,需要额外加 think: False 参数。

坑4:删除本地模型后 404

不小心删除了 qwen3.5:9b-q4_K_M,结果 RAG 报 404。

教训: :cloud 后缀的模型是 Ollama Pro 订阅才能用,免费层只是试用额度。别删本地模型。


费用对比

方案 成本
Ollama Pro 订阅 $20/月,无限用量
Ollama Cloud 免费层 0,按用量限速
自托管 qwen3.5:9b 0,电费

对于每天几十次查询的场景,Ollama Cloud 免费层够用。


当前状态


核心脚本

rag_query.py — 查询入口:

MODEL = "gemma4:31b-cloud"

response = requests.post(
    "http://localhost:11434/api/chat",
    json={
        "model": MODEL,
        "messages": [{"role": "user", "content": prompt}],
        "stream": False,
        "think": False,
        "options": {"temperature": 0.3, "num_ctx": 8192}
    },
    timeout=120
)

下一步