OpenAIMessage
OpenAIMessage クラスはロール、コンテンツ、そしてオプションとしてユーザーを格納した構造化されたメッセージを表します。 このクラスはメッセージのテキストや他のコンテンツを操作・取得するメソッドを提供します。
プロパティ
| プロパティ | 型 | 説明 | 
|---|---|---|
role | Text | メッセージの役割(例: "user"、"assistant"、"system"、"tool")。 | 
内容 | Variant | メッセージのコンテンツ。テキスト、またはオブジェクトのコレクションのいずれかです。 | 
user | Text | メッセージに割り当てられたユーザーを表すオプションのプロパティ。 | 
tool_calls | Collection | アシスタントからリクエストされたツール呼び出しのコレクション。 各ツール呼び出しには id、type、function オブジェクトが含まれます。 | 
tool_call_id | Text | このメッセージが返答しているツール呼び出しのID (role が "tool"の場合に使用されます)。 | 
計算プロパティ
| プロパティ | 型 | 説明 | 
|---|---|---|
テキスト | Text | テキストメッセージを表すプロパティ。 | 
関数
addImageURL()
addImageURL(imageURL : Text; detail : Text)
| 引数 | 型 | 説明 | 
|---|---|---|
| imageURL | Text | メッセージに追加する画像のURL。 | 
| detail | Text | 画像に関する追加の詳細情報。 | 
メッセージのコンテンツに画像URL を追加します。
使用例
シンプルなメッセージを作成し画像を添付する
// OpenAIMessage のインスタンスを作成
var $message:=cs.AIKit.OpenAIMessage({role: "user"; content: "Hello!"})
// 画像 URL と詳細を追加
$message.addImageURL("http://example.com/image.jpg"; "high")
ツール呼び出しメッセージに応答する
アシスタントが外部関数を使用する必要がある場合、関数の実行をリクエストするための、tool_calls を持ったメッセージを生成します。
ツール呼び出しをリクエストするアシスタントメッセージ:
{
  "role": "assistant",
  "tool_calls": [
    {
      "id": "call_12345",
      "type": "function",
      "function": {
        "name": "get_database_tables",
        "arguments": "{}"
      }
    }
  ]
}
ツール呼び出しを管理する:
ツール呼び出しメッセージを受信した場合、以下のことを行う必要があります:
- 
関数の情報を抽出する:
function.name: 呼び出す関数の名前(OpenAITool 内で定義されている関数と合致する必要があります- この名前に応じて実行するコードを選択することができます)function.arguments:JSON Parseでパースされる必要のある、関数の引数を格納したJSON 文字列id: この特定のツール呼び出しのための固有の識別子
 - 
関数を実行する: (JSON 文字列になっている)引数をパースし、OpenAITool 設定内で定義された対応する関数を呼び出します。
 - 
ツールの結果で応答する: オリジナルのリクエストの
tool_call_idを使用してレスポンスメッセージを作成します。 
ツールのレスポンスの一例:
// 関数の引数をパースする(あれば)
var $arguments : Object := JSON Parse($toolCall.function.arguments)
// "get_database_tables" に対応するコードを実行する
var $tableNames: Text := OB Keys(ds).join(", ")
// 必要な tool_call_id を持ったツールレスポンスメッセージを作成する
var $toolResponse:=cs.AIKit.OpenAIMessage.new({ \
  role: "tool"; \
  tool_call_id: "call_12345"; \
  content: $tableNames \
})
// 会話にそれを追加して続行する
重要: レスポンス内のtool_call_id は、元のツール呼び出しのid と完全に一致している必要があります。 これによってAI モデルはあなたのレスポンスと、呼び出しを行った特定の関数を正確に結びつけることができます。
参照
- OpenAITool - ツール定義に必要