Voyage
Milvus ist über die Klasse VoyageEmbeddingFunction mit den Modellen von Voyage integriert. Diese Klasse bietet Methoden zur Kodierung von Dokumenten und Abfragen unter Verwendung der Voyage-Modelle und gibt die Einbettungen als dichte Vektoren zurück, die mit der Milvus-Indizierung kompatibel sind. Um diese Funktionalität nutzen zu können, müssen Sie einen API-Schlüssel von Voyage erhalten, indem Sie ein Konto auf deren Plattform erstellen.
Um diese Funktion zu nutzen, installieren Sie die erforderlichen Abhängigkeiten:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Dann instanziieren Sie die 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
)
Parameter:
model_name
(string) Der Name des Voyage-Modells, das für die Kodierung verwendet werden soll. Sie können jeden der verfügbaren Voyage-Modellnamen angeben, z. B.voyage-3-lite
,voyage-finance-2
, usw. Wenn Sie diesen Parameter nicht angeben, wirdvoyage-3
verwendet. Eine Liste der verfügbaren Modelle finden Sie in der offiziellen Voyage-Dokumentation.api_key
(string) Der API-Schlüssel für den Zugriff auf die Voyage-API. Informationen zur Erstellung eines API-Schlüssels finden Sie unter API-Schlüssel und Python-Client.
Um Einbettungen für Dokumente zu erstellen, verwenden Sie die Methode 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)
Die erwartete Ausgabe ist ähnlich wie die folgende:
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,)
Um Einbettungen für Abfragen zu erstellen, verwenden Sie die Methode 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)
Die erwartete Ausgabe ist ähnlich wie die folgende:
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,)