qdrant向量数据库(vector database)在python的应用

qdrant是一个向量数据库,大多数应用在向量嵌入的相似性搜索上。在大量的向量数据时,匹配的效率非常的高。

qdrant服务器端的安装和运行,非常的简单。qdrant的服务器端是基于docker容器运行的,安装服务器端需要系统中先安装docker。

使用以下命令来拉取容器。

docker pull qdrant/qdrant

下载到本地后,执行以下命令运行qdrant服务

docker run -p 6333:6333 qdrant/qdrant

服务器运行成功

在python中使用qdrant,需要先安装qdrant客户端的包

pip install qdrant_client

与服务器端建立连接

from qdrant_client import QdrantClient
client = QdrantClient(host='localhost', port=6333)

插入向量数据

from qdrant_client import QdrantClient
from qdrant_client.models import VectorParams, Distance, PointStruct

client = QdrantClient(host='localhost', port=6333)

# 创建向量集合表
client.recreate_collection(
   collection_name="i
### 如何在本地使用 Python 创建和管理向量数据库 #### 安装必要的软件包 为了能够在本地创建并管理向量数据库,首先需要安装相应的Python库。对于不同的向量数据库实现方式有不同的依赖项。 如果是基于`vectordb`来构建应用,可以通过pip直接安装该库[^2]: ```bash pip install vectordb ``` 而对于Chroma向量数据库,在某些情况下可能更适合通过Conda环境来进行部署,这取决于个人偏好以及现有开发环境配置情况[^3]: ```bash conda install chromadb ``` 还有Qdrant这样的选项也提供了简单的集成方法,仅需执行如下命令即可完成客户端的引入工作[^4]: ```bash pip install qdrant_client ``` #### 初始化向量数据库实例 一旦完成了上述准备工作之后,就可以着手于初始化具体的向量数据库对象了。这里给出一段通用性的代码片段用于展示如何连接到一个运行中的向量数据库服务端口上: 针对`vectordb`的情况: ```python from vectordb import VectorDBClient client = VectorDBClient('localhost', port=8080) db = client.get_or_create_database('my_vector_db') collection = db.get_or_create_collection(name='example_collection') ``` 当涉及到Chroma时则会有所不同,具体操作可能会依据官方文档有所变化;不过通常来说也是围绕着建立连接这一核心步骤展开。 至于Qdrant, 则有专门定义好的接口供调用者快速接入: ```python from qdrant_client import QdrantClient client = QdrantClient(path='./qdrant_storage') # 使用本地路径作为持久化位置 ``` #### 插入与查询数据 成功建立了同目标系统的链接关系以后,下一步就是考虑怎样把实际的数据存放到其中去了。下面分别给出了三种不同类型的向量数据库插入记录的方式示例: - **Vectordb** ```python vectors_to_insert = [ {"id": "vec1", "vector": [0.1, 0.2]}, {"id": "vec2", "vector": [-0.5, -0.7]} ] collection.upsert(vectors=vectors_to_insert) ``` - **Chroma** (假设已经获得了Collection对象) ```python from chromadb.api.types import InsertEmbedding embeddings: List[List[float]] = [[...], [...]] ids: List[str] = ["id_1", "id_2"] collection.add(embeddings=embeddings, metadatas=None, documents=None, ids=ids) ``` - **Qdrant** ```python points_batch = [ { 'id': 1, 'vector': [0.9, 0.1], 'payload': {'color': 'red'} }, ... ] client.upsert(collection_name="sample_collection", wait=True, points=points_batch) ``` 同样地,在获取已存储的内容方面也有各自的特点。比如利用相似度搜索功能找到最接近给定特征向量的结果集等高级特性都可以被充分利用起来优化用户体验。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值