Cohere
I modelli di embedding di Cohere sono utilizzati per generare embedding di testo, ovvero elenchi di numeri in virgola mobile che catturano informazioni semantiche sul testo. Questi embeddings possono essere utilizzati per compiti come la classificazione del testo e la ricerca semantica.
Milvus si integra con i modelli di embedding di Cohere usando la classe CohereEmbeddingFunction
. Questa classe gestisce il calcolo degli embeddings e li restituisce in un formato compatibile con Milvus per l'indicizzazione e la ricerca.
Per utilizzare questa funzione, installare le dipendenze necessarie:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Quindi, istanziare 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"]
)
Parametri:
model_name
(stringa)Il nome del modello di incorporazione Cohere da usare per la codifica. È possibile specificare uno qualsiasi dei nomi dei modelli di incorporamento Cohere disponibili, ad esempio
embed-english-v3.0
,embed-multilingual-v3.0
, ecc. Se si lascia questo parametro non specificato, verrà utilizzatoembed-english-light-v3.0
. Per un elenco dei modelli disponibili, fare riferimento a Embed.api_key
(stringa)La chiave API per accedere all'API di Cohere.
input_type
(stringa)Il tipo di input passato al modello. Richiesto per l'incorporamento di modelli v3 e successivi.
"search_document"
: Utilizzato per le incorporazioni memorizzate in un database vettoriale per gli usi di ricerca."search_query"
: Utilizzato per le incorporazioni di query di ricerca eseguite su un database vettoriale per trovare documenti rilevanti."classification"
: Utilizzato per le incorporazioni passate attraverso un classificatore di testo."clustering"
: Utilizzato per le incorporazioni passate attraverso un algoritmo di clustering.
embedding_types
(Elenco[str])Il tipo di embedding che si vuole ottenere. Non richiesto e l'impostazione predefinita è None, che restituisce il tipo di risposta Embed Floats. Attualmente è possibile specificare un solo valore per questo parametro. Valori possibili:
"float"
: Utilizzare questo parametro quando si desidera ottenere le incorporazioni float predefinite. Valido per tutti i modelli."binary"
: Da utilizzare quando si desidera ottenere le incorporazioni binarie firmate. Valido solo per i modelli v3."ubinary"
: Usare questa opzione quando si desidera recuperare le incorporazioni binarie senza segno. Valido solo per i modelli v3.
Per creare embeddings per i documenti, utilizzare il metodo 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)
Il risultato atteso è simile al seguente:
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,)
Per creare embeddings per le query, utilizzare il metodo 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)
L'output previsto è simile al seguente:
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,)