Voyage
Milvus si integra con i modelli di Voyage attraverso la classe VoyageEmbeddingFunction. Questa classe fornisce metodi per codificare documenti e query utilizzando i modelli di Voyage e restituendo le incorporazioni come vettori densi compatibili con l'indicizzazione di Milvus. Per utilizzare questa funzionalità, è necessario ottenere una chiave API da Voyage creando un account sulla sua piattaforma.
Per utilizzare questa funzione, installare le dipendenze necessarie:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Quindi, istanziare il sito VoyageEmbeddingFunction
:
from pymilvus.model.dense import VoyageEmbeddingFunction
voyage_ef = VoyageEmbeddingFunction(
model_name="voyage-3", # Defaults to `voyage-3`
api_key=VOYAGE_API_KEY # Provide your Voyage API key
)
Parametri:
model_name
(stringa) Il nome del modello Voyage da utilizzare per la codifica. È possibile specificare uno qualsiasi dei nomi dei modelli Voyage disponibili, ad esempiovoyage-3-lite
,voyage-finance-2
, ecc. Se si lascia questo parametro non specificato, verrà utilizzatovoyage-3
. Per un elenco dei modelli disponibili, consultare la documentazione ufficiale di Voyage.api_key
(stringa) La chiave API per accedere all'API di Voyage. Per informazioni su come creare una chiave API, consultare Chiave API e client Python.
Per creare le incorporazioni dei 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 = voyage_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", voyage_ef.dim, docs_embeddings[0].shape)
Il risultato atteso è simile al seguente:
Embeddings: [array([ 0.02582654, -0.00907086, -0.04604037, ..., -0.01227521,
0.04420955, -0.00038829]), array([ 0.03844212, -0.01597065, -0.03728884, ..., -0.02118733,
0.03349845, 0.0065346 ]), array([ 0.05143557, -0.01096631, -0.02690451, ..., -0.02416254,
0.07658645, 0.03064499])]
Dim: 1024 (1024,)
Per creare embeddings per le query, usare il metodo encode_queries()
:
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = voyage_ef.encode_queries(queries)
print("Embeddings:", query_embeddings)
print("Dim", voyage_ef.dim, query_embeddings[0].shape)
L'output previsto è simile al seguente:
Embeddings: [array([ 0.01733501, -0.0230672 , -0.05208827, ..., -0.00957995,
0.04493361, 0.01485138]), array([ 0.05937521, -0.00729363, -0.02184347, ..., -0.02107683,
0.05706626, 0.0263358 ])]
Dim 1024 (1024,)