OpenAI: アシスタント機能実行アクション
- 最終更新日2024/10/31
OpenAI: アシスタント機能実行アクション
OpenAI: アシスタント機能実行アクションでは、OpenAI アシスタントの新しいレベルの機能が利用可能になります。OpenAI Assistants API を利用し、会話中にアシスタントが外部機能を呼び出せるようになります。この機能はブリッジの役割を果たし、アシスタントを膨大なツールボックスに積極的につなげて機能を追加します。
前提条件
- オートメーションで OpenAI アシスタント機能実行アクションを使用するには、Bot Creator ロールが必要です。
- OpenAI のアクションを呼び出す前に、リクエストを送信するために必要な認証情報があり、OpenAI: [認証] アクション が含まれていることを確認してください。
- OpenAI: アシスタント実行アクションに続いて、OpenAI アシスタント機能実行を呼び出す必要があります。
この例では、OpenAI アシスタント機能実行を使用して、アシスタントの機能を拡張する方法について説明します。実行環境内で既存のアシスタントを呼び出して、重要な情報 (Thread ID
、Call ID
、Run ID
) を抽出し、これらの ID を活用してカスタマイズされた関数応答を定義する方法を探ります。たとえば、ここでは株式市場アシスタントをロードし、tools output list
を使用して関数の結果 (関数応答) を定義します。
手順
- Automation Anywhere Control Room で [アクション] ペインに移動し、[生成 AI] > [OpenAI] を選択して、[認証] アクションをドラッグしてキャンバスに配置します。認証には API キーが必要です。API キーの生成と認証の詳細については、「OpenAI: [認証] アクション」を参照してください。
-
Open AI: アシスタント実行アクションを認証アクションの下に配置し、[アシスタントのロード] を使用してアシスタント (株式市場アシスタント) をロードします。メッセージ (AAINC の株価取得) を入力します。レスポンスは文字列変数 str_Response に保存されます。Open AI: アシスタント実行アクションの使用方法については、OpenAI: アシスタントを実行アクションを参照してください。
注: 説明の便宜上、この例では架空の株式コード AAINC を使用しています。AAINC に割り当てられた 3,200 ドルの価格はサンプル値であり、実際の株価を表すものではありません。
OpenAI からロードされた株式市場アシスタントには、次の命令と関数が含まれています。
You are a stock market assistant. When asked a question related to stocks use the function and get the stock price.
{ "name":"get_stock_price", "description":"Get the current stock price", "parameters":{ "type":"object", "properties":{ "symbol":{ "type":"string", "description":"The stock symbol" } }, "required":[ "symbol" ] } }
-
[アクション] ペインで、[JSON] > [セッションの開始] アクションをドラッグし、Open AI: アシスタント実行アクションの下のキャンバスにドロップします。
-
[情報源] フィールドで、[テキスト] を選択し、「
$str_Response$
」と入力します。 -
[JSON オブジェクト セッション] フィールドで、[ローカル セッション] を選択し、「
Default
」と入力します。JSON 全体が揃いました。次のタスクでは、本体から必須フィールドを抽出します。次のスニペットは JSON のサンプルです。{ "data":{ "thread_id":"thread_hiCr3najXMSxuuiIntJDXDXd", "tool_calls":[ { "id":"call_Beu0XFPGR91RZGoXBA8ODSke", "type":"function", "function":{ "name":"get_stock_price", "arguments":"{\n\"symbol\": \"AAINC\"\n}" } } ], "id":"run_LnR669bHLcMAaIGOcvIE0nVa" }, "status":"requires_action" }
注: OpenAI アシスタント メッセージ内のtool_calls
とtool_outputs
では、ユーザーが 1 つのメッセージで複数のリクエストをするシナリオを扱うことができます。たとえば、AAINC と BBINC の株価取得などです。この単一メッセージには、実際には、AAINC の株価調査と BBINC の株価調査という 2 つのリクエストが含まれています。 -
[情報源] フィールドで、[テキスト] を選択し、「
-
JSON から必要なフィールドを抽出し、OpenAI: アシスタント機能実行を実行します。
- [アクション] ペインで、[Json] > [ノード値を取得] アクションをドラッグし、[Json] > [ノード値を取得] アクションの下のキャンバスにドロップします。JSON: ノード値を取得アクションの詳細については、JSON の [ノード値の取得] アクションを参照してください。
-
抽出するノードを指定します。たとえば、
thread_id
を抽出するにはdata.thread_id
を使用できます。 - 変数「thread_id」を作成し、この変数に出力を代入します。
-
同様に
run_id
とcall_id
(data.id
とdata.tool_calls[0].id
) を抽出して、変数 run_id と call_id に保存します。
-
[アクション] ペインに移動して [生成 AI] > [OpenAI] を選択し、OpenAI: アシスタント機能実行アクションをドラッグして最後の [ノード値を取得] アクションの下に配置します。
- 抽出した $thread_id$ を [スレッド ID] フィールドで使用します。
- 抽出した $run_id$ を [実行 ID] フィールドで使用します。
-
次の標準スキーマを使用し、関数応答を定義します。スキーマは、OpenAI Assistant が使用するツール (関数) の出力に関する情報を含む JSON オブジェクトです。
{ "tool_outputs":[ { "tool_call_id":"Enter the call ID", "output":"{Enter your output}" } ] }
リクエストを処理し、適切な関数を実行したら、結果を OpenAI Assistant API に伝える必要があります。そのためには、上記のように
tools output list
と呼ばれる特別なリストを作成する必要があります。このリストには次のプロパティが含まれます。- tool_call_id (string): このプロパティは、出力を生成したツール (関数) の特定の呼び出しの一意の ID を保持します。この ID は、ツールの特定の実行インスタンスの追跡と参照に役立ちます。
-
output (any): このプロパティは、ツールによって生成された実際の出力データを保持します。出力のデータ タイプは、特定のツールやその目的によって異なります。データ タイプは次のうちいずれかになります。
- 文字列 (創作機能で生成されたテキストなど)
- 数値 (計算結果など)
- リスト (抽出データ ポイントのコレクションなど)
- ディクショナリ (複数の値を持つ複雑なデータ構造など)
- その他の有効な JSON データ タイプ
たとえば、この例では次の JSON が入力されます。
{ "tool_outputs":[ { "tool_call_id":"$call_idquot;, "output":"{3200}" } ] }
- 現在のセッションに限定するセッション名として、「デフォルト」を入力します。
-
変数にレスポンスを保存します。この例では、レスポンスは str_FunctionResponse という文字列変数に保存されます。出力は JSON で、出力を要求した値が表示されます。上記の実行のサンプル出力を以下に示します。
:
{ "data":[ { "metadata":{ }, "role":"assistant", "content":[ { "type":"text", "text":{ "value":"The current stock price for AAINC is $3200.", "annotations":[ ] } } ] } ], "status":"completed" }}
OpenAI: アシスタント機能実行アクションは、OpenAI Assistant の操作方法に革命をもたらし、単純な情報プロバイダーから、アクションを起こして要求を満たすことができる強力なツールにアシスタントを変換します。外部機能を活用することで、アシスタントは複雑なタスクに取り組み、上記の例のようにパーソナライズされた推奨事項を提供し、最終的にはより包括的で役立つユーザー体験を提供できるようになりました。