ChatActionオブジェクト
コンポーネント情報 | |
---|---|
version | 8.0.0 |
since | 8.0.0 |
チャットアクションを実行するためのクラスです。
Java版のChatActionクラスとは異なり、直接インスタンスを生成して利用可能です。
このAPIを利用するためには以下の前提条件を満たしている必要があります。
引数のチャットメッセージ情報オブジェクトの配列は、一般的なOpenAI REST APIにおけるchat completionのリクエストモデルのmessages配列に従った形式です。
画像を扱う場合は、チャットメッセージ情報オブジェクトに、画像処理が可能なモデルを指定する必要があります。
実装例は以下の通りです。
Java版のChatActionクラスとは異なり、直接インスタンスを生成して利用可能です。
このAPIを利用するためには以下の前提条件を満たしている必要があります。
- モジュール構成にて「IM-Copilot」モジュールを選択し WARファイルが作成されていること
- IM-Copilot ドライバ設定ファイルにて、利用テナントについて、アクセス先のLLMのドライバ設定が行われていること
- IM-Copilot アクション設定ファイルにて、利用テナントについて、アクション種別"chat"の設定が行われていること
引数のチャットメッセージ情報オブジェクトの配列は、一般的なOpenAI REST APIにおけるchat completionのリクエストモデルのmessages配列に従った形式です。
画像を扱う場合は、チャットメッセージ情報オブジェクトに、画像処理が可能なモデルを指定する必要があります。
実装例は以下の通りです。
- 単純なテキストメッセージで、オプション指定なしでチャットを行う場合
var action = new ChatAction(); var messages = [ { role: 'system', content: 'あなたは優秀な翻訳者です。次の入力内容を日本語に翻訳してください。' }, { role: 'user', content: 'The quick brown fox jumps over the lazy dog.' } ]; var result = action.execute(messages); // // 成功した場合 // // 引数で指定したチャットメッセージ情報オブジェクトの配列に、一番最後の要素が回答として追加され、dataプロパティに設定されます。 // result = { // error: false, // data: [ // { // role: 'system', // content: 'あなたは優秀な翻訳者です。次の入力内容を日本語に翻訳してください。' // }, // { // role: 'user', // content: 'The quick brown fox jumps over the lazy dog.' // }, // { // role: 'assistant', // content: '素早い茶色のキツネが怠け者の犬を飛び越えます。' // } // ] // }; // // 失敗した場合 // // 詳細なエラー内容は、出力される例外ログ内に記載されます。 // result = { // error: true, // data: null, // errorMessage: 'OpenAIにてチャット実行に失敗しました。' // };
- Web上に存在する画像について、オプション指定ありで問い合わせる場合
var action = new ChatAction(); var messages = [ { role: 'system', content: 'あなたは写真に映っている生物や物体を鑑定する専門家です。' }, { role: 'user', content: [ { type: 'text', text: '次の画像に映っている生物は何ですか?' }, { type: 'image_url', image_url: { url: 'https://upload.wikimedia.org/wikipedia/commons/0/0b/Cat_poster_1.jpg', detail: 'auto' } } ] } ]; var result = action.execute(messages, { model: "gpt-4-vision-preview", maxTokens: 300 }); // // 成功した場合 // result = { // error: false, // data: [ // { // role: 'system', // content: 'あなたは写真に映っている生物や物体を鑑定する専門家です。' // }, // { // role: 'user', // content: [ // { // type: 'text', // text: '次の画像に映っている生物は何ですか?' // }, // { // type: 'image_url', // image_url: { // url: 'https://upload.wikimedia.org/wikipedia/commons/0/0b/Cat_poster_1.jpg', // detail: 'auto' // } // } // ] // }, // { // role: 'assistant', // content: 'この画像に映っている生物は全て猫(Felis catus)です。それぞれ異なる毛色や体型を持っており、猫の多様性を示しています。' // } // ] // };
- ローカルに存在する画像をDataURL形式で送信し、オプション指定ありで問い合わせる場合
var action = new ChatAction(); var storage1 = new PublicStorage("dog_and_cat.jpeg"); // 犬と猫が映っている写真 var storage2 = new PublicStorage("cat_and_parakeet.jpg"); // 猫とインコが映っている写真 // Storage上の画像をDataURL形式に変換する場合は、以下のAPIが利用可能です。 // ただし、一般的に、画面を操作するユーザがブラウザ上で画像をアップロードするようなアプリケーションを想定する場合、 // クライアントサイドで画像を直接DataURL形式に変換し、それをサーバサイドに送信してそのまま利用する方が処理としては単純です。 var dataUrl1 = ChatMessage.convertToImageDataUrl(storage1.openAsBinary()).data; var dataUrl2 = ChatMessage.convertToImageDataUrl(storage2.openAsBinary()).data; var messages = [ { role: 'system', content: 'あなたは写真に映っている生物や物体を鑑定する専門家です。' }, { role: 'user', content: [ { type: 'text', text: '次の複数の画像に共通して映っている生物は何ですか?' }, { type: 'image_url', image_url: { url: dataUrl1, detail: 'high' } }, { type: 'image_url', image_url: { url: dataUrl2, detail: 'high' } } ] } ]; var result = action.execute(messages, { model: "gpt-4-vision-preview", maxTokens: 300 }); // // 成功した場合 // result = { // error: false, // data: [ // { // role: 'system', // content: 'あなたは写真に映っている生物や物体を鑑定する専門家です。' // }, // { // role: 'user', // content: [ // { // type: 'text', // text: '次の複数の画像に共通して映っている生物は何ですか?' // }, // { // type: 'image_url', // image_url: { // url: 'data:image/jpeg;base64,/9j/2wBDAAYE(中略)', // detail: 'high' // } // }, // { // type: 'image_url', // image_url: { // url: 'data:image/jpeg;base64,/9j/4AAQSkZJ(中略)', // detail: 'high' // } // } // ] // }, // { // role: 'assistant', // content: 'これらの2つの画像に共通して映っている動物は猫です。' // } // ] // };
コンストラクタの概要
ChatAction () コンストラクタ。設定ファイルの記述に従ってチャットアクションを作成します。 |
メソッドの概要
返却値の型 | メソッド名 |
---|---|
ResultObject | execute (Array messages , ChatOption [option] ) チャットを実行します。 |
String | getActionType () このアクションの種別を返します。 |
String | getDriverType () このアクションのドライバ種別を返します。 |
コンストラクタの詳細
ChatAction ()
コンストラクタ。設定ファイルの記述に従ってチャットアクションを作成します。
|
メソッドの詳細
ResultObject execute (Array messages , ChatOption [option] )
チャットを実行します。
パラメータ
返却値
|
String getActionType ()
このアクションの種別を返します。
チャットアクションでは、固定で"chat"です。
返却値
|
String getDriverType ()
このアクションのドライバ種別を返します。
返却値
|