Cohere#

Platform V Vector DB (далее - Vector DB) совместим с API co.embed от Cohere и его официальным Python SDK, который может быть установлен так же, как любой другой пакет:

pip install cohere

Эмбеддинги, возвращаемые API co.embed, могут использоваться непосредственно при вызове клиента Vector DB:

import cohere
import qdrant_client
from qdrant_client.models import Batch

cohere_client = cohere.Client("<< your_api_key >>")
qdrant_client = qdrant_client.QdrantClient()
qdrant_client.upsert(
    collection_name="MyCollection",
    points=Batch(
        ids=[1],
        vectors=cohere_client.embed(
            model="large",
            texts=["The best vector database"],
        ).embeddings,
    ),
)

Если необходимо увидеть проект «под ключ», созданный с использованием API co.embed и Qdrant, ознакомьтесь со статьей «Вопросно-ответная система как сервис с помощью Cohere и Vector DB».

Embed v3#

Embed v3 - новая линейка моделей Cohere, выпущенная в ноябре 2023 года. Новые модели требуют передачи дополнительного параметра в вызов API: input_type. Он определяет тип задачи, для которой необходимо использовать вложения.

  • input_type="search_document" - для документов, предназначенных для хранения в Vector DB.

  • input_type="search_query" - для поисковых запросов, чтобы найти наиболее релевантные документы.

  • input_type="classification" 0 для задач классификации.

  • input_type="clustering" 0 для кластеризации текстов.

При реализации приложений семантического поиска, таких как RAG, следует использовать input_type="search_document" для индексируемых документов и input_type="search_query" для поисковых запросов. Следующий пример показывает, как индексировать документы с моделью Embed v3:

import cohere
import qdrant_client
from qdrant_client.models import Batch

cohere_client = cohere.Client("<< your_api_key >>")
client = qdrant_client.QdrantClient()
client.upsert(
    collection_name="MyCollection",
    points=Batch(
        ids=[1],
        vectors=cohere_client.embed(
            model="embed-english-v3.0",  # New Embed v3 model
            input_type="search_document",  # Input type for documents
            texts=["Qdrant is the a vector database written in Rust"],
        ).embeddings,
    ),
)

После того как документы проиндексированы, можно искать наиболее релевантные документы с помощью модели Embed v3:

client.query_points(
    collection_name="MyCollection",
    query=cohere_client.embed(
        model="embed-english-v3.0",  # New Embed v3 model
        input_type="search_query",  # Input type for search queries
        texts=["The best vector database"],
    ).embeddings[0],
)

Согласно документации Cohere, все модели версии v3 могут использовать скалярное произведение, косинусную меру сходства и евклидово расстояние в качестве метрики подобия, поскольку все три метрики дают идентичные ранжирования.