下面是《从零开始搭建 Qdrant Web UI 可视化管理工具(Windows)》完整步骤中涉及的关键代码与命令行操作,以便你直接复制使用,适合写教程或脚本化部署。


🧱 第一步:安装并运行 Qdrant(Docker)

# 拉取 Qdrant 最新版本镜像
docker pull qdrant/qdrant

# 启动 Qdrant 服务,映射本地端口并挂载持久化数据卷
docker run -d \
  --name qdrant \
  -p 6333:6333 \
  -v qdrant_data:/qdrant/storage \
  qdrant/qdrant

📌 Qdrant 默认监听 6333 端口,运行成功后可访问:http://localhost:6333


📦 第二步:克隆 Qdrant Web UI 项目(基于社区版本)

# 克隆项目
git clone https://github.com/0xflotus/qdrant-web-ui.git

# 进入项目目录
cd qdrant-web-ui

🧪 第三步:安装依赖并运行(使用 Node.js)

确保已安装 Node.js(建议 v18.x 或以上)

# 安装依赖
npm install

# 启动开发服务器
npm run dev

默认运行在 http://localhost:3000


🔗 第四步:连接 Qdrant 后端 API

在 Web UI 中填写如下连接信息:

Qdrant API 地址: http://localhost:6333

若需要设置 Token 或 HTTPS 地址,可在 .env 文件中进行修改(部分版本支持)


🧪 第五步:测试向量集合(可选 REST 请求)

你可以用 curl 或 Postman 创建一个向量集合并插入数据:

创建集合:

curl -X PUT http://localhost:6333/collections/my_collection \
  -H 'Content-Type: application/json' \
  -d '{
    "vectors": {
      "size": 4,
      "distance": "Cosine"
    }
  }'

插入向量:

curl -X PUT http://localhost:6333/collections/my_collection/points?wait=true \
  -H "Content-Type: application/json" \
  -d '{
    "points": [
      {
        "id": 1,
        "vector": [0.1, 0.2, 0.3, 0.4],
        "payload": { "doc": "Hello world" }
      }
    ]
  }'

查询向量:

curl -X POST http://localhost:6333/collections/my_collection/points/search \
  -H "Content-Type: application/json" \
  -d '{
    "vector": [0.1, 0.2, 0.3, 0.4],
    "top": 1
  }'

⚙️ 可选:通过 Python 使用 Qdrant 客户端测试连接

from qdrant_client import QdrantClient
client = QdrantClient("http://localhost:6333")

# 创建集合
client.recreate_collection(
    collection_name="demo",
    vectors_config={"size": 4, "distance": "Cosine"}
)

# 插入向量
client.upsert(
    collection_name="demo",
    points=[{
        "id": 1,
        "vector": [0.1, 0.2, 0.3, 0.4],
        "payload": {"category": "text"}
    }]
)

如果你希望将这些命令写成 .bat 批处理脚本、PowerShell 脚本、或 Docker Compose 文件,我也可以帮你生成。

是否还需要添加:

  • Web UI 构建为静态网页部署方式(npm run build
  • 将 Qdrant 和 Web UI 放入同一个 Docker Compose 环境?
  • 加入 FastAPI 或 LangChain 示例调用?

欢迎继续补充你的需求!