Voyage
Milvus 透過 VoyageEmbeddingFunction 類與 Voyage 的模型整合。此類提供使用 Voyage 模型編碼文件和查詢的方法,並將嵌入返回為與 Milvus 索引相容的密集向量。若要使用此功能,請在Voyage平台上建立帳號,從Voyage取得 API 金鑰。
要使用此功能,請安裝必要的相依性:
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
(字串) 用來存取 Voyage API 的 API 金鑰。有關如何建立 API 金鑰的資訊,請參閱API 金鑰與 Python Client。
若要為文件建立嵌入式資料,請使用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,)