データ ソース - Pinecone (プレビュー)

Azure OpenAI On Your Data を使用する場合の Pinecone の構成可能なオプション。 このデータ ソースは API バージョン 2024-02-15-preview でサポートされています。

名前 タイプ Required 説明
parameters パラメーター True Pinecone を構成するときに使用するパラメーター。
type string True pineconeである必要があります。

パラメーター

件名 タイプ Required Description
environment string True Pinecone の環境名。
index_name string True Pinecone データベース インデックスの名前。
fields_mapping FieldsMappingOptions True 検索インデックスを操作するときに使用するカスタマイズされたフィールド マッピング動作。
authentication ApiKeyAuthenticationOptions True 定義されたデータ ソースにアクセスするときに使用する認証方法。
embedding_dependency DeploymentNameVectorizationSource True ベクトル検索の埋め込み依存関係。
in_scope boolean False クエリをインデックス付きデータの使用に制限するかどうか。 既定値は True です。
role_information string False ふるまいに関する指示と、応答の生成時に参照する必要があるコンテキストをモデルに与えます。 アシスタントのパーソナリティを説明し、応答の書式設定方法を伝えることができます。
strictness integer False 検索の関連性フィルター処理の構成された厳密度。 厳密度が高いほど、精度は高くなりますが、回答の再現率は低くなります。 既定値は 3 です。
top_n_documents integer False 構成されたクエリの特徴量に対して構成されている上位のドキュメントの数。 既定値は 5 です。

API キー認証オプション

API キーを使用する場合の Azure OpenAI On Your Data の認証オプション。

名前 タイプ Required Description
key string True 認証に使用する API キー。
type string True api_keyである必要があります。

デプロイ名のベクター化ソース

ベクトル検索を適用するときに Azure OpenAI On Your Data で使用されるベクター化ソースの詳細。 このベクター化ソースは、同じ Azure OpenAI リソース内の内部埋め込みモデル デプロイ名に基づきます。 このベクター化ソースにより、Azure OpenAI API キーを使用せずに、Azure OpenAI パブリック ネットワーク アクセスなしでベクトル検索を使用できます。

名前 タイプ Required Description
deployment_name string True 同じ Azure OpenAI リソース内の埋め込みモデル デプロイ名。
type string True deployment_nameである必要があります。

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

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

名前 タイプ Required 説明
content_fields string[] True コンテンツとして扱う必要があるインデックス フィールドの名前。
content_fields_separator string False コンテンツ フィールドで使用する区切り記号パターン。 既定値は \n です。
filepath_field string False ファイルパスとして使用するインデックス フィールドの名前。
title_field string False タイトルとして使用するインデックス フィールドの名前。
url_field string False URL として使用するインデックス フィールドの名前。

前提条件:

  • ユーザーから 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

最新の pip パッケージ openaiazure-identity をインストールします。

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://cognitiveservices.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))