データ・サイエンス・コネクタの構成
このウォークスルーのステップを使用して、OCI SearchでOpenSearchを使用して、Retrieval-Augmented Generation (RAG)パイプラインに使用するOCI Data Scienceコネクタを設定します。
生成AIコネクタのかわりにデータ・サイエンス・コネクタを使用する場合は、BM25を使用したRAGの実行およびハイブリッド検索を使用したRAGの実行のRAG問合せペイロード・コード例で、
"llm_model"
値を"oci_datascience/<your_llm_model_name>"
に更新する必要があります。前提条件
-
OCI SearchでOpenSearchとともにデータ・サイエンス・コネクタを使用するには、OpenSearchバージョン2.11以降を使用するように構成されたクラスタが必要です。デフォルトでは、新しいクラスタはバージョン2.11を使用するように構成されています。クラスタを作成するには、「OpenSearchクラスタの作成」を参照してください。
バージョン2.3に構成された既存のクラスタでは、バージョン2.11へのインライン・アップグレードを実行できます。詳細は、OpenSearchクラスタ・ソフトウェアのアップグレードを参照してください。
バージョン1.2.3用に構成された既存のクラスタを2.11にアップグレードするには、OpenSearchクラスタ・ソフトウェアのアップグレードで説明されているアップグレード・プロセスを使用する必要があります。
-
OpenSearchクラスタがデータ・サイエンス・エンドポイント・テナンシとは異なるテナンシにある場合、データ・サイエンス・リソースへのアクセス権を付与するには、両方のテナンシでポリシーを作成する必要があります。
次のポリシーの例には、必要な権限が含まれています。これらの例を使用するには、
<caller_tenancy_name>
をOpenSearchクラスタのテナンシの名前に置き換え、<resource_host_tenancy_name>
をデータ・サイエンス・エンドポイントのテナンシの名前に置き換えます。- データ・サイエンス・テナンシのポリシー:
define tenancy <caller_tenancy_name> as <caller_tenancy_ocid> admit any-user of tenancy <caller_tenancy_name> to {DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT} in tenancy
- OpenSearchクラスタ・テナンシのポリシー:
define tenancy <resource_host_tenancy_name> as <resource_host_tenancy_ocid> endorse any-user to {DATA_SCIENCE_MODEL_DEPLOYMENT_PREDICT} in tenancy <resource_host_tenancy_name>
- データ・サイエンス・テナンシのポリシー:
1: クラスタの設定の構成
次のように、クラスタAPIの設定操作を使用して、推奨されるクラスタ設定を構成します。
PUT _cluster/settings
{
"persistent": {
"plugins": {
"ml_commons": {
"only_run_on_ml_node": "false",
"model_access_control_enabled": "true",
"native_memory_threshold": "99",
"rag_pipeline_feature_enabled": "true",
"memory_feature_enabled": "true",
"allow_registering_model_via_local_file": "true",
"allow_registering_model_via_url": "true",
"model_auto_redeploy.enable":"true",
"model_auto_redeploy.lifetime_retry_times": 10
}
}
}
}
2: コネクターの作成
次のペイロードを使用してデータ・サイエンス・コネクタを作成します:
POST _plugins/_ml/connectors/_create
{
"name": "DS Chat Connector",
"description": "Check errors in logs",
"version": 2,
"protocol": "oci_sigv1",
"parameters": {
"endpoint": "<model_deployment_endpoint>",
"modelId": "<model_deployment_OCID>",
"auth_type": "resource_principal"
},
"credential": {
},
"actions": [
{
"action_type": "predict",
"method": "POST",
"url": "https://${parameters.endpoint}/${parameters.modelId}/predict",
"request_body": "{\"model\": \"/opt/ds/model/deployed_model\", \"prompt\" : \"${parameters.prompt}\", \"max_tokens\":250, \"temperature\": 0.7, \"top_p\":0.8, \"stream\" : false}",
"post_process_function": "def text = params['choices'][0]['text'].replace('\n', '\\\\n');\n return '{\"name\":\"response\",\"dataAsMap\":{\"inferenceResponse\":{\"generatedTexts\":[{\"text\":\"' + text + '\"}]}}}'"
}
]
}
<model_deployment_endpoint>
および<model_deployment_OCID>
を、データ・サイエンス・モデル・デプロイメントの実際の値に置き換えます。たとえば:
...
"endpoint": "modeldeployment.us-ashburn-1.oci.customer-oci.com"
"modelId": "ocid1.datasciencemodeldeployment.oc1.IAD.examplesmtpsuqmoy4m5cvblu..."
...
レスポンスで返された<connector_ID>を書き留めます。
{
"connector_id": "<connector_ID>",
}
3: モデル・グループの登録
次の例に示すように、モデル・グループAPIの登録操作を使用してコネクタのモデル・グループを登録します。
POST /_plugins/_ml/model_groups/_register
{
"name": "<model_group_name>",
"description": "<model_group_description>"
}
レスポンスで返された<model_group_IDを書き留めます。
{
"model_group_id": "<model_group_ID>",
"status": "CREATED"
}
4: モデルの登録
次の例に示すように、プレビュー・ステップの<model_group_ID>および<connector_ID>を使用してモデルを登録します。
POST /_plugins/_ml/models/_register
{
"name": "oci-genai-test",
"function_name": "remote",
"model_group_id": "<model_group_ID>",
"description": "test model",
"connector_id": "<connector_ID>"
}
5: モデルのデプロイ
次の例に示すように、モデルをデプロイします。
POST /_plugins/_ml/models/<model_ID>/_deploy
6: RAGパイプラインを作成します。
次の例に示すように、前のステップの<model_ID>
を使用してRAGパイプラインを作成します。
PUT /_search/pipeline/<pipeline_name>
{
"response_processors": [
{
"retrieval_augmented_generation": {
"tag": "genai_pipeline_demo",
"description": "Demo pipeline Using Genai Connector",
"model_id": "<model_ID>",
"context_field_list": ["<text_field_name>"],
"system_prompt": "You are a helpful assistant",
"user_instructions": "Generate a concise and informative answer for the given question"
}
}
]
}
"context_field_list"
には1つ以上のテキスト・フィールド名を指定し、値をカンマで区切ることができます。たとえば:
"context_field_list" : ["value1", "value2",…,"valueN"],
"context_field_list"
に指定する値は、ターゲット・ドキュメント索引の対象となるフィールドと一致する必要があります。
次のステップ
生成AIコネクタのかわりにデータ・サイエンス・コネクタを使用する場合は、BM25を使用したRAGの実行およびハイブリッド検索を使用したRAGの実行のRAG問合せペイロード・コード例で、
"llm_model"
値を"oci_datascience/<your_llm_model_name>"
に更新する必要があります。