ジェミニ

MilvusはGeminiEmbeddingFunctionクラスを通してGeminiのモデルと統合されます。このクラスは、事前に学習されたGeminiモデルを用いてドキュメントやクエリをエンコードし、Milvusインデックスと互換性のある密なベクトルとしてエンベッディングを返すためのメソッドを提供します。この機能を利用するには、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、RETRIEVAL_QUERY、QUESTION_ANSWERING、FACT_VERIFICATION文書検索や情報検索のために最適化された埋め込みを生成するために使用します。
コード検索クエリ配列のソートやリンクリストの逆引きなど、自然言語によるクエリに基づいてコードブロックを検索するために使用します。コードブロックの埋め込みは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,)

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?