目录

Qdrant

用于下一代人工智能应用的向量搜索引擎

Qdrant(读作:quadrant)是一个向量相似性搜索引擎和向量数据库。它提供了一个生产就绪的服务,具有方便的 API 来存储、搜索和管理点 - 具有附加有效载荷的向量。Qdrant 专为扩展的过滤支持量身定制。它对所有类型的神经网络或基于语义的匹配、分面搜索和其他应用非常有用。

解决方案

运行

Qdrant 镜像

docker pull qdrant/qdrant

启动 Qdrant 服务

docker run -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    qdrant/qdrant

Qdrant 现在可访问:

安装 Qdrant Client

pip install qdrant-client

代码示例

from typing import List
from qdrant_client import QdrantClient


client = QdrantClient(":memory:")           # For testing, CI/CD, small experiments
# client = QdrantClient(path="path/to/db")  # Persists changes to disk, fast prototyping
# client = QdrantClient(url="http://localhost:6333")  # For production

docs = ["Qdrant has Langchain integrations", 
        "Qdrant also has Llama Index integrations"]
metadata = [
    {"source": "Langchain-docs"},
    {"source": "Llama-index-docs"},
]
ids = [42, 2]

# client.set_model("BAAI/bge-small-zh-v1.5")
# List of supported models: https://qdrant.github.io/fastembed/examples/Supported_Models

client.add(
    collection_name="demo_collection",
    documents=docs,
    metadata=metadata,
    ids=ids
)

search_result = client.query(
    collection_name="demo_collection",
    query_text="Qdrant & LlamaIndex"
)

print(search_result)
[QueryResponse(id=2, embedding=None, sparse_embedding=None, metadata={'document': 'Qdrant also has Llama Index integrations', 'source': 'Llama-index-docs'}, document='Qdrant also has Llama Index integrations', score=0.9519073317167758), QueryResponse(id=42, embedding=None, sparse_embedding=None, metadata={'document': 'Qdrant has Langchain integrations', 'source': 'Langchain-docs'}, document='Qdrant has Langchain integrations', score=0.8974003093719342)]