Cohere
Les modèles d'intégration de Cohere sont utilisés pour générer des intégrations de texte, qui sont des listes de nombres à virgule flottante qui capturent des informations sémantiques sur le texte. Ces embeddings peuvent être utilisés pour des tâches telles que la classification de textes et la recherche sémantique.
Milvus s'intègre aux modèles d'intégration de Cohere à l'aide de la classe CohereEmbeddingFunction
. Cette classe gère le calcul des embeddings et les renvoie dans un format compatible avec Milvus pour l'indexation et la recherche.
Pour utiliser cette fonctionnalité, installez les dépendances nécessaires :
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Ensuite, instanciez la classe 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"]
)
Paramètres:
model_name
(chaîne)Le nom du modèle d'intégration Cohere à utiliser pour l'encodage. Vous pouvez spécifier n'importe quel nom de modèle d'intégration Cohere disponible, par exemple,
embed-english-v3.0
,embed-multilingual-v3.0
, etc. Si ce paramètre n'est pas spécifié,embed-english-light-v3.0
sera utilisé. Pour obtenir la liste des modèles disponibles, reportez-vous à Embed.api_key
(chaîne)La clé d'API pour accéder à l'API Cohere.
input_type
(chaîne)Le type d'entrée transmis au modèle. Requis pour les modèles d'intégration v3 et plus.
"search_document"
: Utilisé pour les embeddings stockés dans une base de données vectorielle pour les cas d'utilisation de recherche."search_query"
: Utilisé pour l'intégration de requêtes de recherche exécutées dans une base de données vectorielle pour trouver des documents pertinents."classification"
: Utilisé pour les enchâssements passés par un classificateur de texte."clustering"
: Utilisé pour les enregistrements passés par un algorithme de clustering.
embedding_types
(Liste[str])Le type d'encastrements que vous souhaitez obtenir en retour. Non requis et par défaut, None, qui renvoie le type de réponse Embed Floats. Actuellement, vous ne pouvez spécifier qu'une seule valeur pour ce paramètre. Valeurs possibles :
"float"
: Utilisez ce paramètre si vous souhaitez récupérer les encastrements de flottants par défaut. Valable pour tous les modèles."binary"
: Utilisez cette option si vous souhaitez récupérer les intégrations binaires signées. Valable uniquement pour les modèles v3."ubinary"
: Utilisez cette option lorsque vous souhaitez récupérer des encastrements binaires non signés. Valable uniquement pour les modèles v3.
Pour créer des embeddings pour les documents, utilisez la méthode 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)
Le résultat attendu est similaire à ce qui suit :
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,)
Pour créer des embeddings pour des requêtes, utilisez la méthode 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)
Le résultat attendu est similaire à ce qui suit :
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,)