メインコンテンツまでスキップ
バージョン: 21 BETA

OpenAIMessage

OpenAIMessage クラスはロール、コンテンツ、そしてオプションとしてユーザーを格納した構造化されたメッセージを表します。 このクラスはメッセージのテキストや他のコンテンツを操作・取得するメソッドを提供します。

プロパティ

プロパティ説明
roleTextメッセージの役割(例: "user"、"assistant"、"system"、"tool")。
内容Variantメッセージのコンテンツ。テキスト、またはオブジェクトのコレクションのいずれかです。
userTextメッセージに割り当てられたユーザーを表すオプションのプロパティ。
tool_callsCollectionアシスタントからリクエストされたツール呼び出しのコレクション。 各ツール呼び出しには idtypefunction オブジェクトが含まれます。
tool_call_idTextこのメッセージが返答しているツール呼び出しのID (role が "tool"の場合に使用されます)。

計算プロパティ

プロパティ説明
テキストTextテキストメッセージを表すプロパティ。

関数

addImageURL()

addImageURL(imageURL : Text; detail : Text)

引数説明
imageURLTextメッセージに追加する画像のURL。
detailText画像に関する追加の詳細情報。

メッセージのコンテンツに画像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": "{}"
}
}
]
}

ツール呼び出しを管理する:

ツール呼び出しメッセージを受信した場合、以下のことを行う必要があります:

  1. 関数の情報を抽出する:

    • function.name: 呼び出す関数の名前(OpenAITool 内で定義されている関数と合致する必要があります- この名前に応じて実行するコードを選択することができます)
    • function.arguments: JSON Parse でパースされる必要のある、関数の引数を格納したJSON 文字列
    • id: この特定のツール呼び出しのための固有の識別子
  2. 関数を実行する: (JSON 文字列になっている)引数をパースし、OpenAITool 設定内で定義された対応する関数を呼び出します。

  3. ツールの結果で応答する: オリジナルのリクエストの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 モデルはあなたのレスポンスと、呼び出しを行った特定の関数を正確に結びつけることができます。

参照