Qdrant é um banco de dados vetorial usado para armazenar, indexar e consultar embeddings. Ele é comum em aplicações de busca semântica (representações matemáticas de significados de textos/imagens), RAG, recomendação, deduplicação e comparação por similaridade.
Em vez de procurar apenas por palavras exatas, o Qdrant permite buscar itens semanticamente parecidos com uma consulta, como documentos, trechos de texto, imagens ou outros dados transformados em vetores.
O arquivo docker-compose.example.yml sobe um container do Qdrant usando a imagem qdrant/qdrant:dev.
Serviços e portas:
6333: API REST, usada para ingestão, consulta e dashboard.6334: API gRPC.
Persistência:
- Os dados ficam no volume Docker
qdrant_storage, montado em/qdrant/storage.
Ambiente:
- Copie
.env.examplepara.env. - Ajuste
QDRANT__SERVICE__API_KEYpara uma chave segura.
Healthcheck:
- O container usa o endpoint
http://localhost:6333/readyzpara indicar quando o Qdrant está pronto para receber tráfego. - A checagem roda a cada 30 segundos, com timeout de 10 segundos e 3 tentativas.
Logs:
- Os logs usam o driver
json-file. - Cada arquivo de log fica limitado a
10m. - São mantidos até
3arquivos de log por container.
Rede:
- O compose usa a rede externa
proxy. Crie essa rede antes de subir o serviço, caso ela ainda não exista:
docker network create proxyPara iniciar:
cp .env.example .env
docker compose -f docker-compose.example.yml up -dPara parar:
docker compose -f docker-compose.example.yml downCom o serviço rodando localmente, acesse:
http://localhost:6333/dashboard
Conectar no Qdrant
qdrant = QdrantClient(
url=os.getenv("LOCAL_QDRANT_URL"),
api_key=os.getenv("QDRANT__SERVICE__API_KEY")
)Listar Collections
collections = qdrant.get_collections()
print(collections)Consultar
results = qdrant.query_points(
collection_name=COLLECTION_NAME, query=query_embedding, limit=3
)