Voyage
Milvus se integra con los modelos de Voyage a través de la clase VoyageEmbeddingFunction. Esta clase proporciona métodos para codificar documentos y consultas utilizando los modelos Voyage y devolviendo las incrustaciones como vectores densos compatibles con la indexación Milvus. Para utilizar esta funcionalidad, obtenga una clave API de Voyage creando una cuenta en su plataforma.
Para utilizar esta función, instale las dependencias necesarias:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
A continuación, instancie 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
)
Parámetros:
model_name
(cadena) El nombre del modelo Voyage a utilizar para la codificación. Puede especificar cualquiera de los nombres de modelo Voyage disponibles, por ejemplo,voyage-3-lite
,voyage-finance-2
, etc. Si deja este parámetro sin especificar, se utilizarávoyage-3
. Para obtener una lista de los modelos disponibles, consulte la documentación oficial de Voyage.api_key
(cadena) La clave API para acceder a la API de Voyage. Para más información sobre cómo crear una clave API, consulte Clave API y Cliente Python.
Para crear incrustaciones para documentos, utilice el método 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)
El resultado esperado es similar al siguiente:
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,)
Para crear incrustaciones para consultas, utilice el método 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)
El resultado esperado es similar al siguiente:
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,)