モデル統合モデルアセット外部でホストされたモデル例: Open AIモデルの統合

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

例: Open AIモデルの統合

以下のドキュメントでは、Open AIモデルへのカスタム接続の例として、設定とモデルアダプターを提供しています。

手順に沿ったガイドは、モデルアダプターの作成方法外部ホストされたモデルへの接続の作成方法のドキュメントを参照してください。

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

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

このモデルアダプターは、AzureでホストされているOpen AIインスタンスへの接続を設定します。これは Python 3.8.17pandas 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__) # OpenAIモデルアダプタークラス 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_model_context.external_model.base_url api_type = external_model_context.external_model.connection_configuration["api_type"] api_version = external_model_context.external_model.connection_configuration["api_version"] engine = external_model_context.external_model.connection_configuration["engine"] api_key = external_model_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 および構成と資格情報のマップが完成します。

イーグレスポリシーを選択

以下の例では、api.llm.palantir.tech(ポート443)に対して構成されたイーグレスポリシーが使用されています。

Modeling Objectives アプリケーションの Open AI のイーグレスポリシー

モデルアダプタを構成

外部でホストされたモデルに接続ダイアログで、公開されたモデルアダプタを選択します。

Palantir Foundry の Open AI 用モデルアダプタ構成パネル

URL および接続構成を構成

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

このアダプタは、次の URL が必要です:https://api.llm.palantir.tech/preview

このアダプタには、以下の接続構成が必要です:

  • api_type - 推論に対して実行する Open AI モデルタイプ。
  • api_version - 使用する API バージョン。
  • engine - 使用するモデルエンジン。

Open AI の接続構成パネル

資格情報構成を構成

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

このアダプタには、以下の資格情報構成が必要です:

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

Open AI の資格情報構成パネル

Open AI モデルの使用

Open AI モデルが構成されたので、このモデルは ライブデプロイメントまたはPython トランスフォームでホストできます。

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

OpenAIAdapter を使用した例のクエリ