OpenAI

Qdrant 支持使用 OpenAI 嵌入

有一个官方的 OpenAI Python 包,它简化了获取它们的过程,并且可以使用 pip 安装

pip install openai

设置 OpenAI 和 Qdrant 客户端

import openai
import qdrant_client

openai_client = openai.Client(
    api_key="<YOUR_API_KEY>"
)

client = qdrant_client.QdrantClient(":memory:")

texts = [
    "Qdrant is the best vector search engine!",
    "Loved by Enterprises and everyone building for low latency, high performance, and scale.",
]

以下示例展示了如何使用 text-embedding-3-small 模型嵌入文档,该模型生成大小为 1536 的句子嵌入。您可以在 此处 找到所有支持模型的列表。

嵌入文档

embedding_model = "text-embedding-3-small"

result = openai_client.embeddings.create(input=texts, model=embedding_model)

将模型输出转换为 Qdrant 点

from qdrant_client.models import PointStruct

points = [
    PointStruct(
        id=idx,
        vector=data.embedding,
        payload={"text": text},
    )
    for idx, (data, text) in enumerate(zip(result.data, texts))
]

创建一个集合用于插入文档

from qdrant_client.models import VectorParams, Distance

collection_name = "example_collection"

client.create_collection(
    collection_name,
    vectors_config=VectorParams(
        size=1536,
        distance=Distance.COSINE,
    ),
)
client.upsert(collection_name, points)

使用 Qdrant 搜索文档

文档索引完成后,您可以使用相同的模型搜索最相关的文档。

client.search(
    collection_name=collection_name,
    query_vector=openai_client.embeddings.create(
        input=["What is the best to use for vector search scaling?"],
        model=embedding_model,
    )
    .data[0]
    .embedding,
)

结合使用 OpenAI 嵌入模型与 Qdrant 的二进制量化

您可以结合使用 OpenAI 嵌入模型与 二进制量化——这是一种可以将嵌入大小减少 32 倍,同时不过多损失搜索结果质量的技术。

方法维度测试数据集召回率过采样
OpenAI text-embedding-3-large3072DBpedia 1M0.99663x
OpenAI text-embedding-3-small1536DBpedia 100K0.98473x
OpenAI text-embedding-3-large1536DBpedia 1M0.98263x
OpenAI text-embedding-ada-0021536DbPedia 1M0.984x
此页面是否有用?

感谢您的反馈! 🙏

听到这个消息我们感到很抱歉。😔 您可以在 GitHub 上编辑此页面,或创建一个 GitHub issue。