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

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

例: Open AI モデルの統合

以下のドキュメントは、Open AI モデルへのカスタム接続のための構成例と Model Adapter を提供します。ユーザーのユースケースに適しているか確認するために、外部モデル統合の利点を確認してください。

ステップバイステップガイドについては、model adapter の作成方法および外部ホストモデルへの接続作成方法に関するドキュメントを参照してください。

例: Open AI Model Adapter

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

この model adapter は、Azure ホストインスタンスの Open AI への接続を構成します。これは Python 3.8.17pandas 1.5.3、および openai 1.1.0 でテストされました。OpenAI クライアントを構築するためには、次の 5 個の入力が必要です:

  • base_url - base_url として提供
  • api_type - connection configuration で提供
  • api_version - connection configuration で提供
  • engine - connection configuration で提供
  • api_key - resolved_credentials として提供
Copied!
1import palantir_models as pm 2import models_api.models_api_executable as executable_api 3 4from typing import Optional 5 6import openai 7import logging 8 9logger = logging.getLogger(__name__) 10 11# OpenAIModelAdapterクラスを定義します。これは、palantirのExternalModelAdapterクラスを継承します。 12class OpenAIModelAdapter(pm.ExternalModelAdapter): 13 # 初期化メソッド 14 def __init__(self, base_url, api_type, api_version, engine, api_key): 15 # 使用するエンジンを定義 16 self.engine = engine 17 18 # OpenAIの変数を設定 19 openai.api_type = api_type 20 openai.api_key = api_key 21 openai.api_base = base_url 22 openai.api_version = api_version 23 24 # 外部コンテキストからOpenAIModelAdapterを初期化するクラスメソッド 25 @classmethod 26 def init_external(cls, external_context) -> "pm.ExternalModelAdapter": 27 base_url = external_context.base_url 28 api_type = external_context.connection_config["api_type"] 29 api_version = external_context.connection_config["api_version"] 30 engine = external_context.connection_config["engine"] 31 api_key = external_context.resolved_credentials["api_key"] 32 return cls( 33 base_url, 34 api_type, 35 api_version, 36 engine, 37 api_key 38 ) 39 40 # APIの入力と出力を定義するクラスメソッド 41 @classmethod 42 def api(cls): 43 inputs = {"df_in": pm.Pandas(columns=[("prompt", str)])} 44 outputs = {"df_out": pm.Pandas(columns=[("prompt", str), ("prediction", str)])} 45 return inputs, outputs 46 47 # 予測を行うメソッド 48 def predict(self, df_in): 49 predictions = [] 50 for _, row in df_in.iterrows(): 51 messages = [{"role": "user", "content": row['prompt']}] 52 try: 53 # OpenAIのChatCompletion APIを利用して予測を行います。 54 response = openai.ChatCompletion.create( 55 engine=self.engine, 56 messages=messages, 57 ) 58 # エラーハンドリング 59 except openai.error.Timeout as e: 60 logger.error(f"OpenAI API request timed out: {e}") 61 raise e 62 except openai.error.APIError as e: 63 logger.error(f"OpenAI API returned an API Error: {e}") 64 raise e 65 except openai.error.APIConnectionError as e: 66 logger.error(f"OpenAI API request failed to connect: {e}") 67 raise e 68 except openai.error.InvalidRequestError as e: 69 logger.error(f"OpenAI API request was invalid: {e}") 70 raise e 71 except openai.error.AuthenticationError as e: 72 logger.error(f"OpenAI API request was not authorized: {e}") 73 raise e 74 except openai.error.PermissionError as e: 75 logger.error(f"OpenAI API request was not permitted: {e}") 76 raise e 77 except openai.error.RateLimitError as e: 78 logger.error(f"OpenAI API request exceeded rate limit: {e}") 79 raise e 80 predictions.append(response.choices[0].message.content) 81 df_in['prediction'] = predictions 82 return df_in

Open AI モデルの設定

次に、このモデルアダプターを使用するために外部ホストのモデルを設定し、モデルアダプターが要求する設定と資格情報を提供します。

URL と設定と資格情報のマップは、モデルアダプターで定義された同じキーを使用して完成します。

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

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

モデリングの目的アプリケーションにおける Open AI のイーグレスポリシー

モデルアダプターの設定

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

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 を使用した例のクエリ