使用FastEmbed与Qdrant进行向量搜索
安装 Qdrant 客户端
pip install qdrant-client
安装 FastEmbed
安装FastEmbed将让您快速将数据转换为向量,以便Qdrant可以对其进行搜索。
pip install fastembed
初始化客户端
Qdrant 客户端有一个简单的内存模式,可以让你在本地尝试语义搜索。
from qdrant_client import QdrantClient
client = QdrantClient(":memory:") # Qdrant is running from RAM.
添加数据
现在你可以添加两个示例文档,它们相关的元数据,以及每个文档的id点。
docs = ["Qdrant has a LangChain integration for chatbots.", "Qdrant has a LlamaIndex integration for agents."]
metadata = [
{"source": "langchain-docs"},
{"source": "llamaindex-docs"},
]
ids = [42, 2]
加载数据到集合
创建一个测试集合并将您的两个文档插入其中。
client.add(
collection_name="test_collection",
documents=docs,
metadata=metadata,
ids=ids
)
运行向量搜索
在这里,您将提出一个虚拟问题,以便检索语义相关的结果。
search_result = client.query(
collection_name="test_collection",
query_text="Which integration is best for agents?"
)
print(search_result)
语义搜索引擎将按相关性顺序检索最相似的结果。在这种情况下,关于LlamaIndex的第二条陈述更为相关。
[QueryResponse(id=2, embedding=None, sparse_embedding=None,
metadata={'document': 'Qdrant has a LlamaIndex integration for agents',
'source': 'llamaindex-docs'}, document='Qdrant has a LlamaIndex integration for agents.',
score=0.8749180370667156),
QueryResponse(id=42, embedding=None, sparse_embedding=None,
metadata={'document': 'Qdrant has a LangChain integration for chatbots.',
'source': 'langchain-docs'}, document='Qdrant has a LangChain integration for chatbots.',
score=0.8351846822959111)]
