Voyage
Milvus интегрируется с моделями Voyage с помощью класса VoyageEmbeddingFunction. Этот класс предоставляет методы для кодирования документов и запросов с использованием моделей Voyage и возврата вкраплений в виде плотных векторов, совместимых с индексацией Milvus. Чтобы воспользоваться этой функцией, получите API-ключ от Voyage, создав учетную запись на их платформе.
Чтобы воспользоваться этой функцией, установите необходимые зависимости:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
Затем инстанцируйте 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
)
Параметры:
model_name
(string) Имя модели Voyage, которую необходимо использовать для кодирования. Вы можете указать любое из доступных имен моделей Voyage, например,voyage-3-lite
,voyage-finance-2
, и т. д. Если оставить этот параметр неуказанным, будет использоваться модельvoyage-3
. Список доступных моделей см. в официальной документации Voyage.api_key
(строка) API-ключ для доступа к API Voyage. Информацию о том, как создать API-ключ, см. в разделе API-ключ и Python-клиент.
Чтобы создать вкрапления для документов, используйте метод 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)
Ожидаемый результат похож на следующий:
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,)
Для создания вкраплений для запросов используйте метод 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)
Ожидаемый результат похож на следующий:
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,)