← 返回运维手册

Qdrant 向量库运维手册

适用 AIKE 智能客服 · kbimport 知识库插件。集合命名规则:kb_business_{商户ID}(一商户一集合)。本文为官网公开副本,无需登录后台即可查阅。

1. 架构概览

MySQL (ai_knowledge FAQ)
    ↓ Embedding API(百炼 text-embedding-v4)
Qdrant 集合 kb_business_{商户ID}
    ↓ 语义检索
KnowledgeRetriever → AI 直答 / LLM 上下文
组件作用默认地址
Qdrant存向量、余弦相似度搜索http://127.0.0.1:6333
Embedding API文本 → 向量(按量计费)百炼 compatible-mode
MySQLFAQ 原文 + ai_vector_chunk 索引元数据同主库
Docker 容器wolive-qdrant仅监听本机,不暴露公网

安全:Qdrant 必须绑定 127.0.0.1,禁止 0.0.0.0:6333 对外开放。

2. 一键安装(Linux / 宝塔)

SSH 登录服务器,在项目根目录执行:

cd /www/wwwroot/你的站点目录
bash install_qdrant.sh

或:

bash scripts/qdrant/install.sh

脚本会:拉取镜像 qdrant/qdrant:latest、创建容器 wolive-qdrant、数据卷 wolive_qdrant_data、健康检查 /readyz

若 iptables 报错,执行 bash scripts/qdrant/fix_docker_iptables.sh 后重试;脚本会自动尝试 host 网络模式。

Windows 本机测试

install_qdrant.bat

需已安装 Docker Desktop。

3. 日常运维命令

操作命令
查看状态bash scripts/qdrant/status.sh
健康检查curl -s http://127.0.0.1:6333/readyz
查看日志docker logs wolive-qdrant --tail 100
重启容器docker restart wolive-qdrant
停止docker stop wolive-qdrant
启动docker start wolive-qdrant
列出集合curl -s http://127.0.0.1:6333/collections
查看本商户集合curl -s http://127.0.0.1:6333/collections/kb_business_1

后台也可在 向量检索配置 → 检测连接 查看 Embedding / Qdrant / MySQL 索引统计。

4. 备份与恢复

4.1 备份 Qdrant 数据卷(推荐)

# 停止写入(可选,热备可跳过)
docker stop wolive-qdrant

# 导出卷到 tar
docker run --rm \
  -v wolive_qdrant_data:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/qdrant_backup_$(date +%Y%m%d).tar.gz -C /data .

docker start wolive-qdrant

4.2 恢复

docker stop wolive-qdrant
docker run --rm \
  -v wolive_qdrant_data:/data \
  -v $(pwd):/backup \
  alpine sh -c "rm -rf /data/* && tar xzf /backup/qdrant_backup_YYYYMMDD.tar.gz -C /data"
docker start wolive-qdrant

注意:MySQL 中的 ai_knowledgeai_vector_chunk 需与 Qdrant 一致。换机恢复后建议在后台执行 全量重建向量 校验。

4.3 MySQL 相关表(建议一并备份)

5. 后台向量运维

功能说明
全量重建向量仅 FAQ(ai_knowledge),先清空本商户 Qdrant 再写入;换模型后必做
检测连接Embedding API、Qdrant 健康、集合点数、MySQL 块数
导入 JSON「内容变化则更新」会增量同步向量;手动改 FAQ 也会自动同步
查询向量缓存相同访客问题 TTL 内复用 Embedding,省 API 费用

集合命名规则:kb_business_{business_id},一商户一集合,payload 含 business_id 过滤。

6. 卸载 kbimport 插件时的行为

保留:以下 MySQL 表与数据不会删除(重装插件后仍可用):

默认清理(可在插件 config 关闭):

清理报告写入:runtime/log/kbimport_uninstall.log

插件 config 项:uninstall_purge_qdrantuninstall_purge_runtime(0=保留,1=清理)。

Qdrant Docker 容器与数据卷不会随插件卸载删除;需手动执行 bash scripts/qdrant/uninstall.sh

7. 完全卸载 Qdrant 服务

bash scripts/qdrant/uninstall.sh

仅删除容器 wolive-qdrant保留数据卷 wolive_qdrant_data

彻底删除向量数据:

docker volume rm wolive_qdrant_data

不可逆:执行前请确认已备份。

8. 故障排查

现象可能原因处理
Embedding 404 百炼地址填成 /api/v1 改为 …/compatible-mode/v1,保存后重建
Qdrant collection 404 集合未创建 后台「全量重建向量」或导入 FAQ
检测连接 Qdrant 失败 容器未启动 / 端口不通 docker start wolive-qdrantstatus.sh
向量直答率低 阈值过高 / FAQ 未重建 调低「向量直答阈值」、执行全量重建
points 多但检索慢 HNSW 索引未优化 关注 Qdrant 版本;数据量大时可调优配置
卸载后 AI 仍走向量 插件已卸但 Qdrant 集合仍在 手动删集合或重装后关闭向量

向量错误日志:runtime/log/kbimport_vector.log

9. 常用 REST API 示例

# 集群就绪
curl -s http://127.0.0.1:6333/readyz

# 集合详情
curl -s http://127.0.0.1:6333/collections/kb_business_1

# 删除单个集合(慎用)
curl -X DELETE http://127.0.0.1:6333/collections/kb_business_1

10. 相关脚本路径

文件用途
install_qdrant.sh项目根目录安装入口
scripts/qdrant/install.sh安装逻辑
scripts/qdrant/status.sh状态检查
scripts/qdrant/uninstall.sh卸载容器
scripts/qdrant/fix_docker_iptables.sh修复 Docker 网络
scripts/qdrant/docker-compose.ymlCompose 可选部署
scripts/kbimport/ensure_tables.sql手动建表参考