grepai-storage-qdrant by yoanbernabeu/grepai-skills
npx skills add https://github.com/yoanbernabeu/grepai-skills --skill grepai-storage-qdrant此技能涵盖使用 Qdrant 作为 GrepAI 的存储后端,提供高性能向量搜索。
Qdrant 是一个专为向量设计的数据库,提供:
| 优势 | 描述 |
|---|---|
| ⚡ 性能 | 最快的向量搜索 |
| 📏 可扩展性 | 处理数百万向量 |
| 🔍 高级功能 | 过滤、负载、分片 |
| 🐳 易于部署 | 支持 Docker |
| ☁️ 云选项 | 提供 Qdrant Cloud |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# 使用持久化存储运行 Qdrant
docker run -d \
--name grepai-qdrant \
-p 6333:6333 \
-p 6334:6334 \
-v qdrant_storage:/qdrant/storage \
qdrant/qdrant
端口:
6333: REST API6334: gRPC API(由 GrepAI 使用)# docker-compose.yml
version: '3.8'
services:
qdrant:
image: qdrant/qdrant
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant_storage:/qdrant/storage
environment:
- QDRANT__SERVICE__GRPC_PORT=6334
volumes:
qdrant_storage:
docker-compose up -d
# .grepai/config.yaml
store:
backend: qdrant
qdrant:
endpoint: localhost
port: 6334
store:
backend: qdrant
qdrant:
endpoint: qdrant.company.com
port: 6334
use_tls: true
store:
backend: qdrant
qdrant:
endpoint: your-cluster.aws.cloud.qdrant.io
port: 6334
use_tls: true
api_key: ${QDRANT_API_KEY}
设置环境变量:
export QDRANT_API_KEY="your-api-key"
| 选项 | 默认值 | 描述 |
|---|---|---|
endpoint | localhost | Qdrant 服务器主机名 |
port | 6334 | gRPC 端口 |
use_tls | false | 启用 TLS 加密 |
api_key | 无 | 认证密钥 |
# REST API 健康检查
curl http://localhost:6333/health
# 预期:{"status":"ok"}
# 列出集合
curl http://localhost:6333/collections
# 获取集合信息
curl http://localhost:6333/collections/grepai
grepai status
# 应显示 Qdrant 后端信息
通过 http://localhost:6333/dashboard 访问 Web 仪表板:
| 代码库大小 | 向量数 | 搜索时间 |
|---|---|---|
| 小型(1K 文件) | 5,000 | <10ms |
| 中型(10K 文件) | 50,000 | <20ms |
| 大型(100K 文件) | 500,000 | <50ms |
Qdrant 将向量加载到内存中以实现快速搜索:
| 向量数 | 维度 | 内存 |
|---|---|---|
| 10,000 | 768 | ~60 MB |
| 100,000 | 768 | ~600 MB |
| 1,000,000 | 768 | ~6 GB |
创建 config/production.yaml:
storage:
storage_path: /qdrant/storage
service:
grpc_port: 6334
http_port: 6333
max_request_size_mb: 32
optimizers:
memmap_threshold_kb: 200000
indexing_threshold_kb: 50000
在 Docker 中挂载:
docker run -d \
-v ./config:/qdrant/config \
-v qdrant_storage:/qdrant/storage \
qdrant/qdrant
GrepAI 创建一个名为 grepai 的集合,具有以下特性:
对于非常大的部署,Qdrant 支持分布式模式:
# qdrant 配置
cluster:
enabled: true
p2p:
port: 6335
# 通过 REST API 创建快照
curl -X POST 'http://localhost:6333/collections/grepai/snapshots'
# 从快照恢复
curl -X PUT 'http://localhost:6333/collections/grepai/snapshots/recover' \
-H 'Content-Type: application/json' \
-d '{"location": "/path/to/snapshot"}'
docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant
store:
backend: qdrant
qdrant:
endpoint: localhost
port: 6334
3. 删除旧索引:
rm .grepai/index.gob
4. 重新索引:
grepai watch
❌ 问题: 连接被拒绝 ✅ 解决方案: 确保 Qdrant 正在运行:
docker ps | grep qdrant
docker start grepai-qdrant
❌ 问题: gRPC 连接失败 ✅ 解决方案: 检查端口 6334 是否已暴露:
docker run -p 6334:6334 ...
❌ 问题: 认证失败 ✅ 解决方案: 检查 API 密钥:
echo $QDRANT_API_KEY
❌ 问题: 内存不足 ✅ 解决方案:
❌ 问题: 初始索引速度慢 ✅ 解决方案: 这是正常的;Qdrant 在后台进行优化。索引完成后搜索将很快。
| 特性 | Qdrant | PostgreSQL |
|---|---|---|
| 搜索速度 | ⚡⚡⚡ | ⚡⚡ |
| 设置复杂度 | 简单(Docker) | 中等 |
| SQL 查询 | ❌ | ✅ |
| 可扩展性 | 优秀 | 良好 |
| 内存效率 | 优秀 | 良好 |
| 团队熟悉度 | 较低 | 较高 |
推荐: 对于大型代码库或追求最大性能,使用 Qdrant。如果需要 SQL 集成或团队更熟悉 PostgreSQL,则使用 PostgreSQL。
/qdrant/storageuse_tls: trueQdrant 存储状态:
✅ Qdrant Storage Configured
Backend: Qdrant
Endpoint: localhost:6334
TLS: disabled
Collection: grepai
Contents:
- Files: 5,000
- Vectors: 25,000
- Dimensions: 768
Performance:
- Connection: OK
- Indexed: Yes
- Search latency: ~15ms
每周安装量
202
仓库
GitHub 星标数
15
首次出现
2026年1月28日
安全审计
安装于
opencode164
codex158
gemini-cli146
github-copilot144
kimi-cli137
amp134
This skill covers using Qdrant as the storage backend for GrepAI, offering high-performance vector search.
Qdrant is a purpose-built vector database offering:
| Benefit | Description |
|---|---|
| ⚡ Performance | Fastest vector search |
| 📏 Scalability | Handles millions of vectors |
| 🔍 Advanced | Filtering, payloads, sharding |
| 🐳 Easy deploy | Docker-ready |
| ☁️ Cloud option | Qdrant Cloud available |
# Run Qdrant with persistent storage
docker run -d \
--name grepai-qdrant \
-p 6333:6333 \
-p 6334:6334 \
-v qdrant_storage:/qdrant/storage \
qdrant/qdrant
Ports:
6333: REST API6334: gRPC API (used by GrepAI)# docker-compose.yml
version: '3.8'
services:
qdrant:
image: qdrant/qdrant
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant_storage:/qdrant/storage
environment:
- QDRANT__SERVICE__GRPC_PORT=6334
volumes:
qdrant_storage:
docker-compose up -d
# .grepai/config.yaml
store:
backend: qdrant
qdrant:
endpoint: localhost
port: 6334
store:
backend: qdrant
qdrant:
endpoint: qdrant.company.com
port: 6334
use_tls: true
store:
backend: qdrant
qdrant:
endpoint: your-cluster.aws.cloud.qdrant.io
port: 6334
use_tls: true
api_key: ${QDRANT_API_KEY}
Set the environment variable:
export QDRANT_API_KEY="your-api-key"
| Option | Default | Description |
|---|---|---|
endpoint | localhost | Qdrant server hostname |
port | 6334 | gRPC port |
use_tls | false | Enable TLS encryption |
api_key |
# REST API health check
curl http://localhost:6333/health
# Expected: {"status":"ok"}
# List collections
curl http://localhost:6333/collections
# Get collection info
curl http://localhost:6333/collections/grepai
grepai status
# Should show Qdrant backend info
Access the web dashboard at http://localhost:6333/dashboard:
| Codebase Size | Vectors | Search Time |
|---|---|---|
| Small (1K files) | 5,000 | <10ms |
| Medium (10K files) | 50,000 | <20ms |
| Large (100K files) | 500,000 | <50ms |
Qdrant loads vectors into memory for fast search:
| Vectors | Dimensions | Memory |
|---|---|---|
| 10,000 | 768 | ~60 MB |
| 100,000 | 768 | ~600 MB |
| 1,000,000 | 768 | ~6 GB |
Create config/production.yaml:
storage:
storage_path: /qdrant/storage
service:
grpc_port: 6334
http_port: 6333
max_request_size_mb: 32
optimizers:
memmap_threshold_kb: 200000
indexing_threshold_kb: 50000
Mount in Docker:
docker run -d \
-v ./config:/qdrant/config \
-v qdrant_storage:/qdrant/storage \
qdrant/qdrant
GrepAI creates a collection named grepai with:
For very large deployments, Qdrant supports distributed mode:
# qdrant config
cluster:
enabled: true
p2p:
port: 6335
# Create snapshot via REST API
curl -X POST 'http://localhost:6333/collections/grepai/snapshots'
# Restore from snapshot
curl -X PUT 'http://localhost:6333/collections/grepai/snapshots/recover' \
-H 'Content-Type: application/json' \
-d '{"location": "/path/to/snapshot"}'
docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant
store:
backend: qdrant
qdrant:
endpoint: localhost
port: 6334
3. Delete old index:
rm .grepai/index.gob
4. Re-index:
grepai watch
❌ Problem: Connection refused ✅ Solution: Ensure Qdrant is running:
docker ps | grep qdrant
docker start grepai-qdrant
❌ Problem: gRPC connection failed ✅ Solution: Check port 6334 is exposed:
docker run -p 6334:6334 ...
❌ Problem: Authentication failed ✅ Solution: Check API key:
echo $QDRANT_API_KEY
❌ Problem: Out of memory ✅ Solutions:
❌ Problem: Slow initial indexing ✅ Solution: This is normal; Qdrant optimizes in background. Searches will be fast after indexing completes.
| Feature | Qdrant | PostgreSQL |
|---|---|---|
| Search speed | ⚡⚡⚡ | ⚡⚡ |
| Setup complexity | Easy (Docker) | Medium |
| SQL queries | ❌ | ✅ |
| Scalability | Excellent | Good |
| Memory efficiency | Excellent | Good |
| Team familiarity | Lower | Higher |
Recommendation: Use Qdrant for large codebases or maximum performance. Use PostgreSQL if you need SQL integration or team is familiar with it.
/qdrant/storageuse_tls: trueQdrant storage status:
✅ Qdrant Storage Configured
Backend: Qdrant
Endpoint: localhost:6334
TLS: disabled
Collection: grepai
Contents:
- Files: 5,000
- Vectors: 25,000
- Dimensions: 768
Performance:
- Connection: OK
- Indexed: Yes
- Search latency: ~15ms
Weekly Installs
202
Repository
GitHub Stars
15
First Seen
Jan 28, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode164
codex158
gemini-cli146
github-copilot144
kimi-cli137
amp134
| none |
| Authentication key |