Logo

Qdrant Python客户端: 功能强大的向量搜索引擎SDK

Qdrant Python客户端:功能强大的向量搜索引擎SDK

Qdrant Python客户端是专为Qdrant向量搜索引擎设计的官方SDK,提供了完整的API支持和丰富的功能特性,帮助开发者快速构建和管理高性能的向量搜索应用。

主要特性

  • 完整的API类型定义,支持同步和异步请求
  • 本地模式无需运行服务器即可使用
  • 支持REST和gRPC协议
  • 依赖少,易于集成
  • 广泛的测试覆盖

安装

通过pip安装:

pip install qdrant-client

快速入门

  1. 连接到Qdrant服务器:
from qdrant_client import QdrantClient

client = QdrantClient(host="localhost", port=6333)
  1. 创建集合:
from qdrant_client.models import Distance, VectorParams

client.create_collection(
    collection_name="my_collection",
    vectors_config=VectorParams(size=100, distance=Distance.COSINE),
)
  1. 插入向量:
import numpy as np
from qdrant_client.models import PointStruct

vectors = np.random.rand(100, 100)
client.upsert(
    collection_name="my_collection",
    points=[
        PointStruct(
            id=idx,
            vector=vector.tolist(),
            payload={"color": "red", "rand_number": idx % 10}
        )
        for idx, vector in enumerate(vectors)
    ]
)
  1. 搜索相似向量:
query_vector = np.random.rand(100)
hits = client.search(
    collection_name="my_collection",
    query_vector=query_vector,
    limit=5  # 返回5个最相似的点
)
  1. 带过滤条件的搜索:
from qdrant_client.models import Filter, FieldCondition, Range

hits = client.search(
    collection_name="my_collection",
    query_vector=query_vector,
    query_filter=Filter(
        must=[
            FieldCondition(
                key='rand_number',
                range=Range(gte=3)
            )
        ]
    ),
    limit=5
)

本地模式

Qdrant Python客户端支持本地模式,无需运行Qdrant服务器即可使用相同的API:

client = QdrantClient(":memory:")  # 内存模式
# 或
client = QdrantClient(path="path/to/db")  # 持久化到磁盘

本地模式适用于开发、原型设计和测试场景,可以在Colab或Jupyter Notebook中直接使用,无需额外依赖。当需要扩展时,只需切换到服务器模式即可。

FastEmbed集成

Qdrant客户端集成了FastEmbed库,可以直接在CPU上高效创建向量嵌入:

pip install qdrant-client[fastembed]

使用FastEmbed简化API:

from qdrant_client import QdrantClient

client = QdrantClient(":memory:")

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

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

search_result = client.query(
    collection_name="demo_collection",
    query_text="This is a query document"
)
print(search_result)

异步客户端

从1.6.1版本开始,所有Python客户端方法都有异步版本:

from qdrant_client import AsyncQdrantClient, models
import asyncio

async def main():
    client = AsyncQdrantClient(url="http://localhost:6333")
    
    await client.create_collection(
        collection_name="my_collection",
        vectors_config=models.VectorParams(size=10, distance=models.Distance.COSINE),
    )
    
    # 异步上传点
    await client.upsert(
        collection_name="my_collection",
        points=[
            models.PointStruct(
                id=i,
                vector=np.random.rand(10).tolist(),
            )
            for i in range(100)
        ],
    )
    
    # 异步搜索
    res = await client.search(
        collection_name="my_collection",
        query_vector=np.random.rand(10).tolist(),
        limit=10,
    )
    
    print(res)

asyncio.run(main())

异步客户端同时支持gRPC和REST API。

连接到Qdrant Cloud

Qdrant提供了云服务,可以快速获得一个1GB RAM的免费账户:

from qdrant_client import QdrantClient

qdrant_client = QdrantClient(
    url="https://xxxxxx-xxxxx-xxxxx-xxxx-xxxxxxxxx.us-east.aws.cloud.qdrant.io:6333",
    api_key="<your-api-key>",
)

总结

Qdrant Python客户端提供了丰富的功能和灵活的使用方式,包括完整的API支持、本地模式、FastEmbed集成、异步操作等,可以满足各种向量搜索应用场景的需求。无论是快速原型开发还是大规模生产部署,都能提供高效便捷的开发体验。

更多详细信息和高级用法,请参阅官方文档。Qdrant活跃的社区也是获取帮助和分享经验的好地方。希望这个强大的工具能够帮助您构建出色的向量搜索应用!

Qdrant Python Client

相关项目

Project Cover
qdrant
Qdrant是一个面向AI应用的向量相似性搜索引擎和数据库,提供了一个便捷的API用于存储、搜索和管理数据点。它支持扩展筛选,可用于各种基于神经网络或语义匹配的应用,如分面搜索等。Qdrant支持完全托管的云服务,包括免费层。具备高性能和可扩展性,适用于各种规模的部署。
Project Cover
fastembed
FastEmbed,一个为速度和效率优化的Python库,支持多语言且易于扩展的嵌入式模型生成工具,适用于服务器和GPU环境。简化高效编码,无需依赖庞大的数据下载,适用于多种数据类型和复杂任务,是开发精确嵌入系统的理想工具。
Project Cover
CASALIOY
CASALIOY项目是一款高效的离线LLM工具套件,支持最新的GGUF标准、LangChain和qdrant集成。用户可以通过Docker或源码轻松部署,并通过命令行或GUI与本地文档库交互。详细的安装指南和示例配置文件方便用户快速上手,支持多种数据格式的处理和数据的本地存储,确保数据安全。本项目附有更新支持。
Project Cover
drqa
该项目构建了一个结合Langchain与大型语言模型(如OpenAI的GPT-3)的问答系统,旨在准确回答问题。系统前端采用React/Typescript开发,后端使用FastAPI框架,实现了PDF文档到文本的转换和嵌入处理,同时支持多种文档类型并优化了搜索与检索速度。项目有效减少了API调用成本,并规划了多项未来改进,如流处理、缓存机制、UI优化和长对话的记忆与总结功能。
Project Cover
Feishu-Vector-Knowledge-Management
Feishu Vector Knowledge Management结合Feishu-OpenAI与私有知识库,具备知识库问答、CSV数据导入创建、网页与文件数据管理及记录查询功能。利用Embeddings和Qdrant技术,降低token成本,提高知识管理查询效率。通过docker-compose轻松部署,适用于企业日常知识管理需求。
Project Cover
qdrant-client
为Qdrant向量搜索引擎提供同步和异步API,支持本地模式、REST和gRPC协议,以及FastEmbed简化接口。依赖少,适用于开发、测试和生产环境。
Project Cover
qdrant-js
qdrant-js是Qdrant向量搜索引擎的JavaScript/TypeScript开发工具包。它包含qdrant-js、js-client-rest和js-client-grpc三个主要模块,分别提供核心SDK、REST客户端和gRPC客户端功能。该工具包支持Node.js、Deno、浏览器和Cloudflare Workers等多种环境,并提供简洁的API,方便开发者与Qdrant引擎进行交互和集成。
Project Cover
Qdrant
Qdrant是一款开源向量数据库和相似度搜索引擎,专注于高维向量处理和大规模AI应用。基于Rust开发,Qdrant提供高性能和可靠性,支持云原生扩展和高可用性。它易于部署使用,具有成本效益的存储选项。Qdrant适用于高级搜索、推荐系统、检索增强生成(RAG)、数据分析和异常检测等场景。作为新一代AI应用的基础,Qdrant能处理数十亿向量,满足企业级需求。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号