雙子星

Milvus 透過GeminiEmbeddingFunction類與Gemini的模型整合。這個類別提供了使用預先訓練的 Gemini 模型來編碼文件和查詢的方法,並將嵌入返回為與 Milvus 索引相容的密集向量。若要使用此功能,請在Gemini平台上建立帳號,從Gemini取得 API 金鑰。

要使用此功能,請安裝必要的相依性:

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

然後,實體化GeminiEmbeddingFunction

from pymilvus import model

gemini_ef = model.dense.GeminiEmbeddingFunction(
    model_name='gemini-embedding-exp-03-07', # Specify the model name
    api_key='YOUR_API_KEY', # Provide your OpenAI API key
)

參數

  • model_name(string)

    用於編碼的 Gemini 模型名稱。有效的選項為gemini-embedding-exp-03-07(預設)、models/ embedding-001models/text-embedding-004

  • api_key(字串)

    存取 Gemini API 的 API 金鑰。

  • config(types.EmbedContentConfig) 嵌入模型的可選設定。

    • output_dimensionality可以指定為結果輸出嵌入的數量。
    • 可指定task_type,以針對特定任務產生最佳化的嵌入,節省您的時間與成本,並提高效能。僅在gemini-embedding-exp-03-07模型中支援。
模型名稱尺寸
gemini-embedding-exp-03-073072(default),1536,768
模型/嵌入式-001768
模型/文字嵌入-004768
任務類型說明
語意相似性用來產生最適合評估文字相似性的嵌入。
分類用來產生最佳化的內嵌,以便根據預設標籤對文字進行分類。
聚類用於產生最佳化的嵌入式資料,以根據文字的相似性將文字聚類。
驗證_文件、驗證_查詢、問題解析和事實確認用於產生最佳化的嵌入式文件搜尋或資訊檢索。
代碼擷取查詢用於根據自然語言查詢來擷取程式碼區塊,例如排序陣列或反向鏈結清單。程式碼區塊的嵌入是使用 RETRIEVAL_DOCUMENT 計算出來的。

若要為文件建立嵌入,請使用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 = gemini_ef.encode_documents(docs)

# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", gemini_ef.dim, docs_embeddings[0].shape)

預期的輸出與下圖相似:

Embeddings: [array([-0.00894029,  0.00573813,  0.013351  , ..., -0.00042766,
       -0.00603091, -0.00341043], shape=(3072,)), array([ 0.00222347,  0.03725113,  0.01152256, ...,  0.01047272,
       -0.01701597,  0.00565377], shape=(3072,)), array([ 0.00661134,  0.00232328, -0.01342973, ..., -0.00514429,
       -0.02374139, -0.00701721], shape=(3072,))]
Dim: 3072 (3072,)

要為查詢建立內嵌,請使用encode_queries()方法:

queries = ["When was artificial intelligence founded", 
           "Where was Alan Turing born?"]

query_embeddings = gemini_ef.encode_queries(queries)

# Print embeddings
print("Embeddings:", query_embeddings)
# Print dimension and shape of embeddings
print("Dim", gemini_ef.dim, query_embeddings[0].shape)

預期的輸出與下列內容相似:

Embeddings: [array([-0.02066572,  0.02459551,  0.00707774, ...,  0.00259341,
       -0.01797572, -0.00626168], shape=(3072,)), array([ 0.00674969,  0.03023903,  0.01230692, ...,  0.00160009,
       -0.01710967,  0.00972728], shape=(3072,))]
Dim 3072 (3072,)
目錄

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?