データソース - Pinecone(プレビュー)(クラシック)

適用対象:Foundry (クラシック) ポータル。 この記事は、新しい Foundry ポータルでは使用できません。 新しいポータルの詳細を確認します

Note

この記事のリンクは、現在表示している Foundry (クラシック) ドキュメントではなく、新しい Microsoft Foundry ドキュメントのコンテンツを開く場合があります。

Important

Azure OpenAI On Your Dataは廃止されており、まもなく廃止間近です。

Microsoftは新しいモデルのAzure OpenAI On Your Dataへのオンボーディングを停止しました。 この機能は以下のモデルのみをサポートしています:

  • GPT-4o(バージョン 2024-05-13、2024-08-06、2024-11-20)
  • GPT-4o-mini(バージョン 2024-07-18)このモデルが終了すると、すべてのOpenAI On Your Data APIエンドポイントおよびサポートされたデータソースコネクター Azure機能が停止します。

OpenAI On Your DataのワークロードAzure、Foundry IQでコンテンツを取得し、データから根拠のある回答を生成するために、Foundry Agent Serviceに移行することをお勧めします。 始めるには、 Connect a Foundry IQナレッジベースをご覧ください。

Azure OpenAIをあなたのデータで使用する際のPineconeの設定可能なオプション。 このデータソースはAPIバージョン 2024-02-15-previewからサポートされています。

Name タイプ Required Description
parameters Parameters True Pineconeの設定時に使うパラメータ。
type 文字列 True きっと大 pinecone

Parameters

Name タイプ Required Description
environment 文字列 True 環境名はパインコーンです。
index_name 文字列 True パインコーンデータベース索引の名称です。
fields_mapping FieldsMappingOptions True 検索インデックスとやり取りする際に使うためのカスタマイズされたフィールドマッピング動作。
authentication ApiKeyAuthenticationOptions True 定義されたデータソースにアクセスする際に使用する認証方法。
embedding_dependency DeploymentNameVectorizationSource True ベクトル探索における埋め込み依存性。
in_scope boolean False クエリはインデックス付きデータの使用に限定すべきか。 デフォルトは Trueです。
role_information 文字列 False モデルに、どのように振る舞うべきか、応答を生成する際に参照すべきコンテキストについて指示を与えます。 アシスタントの性格を説明し、返答のフォーマットを教えることができます。
strictness 整数 False 検索関連性フィルタリングの設定厳密性。 厳密度が高いほど、答えの精度は高いですが、呼び起こす記憶力は低いです。 デフォルトは 3です。
top_n_documents 整数 False 設定されたクエリで機能するドキュメントの上限数。 デフォルトは 5です。

API鍵認証オプション

APIキーを使用した際のAzure OpenAI On Your Dataの認証オプションについて。

Name タイプ Required Description
key 文字列 True 認証に使うAPIキー。
type 文字列 True きっと大 api_key

展開名ベクトリゼーションソース

ベクトル検索を適用する際にAzure OpenAIがあなたのデータに使用するベクトル化ソースの詳細。 このベクトル化ソースは、同じAzure OpenAIリソース内の内部埋め込みモデル展開名に基づいています。 このベクトル化ソースにより、Azure OpenAI APIキーやAzure OpenAIのパブリックネットワークアクセスなしでベクター検索を利用できます。

Name タイプ Required Description
deployment_name 文字列 True 同じAzure OpenAIリソース内に埋め込みモデルのデプロイメント名を割り当てます。
type 文字列 True きっと大 deployment_name

フィールドマッピングのオプション

フィールドの処理方法を制御する設定です。

Name タイプ Required Description
content_fields string[] True コンテンツとして扱うべきインデックスフィールドの名前。
content_fields_separator 文字列 False コンテンツフィールドが使うべき区切りパターン。 デフォルトは \nです。
filepath_field 文字列 False ファイルパスとして使うインデックスフィールドの名前。
title_field 文字列 False タイトルとして使うインデックスフィールドの名前。
url_field 文字列 False URLとして使うインデックスフィールドの名前。

Examples

Prerequisites:

  • ユーザーからAzure OpenAIリソースへの役割割り当てを設定してください。 必須役割: Cognitive Services OpenAI User
  • Az CLIをインストールしてaz loginを実行します。
  • 以下の環境変数を定義します: AzureOpenAIEndpointChatCompletionsDeploymentNameEnvironmentIndexNameKeyEmbeddingDeploymentName
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export Environment=testenvironment
export Key=***
export IndexName=pinecone-test-index
export EmbeddingDeploymentName=ada

azure-identity openai最新のPIPパッケージをインストールしてください。

import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
environment = os.environ.get("Environment")
key = os.environ.get("Key")
index_name = os.environ.get("IndexName")
embedding_deployment_name = os.environ.get("EmbeddingDeploymentName")

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://ai.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-02-15-preview",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
    ],
    extra_body={
        "data_sources": [
            {
                "type": "pinecone",
                "parameters": {
                    "environment": environment,
                    "authentication": {
                        "type": "api_key",
                        "key": key
                    },
                    "index_name": index_name,
                    "fields_mapping": {
                        "content_fields": [
                            "content"
                        ]
                    },
                    "embedding_dependency": {
                        "type": "deployment_name",
                        "deployment_name": embedding_deployment_name
                    }
                }}
        ],
    }
)

print(completion.model_dump_json(indent=2))