モデルの接続と開発モデル外部でホストされているモデル例:Open AI モデルの統合

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

例:Open AI モデルを統合する

以下のドキュメントでは、Open AI モデルへのカスタム接続に使用する設定とモデルアダプターの例を紹介します。外部モデル統合のメリットを確認し、ユースケースに適していることを確かめてください。

ステップごとのガイドについては、モデルアダプターを作成する方法と外部でホストされているモデルへの接続を作成する方法のドキュメントを参照してください。

Open AI モデルアダプターの例

この例を Foundry で使用するには、Code Repositories アプリケーションのモデルアダプターライブラリを使用して、モデルアダプターを公開し、タグを付けます。

このモデルアダプターは、Azure でホストされている Open AI インスタンスへの接続を設定します。これは Python 3.8.17、pandas 1.5.3、および openai 1.1.0 でテスト済みです。OpenAI クライアントを構築するには、次の5個の入力が必要です。

  • base_url - base_url として指定します
  • api_type - 接続設定で指定します
  • api_version - 接続設定で指定します
  • engine - 接続設定で指定します
  • api_key - resolved_credentials として指定します
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 import palantir_models as pm import models_api.models_api_executable as executable_api from typing import Optional import openai import logging logger = logging.getLogger(__name__) class OpenAIModelAdapter(pm.ExternalModelAdapter): def __init__(self, base_url, api_type, api_version, engine, api_key): # 補完に使用するエンジンを定義します self.engine = engine # OpenAI の変数を設定します openai.api_type = api_type openai.api_key = api_key openai.api_base = base_url openai.api_version = api_version @classmethod def init_external(cls, external_context) -> "pm.ExternalModelAdapter": base_url = external_context.base_url api_type = external_context.connection_config["api_type"] api_version = external_context.connection_config["api_version"] engine = external_context.connection_config["engine"] api_key = external_context.resolved_credentials["api_key"] return cls( base_url, api_type, api_version, engine, api_key ) @classmethod def api(cls): inputs = {"df_in": pm.Pandas(columns=[("prompt", str)])} outputs = {"df_out": pm.Pandas(columns=[("prompt", str), ("prediction", str)])} return inputs, outputs def predict(self, df_in): predictions = [] for _, row in df_in.iterrows(): messages = [{"role": "user", "content": row['prompt']}] try: response = openai.ChatCompletion.create( engine=self.engine, messages=messages, ) except openai.error.Timeout as e: logger.error(f"OpenAI API request timed out: {e}") raise e except openai.error.APIError as e: logger.error(f"OpenAI API returned an API Error: {e}") raise e except openai.error.APIConnectionError as e: logger.error(f"OpenAI API request failed to connect: {e}") raise e except openai.error.InvalidRequestError as e: logger.error(f"OpenAI API request was invalid: {e}") raise e except openai.error.AuthenticationError as e: logger.error(f"OpenAI API request was not authorized: {e}") raise e except openai.error.PermissionError as e: logger.error(f"OpenAI API request was not permitted: {e}") raise e except openai.error.RateLimitError as e: logger.error(f"OpenAI API request exceeded rate limit: {e}") raise e predictions.append(response.choices[0].message.content) df_in['prediction'] = predictions return df_in

Open AI モデルの設定

次に、このモデルアダプターを使用するように外部でホストされているモデルを設定し、モデルアダプターが期待する形式で必要な設定と資格情報を指定します。

URL と、設定および資格情報のマップは、モデルアダプターで定義されているものと同じキーを使用して入力します。

エグレスポリシーを選択する

以下の例では、Open AI API エンドポイントのホスト(ポート443)用に設定されたエグレスポリシーを使用します。

モデリング目標アプリケーションの Open AI エグレスポリシー

モデルアダプターを設定する

外部ホストモデルを接続ダイアログで、公開済みのモデルアダプターを選択します。

Palantir Foundry の Open AI 用モデルアダプター設定パネル

URL と接続設定を設定する

Open AI モデルアダプターの例で必要とされる接続設定を定義します。

このアダプターには、Open AI API エンドポイントの URL が必要です。

このアダプターには、次の接続設定が必要です。

  • api_type - 推論の対象となる Open AI モデルの種類。
  • api_version - 使用する API バージョン。
  • エンジン - 使用するモデルエンジン。

Open AI 用接続設定パネル。

資格情報の設定を行う

Open AI モデルアダプターの例で必要とされる資格情報の設定を定義します。

このアダプターには、次の資格情報の設定が必要です。

  • api_key - Open AI にクエリを実行するために必要なシークレットキー。

Open AI 用資格情報設定パネル。

Open AI モデルの使用

Open AI モデルの設定が完了すると、このモデルをライブデプロイメントまたは Python トランスフォームでホストできます。

以下の画像は、ライブデプロイメントの Open AI モデルに対して実行したクエリの例を示しています。

OpenAIAdapter を使用したクエリの例