カスタムインターフェースAPIのウォークスルー

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

Headless APIエンドポイントは、順番に呼び出されるように設計されています。 会話ライフサイクル内の各リクエストは、前のリクエストで返された識別子に依存します。 このガイドでは、リクエストを連結して完全な会話を管理し、中断を処理し、スキル確認およびランタイムコネクションイベントに応答する方法を示します。

プライベートベータ

Headless APIはプライベートベータ版であり、選ばれたお客様のみが利用できます。 詳しくはCustomer Success Managerにお問い合わせください。

会話ライフサイクルの概要

完全なGenie会話は、次の順序で進行します。

  • 会話を作成してconversation_idを取得します。
  • conversation_idを使用してメッセージを送信し、Genieの応答をストリーミングします。
  • スキル確認やランタイムコネクションリクエストなど、ストリーム中に発行されるServer-Sent Events(SSE)を処理します。
  • ストリームがクローズする前に切断された場合は、メッセージまたはイベントを取得します。

セッション内の後続の各リクエストは、最初のリクエストで返されたconversation_idに依存します。 セッションの期間中、この値を保持する必要があります。

完全なリクエストチェーン

次の表は、会話セッションのAPI呼び出しの完全な順序をまとめたものです。これには、各リクエストが生成する識別子と、それが次に使用される場所が含まれます。

ステップリクエスト生成するもの使用者
会話を作成POST
/conversations
conversation
_id
後続の
すべてのリクエスト
メッセージを送信して応答をストリーミングPOST /messagesgenie_run_id再接続
エンドポイント
ファイルを添付(オプション)POST /uploadfile_idPOST /messages
SSE:スキル確認が必要POST
/skill_approval
/:call_id
解像度Genieが再開
SSE:ランタイムコネクション認証が必要POST
/runtime_connection
/:runtime_connection
_attempt_id/link
認証urlユーザーに提示
ストリームに再接続GET
/genie-runs/
:genie_run_id
再開された
SSE
ストリーム
なし
見逃したイベントを手動で取得GET
/conversations
/events
見逃した
イベント
なし
会話履歴を取得GET /messagesメッセージ
履歴
表示
または監査

Headless APIリクエストをチェーン化する方法

Headless APIリクエストをチェーン化するには、次の手順を実行します。

1
会話を作成

会話を作成

メッセージを送信する前に、会話を作成する必要があります。 このリクエストは、セッション内の後続のすべてのリクエストに渡すconversation_idを返します。

次のリクエストを実行して会話を作成し、conversation_idを取得します。

bash
POST /api/v1/genies/:genie_handle/chat/conversations
2
メッセージを送信して応答をストリーミング

メッセージを送信して応答をストリーミング

conversation_idを使用してメッセージを送信し、応答をストリーミングします。 Genieがリクエストを処理する際にリアルタイムSSEストリームを受信するには、streamをtrueに設定します。 切断後に再接続する必要がある場合は、応答で返されるgenie_run_idが必要です。

bash
POST /api/v1/genies/:genie_handle/chat/conversations/:conversation_id/messages

メッセージにファイルを添付

添付ファイルを含める予定の場合は、メッセージを送信する前にファイルをアップロードします。 アップロードによって返されたfile_idを、メッセージ送信リクエストのfile_idパラメータに渡します。

bash
POST /api/v1/genies/:genie_handle/chat/conversations/:conversation_id/upload
3
SSEイベントを処理

SSEイベントを処理

ストリームが開いている間、アプリケーションはイベントをリッスンして応答する必要があります。 一部のイベントでは、Genieが続行する前に即時のアクションが必要です。 その他のイベントは情報提供のみです。

スキル確認が必要

Genieがskill.confirmation_requiredイベントを発行すると、実行を一時停止し、アプリケーションがスキル呼び出しを承認または拒否するのを待ちます。 イベントペイロードにはcall_idが含まれています。 call_idを使用してスキルを承認または拒否します。

bash
POST /api/v1/genies/:genie_handle/chat/conversations/:conversation_id/skill_approval/:call_id

ランタイムコネクション認証が必要

Genieがruntime_connection.auth_requiredイベントを発行すると、スキルを実行する前にユーザーがコネクションを認証する必要があります。 イベントペイロードにはruntime_connection_attempt_idauth_linkが含まれています。

runtime_connection_attempt_idを使用して、ユーザーに提示する認証リンクをリクエストします。

bash
POST /api/v1/genies/:genie_handle/chat/runtime_connection/:runtime_connection_attempt_id/link

応答はstatusフィールドを返します。 statusauth_requiredの場合は、認証を完了するためにauth_link.urlをユーザーに提示します。 statusauthorizedになるまでこのエンドポイントをポーリングします。これはコネクションが完了し、Genieが処理を再開したことを示します。その後、再開された返信をメッセージ履歴から読み取ります。

次のコマンドを使用してコネクションリクエストをキャンセルします。

bash
POST /api/v1/genies/:genie_handle/chat/runtime_connection/:runtime_connection_attempt_id/reject
4
切断から復旧

切断から復旧

Genieがprocessing.finishedを発行する前にSSEストリームが切断された場合は、次のいずれかの復旧方法を使用します。

ストリームに再接続

genie_run_idを使用して、Genie実行のSSEストリームを再度開きます。 見逃したイベントのみを再生するには、最後に正常に受信したイベントのIDをLast-Event-IDヘッダーに渡します。

bash
GET /api/v1/genies/:genie_handle/chat/conversations/:conversation_id/genie-runs/:genie_run_id

見逃したイベントを手動で取得

ストリームに再接続できない場合のフォールバックとして、イベント取得エンドポイントを使用します。 イベントは24時間利用できます。 since_created_atパラメータを渡して、最後に正常に受信したイベントの後に発生したイベントのみを取得します。

bash
GET /api/v1/genies/:genie_handle/chat/conversations/events?conversation_id=:conversation_id&since_created_at=:since_created_at
5
会話履歴を取得

会話履歴を取得

会話がクローズした後、conversation_idを使用して会話の完全なメッセージ履歴を取得できます。 ユーザーが既存の会話に戻ったときに以前のメッセージを表示する場合、またはagent.messageイベントを受信する前にストリームがクローズした場合にGenieの最終応答を取得する場合は、次のエンドポイントを使用します。

bash
GET /api/v1/genies/:genie_handle/chat/conversations/:conversation_id/messages

Last updated: