メッセージ送信
メッセージ送信
この API を使用すると、指定した conversation_id
にメッセージを送信し、エージェントが生成したレスポンスを受け取ることができます。
この API は、テキスト、画像、音声、ドキュメントなど、さまざまな種類のメッセージコンテンツに対応しています。
リクエストメソッド
POST
エンドポイント
https://api-${endpoint}.gptbots.ai/v2/conversation/message
認証
詳細については、API概要の認証方法の説明をご参照ください。
リクエスト
リクエストの例
curl -X POST 'https://api-${endpoint}.gptbots.ai/v2/conversation/message' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"conversation_id": "686e2646cb8ee942d9a62d79",
"response_mode": "blocking",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "I have uploaded 2 image files, please OCR and return 2 json records."
},
{
"type": "image",
"image": [
{
"base64_content": "<complete_base64_string>",
"format": "jpeg",
"name": "TAXI1"
},
{
"url": "https://gptbots.ai/example.png",
"format": "png",
"name": "TAXI2"
}
]
},
{
"type": "audio",
"audio": [
{
"url": "https://gptbots.ai/example.mp3",
"format": "mp3",
"name": "example1 audio"
}
]
},
{
"type": "document",
"document": [
{
"base64_content": "<complete_base64_string>",
"format": "pdf",
"name": "example pdf"
}
]
}
]
}
],
"conversation_config": {
"long_term_memory": false,
"short_term_memory": false,
"knowledge": {
"data_ids": [
"58c70da0403cc812641b9356",
"59c70da0403cc812641df35a"
],
"group_ids": [
"67c70da0403cc812641b93je",
"69c70da0403cc812641df35f"
]
}
}
}'
curl -X POST 'https://api-${endpoint}.gptbots.ai/v2/conversation/message' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
"conversation_id": "686e2646cb8ee942d9a62d79",
"response_mode": "blocking",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "I have uploaded 2 image files, please OCR and return 2 json records."
},
{
"type": "image",
"image": [
{
"base64_content": "<complete_base64_string>",
"format": "jpeg",
"name": "TAXI1"
},
{
"url": "https://gptbots.ai/example.png",
"format": "png",
"name": "TAXI2"
}
]
},
{
"type": "audio",
"audio": [
{
"url": "https://gptbots.ai/example.mp3",
"format": "mp3",
"name": "example1 audio"
}
]
},
{
"type": "document",
"document": [
{
"base64_content": "<complete_base64_string>",
"format": "pdf",
"name": "example pdf"
}
]
}
]
}
],
"conversation_config": {
"long_term_memory": false,
"short_term_memory": false,
"knowledge": {
"data_ids": [
"58c70da0403cc812641b9356",
"59c70da0403cc812641df35a"
],
"group_ids": [
"67c70da0403cc812641b93je",
"69c70da0403cc812641df35f"
]
}
}
}'
このコードブロックをポップアップで表示
注意:
image
、audio
、document
タイプのメッセージでは、base64エンコーディングまたはURLリンクのいずれかの方法を選択して使用できます。- 開発者は最新のユーザーメッセージのみを送信すれば十分です。GPTBotsは自動的に短期記憶と長期記憶の管理を行います。短期記憶をカスタマイズする必要がある場合は、以下の短期記憶カスタマイズのサンプルをご参照ください。"messages": [ { "role": "user", "content": "こんにちは" //カスタム短期記憶 }, { "role": "assistant", "content": "Hello! How can I assist you today?" //カスタム短期記憶 }, { "role": "user", "content": "こんにちは" //最新のユーザーメッセージ }]
"messages": [ { "role": "user", "content": "こんにちは" //カスタム短期記憶 }, { "role": "assistant", "content": "Hello! How can I assist you today?" //カスタム短期記憶 }, { "role": "user", "content": "こんにちは" //最新のユーザーメッセージ }]
このコードブロックをポップアップで表示
リクエストヘッダー
フィールド | タイプ | 説明 |
---|---|---|
Authorization | Bearer ${API Key} | 認証には Authorization: Bearer ${API Key} を使用してください。トークンはAPIキーページから取得できます。 |
Content-Type | application/json | データの形式は application/json を設定してください。 |
リクエストボディ
フィールド名 | タイプ | 必須 | 説明 |
---|---|---|---|
conversation_id | String | 必須 | 会話の一意の識別子。会話を継続するには conversation_id の指定が必須です。 |
response_mode | String | 必須 | エージェントのレスポンスモード: |
messages | JSON Array | 必須 | メッセージ内容。user およびassistant のロールを使用して会話コンテキストを構築します。 |
conversation_config | Object | 任意 | 特別なシナリオにおいて一時的にエージェントの機能を調整します。group_ids とdata_ids を含みます。両方が指定された場合、それらの和集合内で検索されます。両方が空の場合はナレッジ検索は行われません。指定されていない場合は、エージェントのデフォルト設定が使用されます。group_ids :ナレッジベースID(複数のナレッジドキュメントを含む可能性があります)data_ids :ナレッジベース内のナレッジドキュメントID。 |
注意:
エージェントの入出力設定ページでは、メッセージの種類ごとに異なる認識方式をサポートしています。対応しているファイル形式やサイズは異なるため、APIで送信するデータもそれに応じて調整する必要があります。サポートされているメッセージ形式の上限は以下の通りです。
- テキストメッセージ: string
- オーディオメッセージ: .mp3, .wav, .acc
- 画像メッセージ: .jpg, .jpeg, .png, .gif, .webp
- ドキュメントメッセージ: .pdf, .txt, .docx, .csv, .xlsx, .html, .json, .md, .tex, .ts, .xml, etc.
レスポンス
レスポンス例
{
"create_time": 1679587005,
"conversation_id": "657303a8a764d47094874bbe",
"message_id": "65a4ccfC7ce58e728d5897e0",
"output": [
{
"from_component_branch": "1",
"from_component_name": "Component Name",
"content": {
"text": "Hi, is there anything I can help you?",
"audio": [
{
"audio": "http://gptbots.ai/example.mp3",
"transcript": "Transcribed audio content"
}
]
}
}
],
"usage": {
"tokens": {
"total_tokens": 29,
"prompt_tokens": 19,
"prompt_tokens_details": {
"audio_tokens": 0,
"text_tokens": 0
},
"completion_tokens": 10,
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"text_tokens": 0
}
},
"credits": {
"total_credits": 0.0,
"text_input_credits": 0.0,
"text_output_credits": 0.0,
"audio_input_credits": 0.0,
"audio_output_credits": 0.0
}
}
}
{
"create_time": 1679587005,
"conversation_id": "657303a8a764d47094874bbe",
"message_id": "65a4ccfC7ce58e728d5897e0",
"output": [
{
"from_component_branch": "1",
"from_component_name": "Component Name",
"content": {
"text": "Hi, is there anything I can help you?",
"audio": [
{
"audio": "http://gptbots.ai/example.mp3",
"transcript": "Transcribed audio content"
}
]
}
}
],
"usage": {
"tokens": {
"total_tokens": 29,
"prompt_tokens": 19,
"prompt_tokens_details": {
"audio_tokens": 0,
"text_tokens": 0
},
"completion_tokens": 10,
"completion_tokens_details": {
"reasoning_tokens": 0,
"audio_tokens": 0,
"text_tokens": 0
}
},
"credits": {
"total_credits": 0.0,
"text_input_credits": 0.0,
"text_output_credits": 0.0,
"audio_input_credits": 0.0,
"audio_output_credits": 0.0
}
}
}
このコードブロックをポップアップで表示
成功時のレスポンス (Blocking)
フィールド | タイプ | 説明 |
---|---|---|
conversation_id | String | 会話を継続するための識別子です。 |
message_id | String | 会話内の特定のメッセージを識別するための一意のIDです。 |
create_time | Long | メッセージが生成された時刻のタイムスタンプです。 |
output | JSON Array | エージェントのレスポンス内容です。 |
usage | Object | 利用状況(消費リソースなど)の詳細です。 |
成功時のレスポンス (Streaming)
フィールド | タイプ | 説明 |
---|---|---|
code | int | メッセージ種別コード:3 - テキスト、10 - FlowAgent出力、0 - 終了、4 - 使用状況データ、39 - 音声メッセージ。 |
message | string | メッセージ種別:Text(テキスト)、FlowOutput(フロー出力)、End(終了)。 |
data | object | レスポンスの内容。 |
- テキストメッセージのストリーミング例:
{"code":11,"message":"MessageInfo","data":{"message_id":"6785dba0f06d872bff9ee347"}}
{"code":3,"message":"Text","data":"How "}
{"code":3,"message":"Text","data":"can "}
{"code":3,"message":"Text","data":"I "}
{"code":3,"message":"Text","data":"help "}
{"code":3,"message":"Text","data":"you?"}
{"code":0,"message":"End","data":null}
{"code":11,"message":"MessageInfo","data":{"message_id":"6785dba0f06d872bff9ee347"}}
{"code":3,"message":"Text","data":"How "}
{"code":3,"message":"Text","data":"can "}
{"code":3,"message":"Text","data":"I "}
{"code":3,"message":"Text","data":"help "}
{"code":3,"message":"Text","data":"you?"}
{"code":0,"message":"End","data":null}
このコードブロックをポップアップで表示
- オーディオメッセージのストリーミング例:
{"code":11,"message":"MessageInfo","data":{"message_id":"67b857b6be1f2906861a5e75"}}
{"code":39,"message":"Audio","data":{"audioAnswer":"","transcript":"こんにちは"}}
{"code":39,"message":"Audio","data":{"audioAnswer":"EQAUAA0...IA3bi","transcript":""}}
{"code":0,"message":"End","data":null}
{"code":11,"message":"MessageInfo","data":{"message_id":"67b857b6be1f2906861a5e75"}}
{"code":39,"message":"Audio","data":{"audioAnswer":"","transcript":"こんにちは"}}
{"code":39,"message":"Audio","data":{"audioAnswer":"EQAUAA0...IA3bi","transcript":""}}
{"code":0,"message":"End","data":null}
このコードブロックをポップアップで表示
成功時のレスポンス (Webhook)
エージェントに対して人間のカスタマーサポートを有効化している場合、webhook
レスポンスモードを使用して、人間のカスタマーサポート担当者からのメッセージを受け取る必要があります。
「インテグレーション - API」セクションで Webhook URL を設定すると、GPTBots システムは「エージェント」および「人間のカスタマーサポート」からのレスポンスメッセージを、指定した Webhook URL に送信します。
Webhook メッセージの詳細については、Webhook モードをご参照ください。
エラーレスポンス
フィールド | タイプ | 説明 |
---|---|---|
code | Int | エラーコード |
message | String | エラー詳細内容 |
エラーコード
コード | メッセージ |
---|---|
40000 | パラメータが無効です |
40127 | 開発者認証に失敗しました |
40356 | 対話(Conversation)が存在しません |
40358 | Conversation ID(会話ID) が一致しません |
40364 | エージェントは画像形式に対応していません |
50000 | システム内部エラー |
20040 | 質問の文字数制限を超えました |
20022 | 利用可能なクレジットが不足しています |
20055 | API の利用が禁止されています(APIスイッチが有効になっているか確認してください) |