跳到主要内容

Voyage

Milvus 通过 VoyageEmbeddingFunction 类与 Voyage 的模型集成。此类提供了使用 Voyage 模型对文档和查询进行编码的方法,并返回与 Milvus 索引兼容的密集向量嵌入。要使用此功能,请通过在 Voyage 平台上创建账户来获取 API 密钥。

要使用此功能,请安装必要的依赖项:

pip install --upgrade pymilvus
pip install "pymilvus[model]"

然后,实例化 VoyageEmbeddingFunction

from pymilvus.model.dense import VoyageEmbeddingFunction

voyage_ef = VoyageEmbeddingFunction(
model_name="voyage-3", # 默认为 `voyage-3`
api_key=VOYAGE_API_KEY # 提供您的 Voyage API 密钥
)

参数

  • model_name (string) 用于编码的 Voyage 模型名称。您可以指定任何可用的 Voyage 模型名称,例如 voyage-3-litevoyage-finance-2 等。如果您不指定此参数,将使用 voyage-3。有关可用模型的列表,请参考 Voyage 官方文档
  • api_key (string) 访问 Voyage API 的 API 密钥。有关如何创建 API 密钥的信息,请参考 API Key and 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:", docs_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,)