Cohere
Модели встраивания Cohere используются для создания текстовых вкраплений, которые представляют собой списки чисел с плавающей точкой, отражающих семантическую информацию о тексте. Эти вкрапления можно использовать для таких задач, как классификация текста и семантический поиск.
Milvus интегрируется с моделями вкраплений Cohere с помощью класса CohereEmbeddingFunction
. Этот класс обрабатывает вычисления вкраплений и возвращает их в формате, совместимом с Milvus для индексирования и поиска.
Чтобы воспользоваться этой функцией, установите необходимые зависимости:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Затем инстанцируйте класс CohereEmbeddingFunction
:
from pymilvus.model.dense import CohereEmbeddingFunction
cohere_ef = CohereEmbeddingFunction(
model_name="embed-english-light-v3.0",
api_key="YOUR_COHERE_API_KEY",
input_type="search_document",
embedding_types=["float"]
)
Параметры:
model_name
(строка)Имя модели встраивания Cohere, которую следует использовать для кодирования. Вы можете указать любое из доступных имен моделей встраивания Cohere, например
embed-english-v3.0
,embed-multilingual-v3.0
, и т. д. Если оставить этот параметр неуказанным, будет использоватьсяembed-english-light-v3.0
. Список доступных моделей см. в разделе Embed.api_key
(string)Ключ API для доступа к API Cohere.
input_type
(строка)Тип входных данных, передаваемых модели. Требуется для встраивания моделей v3 и выше.
"search_document"
: Используется для вкраплений, хранящихся в векторной базе данных для поиска."search_query"
: Используется для встраивания поисковых запросов, выполняемых по векторной БД для поиска релевантных документов."classification"
: : Используется для вкраплений, пропущенных через текстовый классификатор."clustering"
: Используется для вкраплений, пропущенных через алгоритм кластеризации.
embedding_types
(Список[str])Тип вкраплений, которые вы хотите получить в ответ. Не требуется, и по умолчанию используется None, который возвращает тип ответа Embed Floats. В настоящее время для этого параметра можно указать только одно значение. Возможные значения:
"float"
: Используйте этот параметр, если хотите получить обратно стандартные вкрапления поплавков. Действует для всех моделей."binary"
: Используйте это значение, если вы хотите получить подписанные бинарные вложения. Действует только для моделей v3."ubinary"
: Используйте это, когда хотите получить беззнаковые двоичные вкрапления. Действителен только для моделей v3.
Чтобы создать вкрапления для документов, используйте метод encode_documents()
:
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
docs_embeddings = cohere_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", cohere_ef.dim, docs_embeddings[0].shape)
Ожидаемый результат будет похож на следующий:
Embeddings: [array([ 3.43322754e-02, 1.16252899e-03, -5.25207520e-02, 1.32846832e-03,
-6.80541992e-02, 6.10961914e-02, -7.06176758e-02, 1.48925781e-01,
1.54174805e-01, 1.98516846e-02, 2.43835449e-02, 3.55224609e-02,
1.82952881e-02, 7.57446289e-02, -2.40783691e-02, 4.40063477e-02,
...
0.06359863, -0.01971436, -0.02253723, 0.00354195, 0.00222015,
0.00184727, 0.03408813, -0.00777817, 0.04919434, 0.01519775,
-0.02862549, 0.04760742, -0.07891846, 0.0124054 ], dtype=float32)]
Dim: 384 (384,)
Для создания вкраплений для запросов используйте метод encode_queries()
:
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = cohere_ef.encode_queries(queries)
print("Embeddings:", query_embeddings)
print("Dim", cohere_ef.dim, query_embeddings[0].shape)
Ожидаемый результат похож на следующий:
Embeddings: [array([-1.33361816e-02, 9.79423523e-04, -7.28759766e-02, -1.93786621e-02,
-9.71679688e-02, 4.34875488e-02, -9.81445312e-02, 1.16882324e-01,
5.89904785e-02, -4.19921875e-02, 4.95910645e-02, 5.83496094e-02,
3.47595215e-02, -5.87463379e-03, -7.30514526e-03, 2.92816162e-02,
...
0.00749969, -0.01192474, 0.02719116, 0.03347778, 0.07696533,
0.01409149, 0.00964355, -0.01681519, -0.0073204 , 0.00043154,
-0.04577637, 0.03591919, -0.02807617, -0.04812622], dtype=float32)]
Dim 384 (384,)