- HTTP リクエスト
- パスパラメータ
- リクエストの本文
- レスポンスの本文
- 認可スコープ
- TextInput
- AudioInput
- EventInput
- DriveOffEvent
- CrewInterjectionEvent
- OrderStateUpdateEvent
- ClientEscalationEvent
- CallerHangupEvent
- PosErrorEvent
- ClientExecutionResult
- FinalizeOrderResponse
- PaymentInfo
- PaymentMethod
- OrderPricesResponse
- ValidateDeliveryAddressResponse
- OrderStatusResponse
- Blob
- 構成
- FeatureGate
- ClientAppInfo
- SessionMode
- TurnType
- BidiProcessOrderResponse
- AgentAudio
- SpeechRecognition
- InterruptionSignal
- AgentEvent
- RestartOrder
- ClientExecutionRequest
- FinalizeOrderRequest
- SubmitOrderRequest
- LoyaltyInfo
- LoyaltyAmount
- OrderPricesRequest
- ValidateDeliveryAddressRequest
- OrderStatusRequest
- UpdatedOrderState
- AgentText
- SuggestedOptions
- SuggestedItems
- SuggestedItem
- SuggestedModifiers
- SuggestedModifier
- SuggestedModifierGroups
- SuggestedModGroup
- SentimentMeasurement
- TurnCompleted
- EndSession
- EndType
単一のターンロジックを実行して、ユーザー入力を処理し、結果を返します。
HTTP リクエスト
POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder
この URL では gRPC Transcoding 構文を使用します。
パスパラメータ
| パラメータ | |
|---|---|
config.session |
必須。注文のセッション。形式: |
リクエストの本文
リクエストの本文には、次の構造のデータが含まれます。
| JSON 表現 |
|---|
{ "config": { "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean }, "clientAppInfo": { "deviceModel": string, "osVersion": string, "sdkVersion": string }, "mode": enum ( |
| フィールド | |
|---|---|
config.store |
必須。注文が行われる店舗。形式: |
config.laneId |
省略可。特定のドライブスルー レーンの ID。 |
config.enableEchoCancellation |
省略可。セッションのエコー キャンセラを有効にするかどうか。有効になっている場合、クライアントは AudioInput で customerAudio と crewAudio を提供する必要があります。 |
config.daypartId |
省略可。朝食、ランチ、ディナーなど、フード メニューの時間帯。注文に使用するメニューを特定するために使用されます。 |
config.featureGate |
省略可。セッションのフィーチャー ゲート。これは、セッションの機能を有効または無効にするために使用されます。 |
config.clientAppInfo |
省略可。クライアント アプリケーションとデバイス環境に関する情報。 |
config.mode |
省略可。セッションのモード。 |
config.channelType |
省略可。エージェントのコミュニケーションに使用されるチャネルのタイプ。 |
config.enableListenOnlyDualChannel |
省略可。セッションでリスニング専用のデュアル チャンネルを有効にするかどうか。有効にすると、クライアントは AudioInput で customerAudio と crewAudio を提供し、CES はメディア処理サーバーで EAC と合計を行います。 |
config.testSessionStartTime |
省略可。テストまたは評価目的で使用されるセッションの開始時刻。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
turnType |
省略可。セッションのライフサイクルにおけるリクエストの位置を明示的に示します。クライアントが、初回セッション設定変数が挿入されるタイミングを決定論的に制御できるようにします。 |
共用体フィールド input。クライアントからの入力。input は次のいずれかになります。 |
|
textInput |
クライアントからのテキスト入力。 |
audioInput |
クライアントからの音声入力。 |
eventInput |
クライアントからのイベント入力。 |
clientExecutionResult |
クライアント実行リクエストの結果。 |
blobInput |
汎用バイナリデータ入力。http://google3/google/cloud/ces/v1main/session_service.proto?l=720 をミラーリングします。 |
レスポンスの本文
FoodOrderingService.ProcessOrder に対するレスポンス メッセージ。機能的には、ストリーミング固有のものを除いた BidiProcessOrderResponse のフィールドが含まれます。
成功した場合、レスポンスの本文には次の構造のデータが含まれます。
| JSON 表現 |
|---|
{
"responses": [
{
object ( |
| フィールド | |
|---|---|
responses[] |
出力専用。リクエストに対するエージェントのレスポンスのリスト。順序どおりに返されます。 |
認可スコープ
次の OAuth スコープが必要です。
https://www.googleapis.com/auth/cloud-platform
詳細については、Authentication Overview をご覧ください。
TextInput
クライアントからのテキスト入力。音声の代わりに、クライアントがテキスト入力をエージェントに送信することもできます。クライアントはテキスト入力と音声入力のどちらか一方を使用する必要があります。両方を使用することはできません。
| JSON 表現 |
|---|
{ "text": string } |
| フィールド | |
|---|---|
text |
必須。クライアントからのテキスト発話。 |
AudioInput
クライアントからの音声入力。入力音声には、お客様、乗務員などの複数のチャンネルが含まれている場合があります。これらはすべて同期され、構成で指定された形式である必要があります。音声ヘッダーは含めないでください。デフォルトでは、音声は 16 ビットのリニア PCM 音声エンコードと 16, 000 Hz のサンプルレートを使用する必要があります。すべてのチャネルの合計バイト数は 25,600 バイト未満にする必要があります。
| JSON 表現 |
|---|
{ "customerAudio": string, "crewAudio": string } |
| フィールド | |
|---|---|
customerAudio |
必須。お客様の音声データ。 Base64 でエンコードされた文字列。 |
crewAudio |
省略可。乗組員の音声データ。これは、お客様と同じレーンにいるクルー メンバー用のオプションの音声チャンネルで、エコー キャンセラ の基準音声として使用されます。 Base64 でエンコードされた文字列。 |
EventInput
クライアントからのイベント入力。これは、エージェント内の特定のイベントをトリガーするために使用されます。
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド event。次の ID: 10 トリガーするイベント。event は次のいずれかになります。 |
|
driveOffEvent |
ドライブオフ イベント。 |
crewInterjectionEvent |
乗組員の介入イベント。 |
updateOrderStateEvent |
注文状態のクライアントサイドの更新。 |
clientEscalationEvent |
クライアントサイドのエスカレーション イベント。 |
callerHangupEvent |
省略可。通話元のハングアップ イベント。 |
posErrorInput |
省略可。POS エラーイベント。 |
DriveOffEvent
ドライブオフ イベント。お客様が運転を開始したことを示します。このイベントの後にセッションが終了します。
| JSON 表現 |
|---|
{ "reason": string } |
| フィールド | |
|---|---|
reason |
省略可。ドライブオフの理由(「注文完了」、「予期しないドライブオフ」など)。 |
CrewInterjectionEvent
乗組員の介入イベント。これは、クルー メンバーがセッションに介入したことを示します。このイベントの後、セッションは閉じられます。
| JSON 表現 |
|---|
{ "mode": string } |
| フィールド | |
|---|---|
mode |
省略可。乗務員が介入したモード(「ヘッドセット」、「POS」など)。 |
OrderStateUpdateEvent
注文ステータスの更新リクエスト。このイベントは、クライアント側で注文が更新されたとき(従来のタッチ インターフェースでアイテムが追加または削除されたときなど)に送信する必要があります。
| JSON 表現 |
|---|
{
"order": {
object ( |
| フィールド | |
|---|---|
order |
必須。このセッションに関連付けられた注文の更新された状態。 |
ClientEscalationEvent
クライアントがセッションを人間のエージェントにエスカレーションしていることを示します。
| JSON 表現 |
|---|
{ "reason": string } |
| フィールド | |
|---|---|
reason |
省略可。クライアント エスカレーションの理由(「payment-declined」、「pos-error」、「integration-error」など)。 |
CallerHangupEvent
この型にはフィールドがありません。
お客様が通話を途中で切ったことを示します(AI への嫌悪感など)。
PosErrorEvent
POS 固有のエラー。
| JSON 表現 |
|---|
{ "errorMessages": [ string ], "affectedItemUids": [ string ], "affectedExternalIds": [ string ], "metadata": { string: string, ... } } |
| フィールド | |
|---|---|
errorMessages[] |
省略可。エラーの説明(人が読める形式)のリスト。複数の問題が同時に発生した場合(複数の商品が在庫なしの場合など)や、1 つの複雑なエラーの詳細な内訳を提供するために、複数のエラー メッセージを指定できます。これらのメッセージは、エージェントがお客様に通知したり、ロギングに使用したりする場合があります。 |
affectedItemUids[] |
省略可。エラーの原因となったデリバリー&テイクアウト AI エージェントによって生成された一意のアイテム UID。 |
affectedExternalIds[] |
省略可。エラーの原因となった外部 ID のリスト(メニューから)。POS の実際の代表者と一致する必要があります。通常は menu.proto の統合属性( |
metadata |
省略可。デバッグまたはブランド固有のシグナリング用のフリーフォーム メタデータ。ブランド固有のエラーコードやカテゴリを渡すために使用できます(例: {"BRAND_ERROR_CODE": "OUT_OF_STOCK"})。
|
ClientExecutionResult
クライアント実行リクエストの結果。
| JSON 表現 |
|---|
{ "executionId": string, // Union field |
| フィールド | |
|---|---|
executionId |
必須。この結果の実行リクエストの ID。 |
共用体フィールド response。実行の特定の結果。response は次のいずれかになります。 |
|
finalizeOrderResponse |
注文の確定結果。 |
orderPricesResponse |
注文価格の取得結果。 |
validateDeliveryAddressResponse |
お届け先住所の検証結果。 |
orderStatusResponse |
注文ステータスの取得結果。 |
FinalizeOrderResponse
注文の確定結果。
| JSON 表現 |
|---|
{ "paymentFlowEnabled": boolean, "paymentInfo": { object ( |
| フィールド | |
|---|---|
paymentFlowEnabled |
省略可。エージェントで支払い処理フローを有効にするかどうか。 |
paymentInfo |
省略可。お客様のお支払い情報。paymentFlowEnabled が false の場合は no-op。 |
totalAmountDue |
省略可。注文の合計請求金額。 |
orderPriceInfo |
省略可。注文の料金に関する詳細情報。 |
PaymentInfo
ユーザーのお支払い情報。
| JSON 表現 |
|---|
{
"creditCardLastFourDigits": string,
"creditCardCvv": string,
"paymentMethod": enum ( |
| フィールド | |
|---|---|
creditCardLastFourDigits |
省略可。クレジット カード番号の末尾 4 桁。これは、支払い段階でクレジット カード番号を確認するために使用されます。 |
creditCardCvv |
省略可。クレジット カードの CVV。 |
paymentMethod |
省略可。使用されたお支払い方法の種類。 |
PaymentMethod
お支払い方法の種類。
| 列挙型 | |
|---|---|
PAYMENT_METHOD_UNSPECIFIED |
お支払い方法が指定されていません。 |
PAYMENT_METHOD_CREDIT_CARD |
クレジット カード。 |
PAYMENT_METHOD_CASH |
現金。 |
OrderPricesResponse
注文価格の取得結果。
| JSON 表現 |
|---|
{
"success": boolean,
"orderPriceInfo": {
object ( |
| フィールド | |
|---|---|
success |
必須。注文の価格が正常に取得されたかどうか。 |
orderPriceInfo |
省略可。すべての割引、手数料、税金などを適用した後の注文の合計金額 |
ValidateDeliveryAddressResponse
お届け先住所の検証結果。
| JSON 表現 |
|---|
{
"success": boolean,
"validationStatus": enum ( |
| フィールド | |
|---|---|
success |
必須。検証がエラーなく完了したかどうか。 |
validationStatus |
必須。お届け先住所の検証ステータス。 |
OrderStatusResponse
注文ステータスの取得結果。
| JSON 表現 |
|---|
{ "success": boolean } |
| フィールド | |
|---|---|
success |
必須。注文ステータスが正常に取得されたかどうか。 |
Blob
会話内の BLOB 入力または出力を表します。
| JSON 表現 |
|---|
{ "mimeType": string, "data": string } |
| フィールド | |
|---|---|
mimeType |
必須。ソースデータの IANA 標準 MIME タイプ。 |
data |
必須。blob の未加工のバイト数。 Base64 でエンコードされた文字列。 |
構成
セッションとフード注文のプロパティの構成。接続の開始時に、クライアントはまず構成メッセージを送信する必要があります。これは、セッションを開始する他のリクエストよりも前に行う必要があります。クライアントが接続を解除した場合は、再接続時に同じ構成メッセージを繰り返す必要があります。
| JSON 表現 |
|---|
{ "session": string, "store": string, "laneId": string, "enableEchoCancellation": boolean, "daypartId": string, "featureGate": { object ( |
| フィールド | |
|---|---|
session |
必須。注文のセッション。形式: |
store |
必須。注文が行われる店舗。形式: |
laneId |
省略可。特定のドライブスルー レーンの ID。 |
enableEchoCancellation |
省略可。セッションのエコー キャンセラを有効にするかどうか。有効になっている場合、クライアントは AudioInput で customerAudio と crewAudio を提供する必要があります。 |
daypartId |
省略可。朝食、ランチ、ディナーなど、フード メニューの時間帯。注文に使用するメニューを特定するために使用されます。 |
featureGate |
省略可。セッションのフィーチャー ゲート。これは、セッションの機能を有効または無効にするために使用されます。 |
clientAppInfo |
省略可。クライアント アプリケーションとデバイス環境に関する情報。 |
mode |
省略可。セッションのモード。 |
channelType |
省略可。エージェントのコミュニケーションに使用されるチャネルのタイプ。 |
enableListenOnlyDualChannel |
省略可。セッションでリスニング専用のデュアル チャンネルを有効にするかどうか。有効にすると、クライアントは AudioInput で customerAudio と crewAudio を提供し、CES はメディア処理サーバーで EAC と合計を行います。 |
testSessionStartTime |
省略可。テストまたは評価目的で使用されるセッションの開始時刻。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
FeatureGate
セッションのフィーチャー ゲート。これは、セッションの機能を有効または無効にするために使用されます。
| JSON 表現 |
|---|
{ "menuResponseEnabled": boolean, "updatedOrderStateEnabled": boolean, "enableOrderStatusRetrieval": boolean } |
| フィールド | |
|---|---|
menuResponseEnabled |
省略可。設定されている場合、メニューデータを BidiProcessOrderResponse でクライアントに返します。 |
updatedOrderStateEnabled |
省略可。設定されている場合、legacyOrderStateResponse の代わりに updatedOrderState が返されます。 |
enableOrderStatusRetrieval |
省略可。設定されている場合、エージェントは注文ステータスの取得をサポートします。 |
ClientAppInfo
クライアント アプリケーションとデバイス環境に関する情報。これは主にロギング、分析、デバッグに使用されます。
| JSON 表現 |
|---|
{ "deviceModel": string, "osVersion": string, "sdkVersion": string } |
| フィールド | |
|---|---|
deviceModel |
省略可。クライアントのデバイスモデル(「iPhone 13」、「Google Pixel 7」、「Kiosk v2」など)。 |
osVersion |
省略可。クライアントのオペレーティング システムのバージョン(例: 「iOS 16.1」、「Android 13」)。 |
sdkVersion |
省略可。クライアント SDK またはアプリケーション ソフトウェアのバージョン。 |
SessionMode
セッションのモード。
| 列挙型 | |
|---|---|
SESSION_MODE_UNSPECIFIED |
セッション モードが指定されていません。 |
HYBRID |
セッションは音声とテキストの両方をサポートしています。これがデフォルトです。 |
TEXT |
セッションはテキストのみです。 |
TurnType
セッション内の単項リクエストのライフサイクル位置を表します。
| 列挙型 | |
|---|---|
TURN_TYPE_UNSPECIFIED |
右左折タイプが指定されていません。 |
INITIALIZE |
このリクエストが単項モードでセッションを初期化することを明示的に示します。設定すると、初回セッション変数(ストアのメタデータやメニューなど)が CES に挿入されます。 |
SUBSEQUENT |
後続の会話ターンまたはセッション中の更新を明示的に示します。設定すると、入力トークンの爆発を防ぐために、初回セッション変数が省略されます。 |
BidiProcessOrderResponse
FoodOrderingService.BidiProcessOrder メソッドから返される最上位のメッセージ。
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド response。エージェントからのレスポンス。response は次のいずれかになります。 |
|
agentAudio |
エージェントからの音声レスポンス。 |
speechRecognition |
エージェントからの音声認識の結果。 |
legacyOrderStateResponse |
セッションの以前の注文状態のレスポンス。 |
interruptionSignal |
音声入力から割り込み信号が検出されました。 |
agentEvent |
エージェントからのイベント。 |
clientExecutionRequest |
リクエストはクライアントに転送されて実行されます。これは、注文へのコードの追加など、クライアントサイドの実行に使用されます。 |
updatedOrderState |
注文ステータスの更新を示します。注文の完全な状態が含まれます。 |
agentText |
エージェントからのテキスト レスポンス。 |
suggestedOptions |
お客様に提案するオプション。 |
sentimentMeasurement |
このターンで測定されたリアルタイムの感情スコア。 |
turnCompleted |
完了したメッセージのターン。 |
endSession |
セッションが終了し、これが最後のターンになることを示します。 エージェントは、現在のターンの保留中のレスポンスをすべて送信してから、最終的な turnCompleted メッセージを送信します。エージェントは新しいターンを開始しません。たとえば、2 ターンのセッションは次のようになります。
|
AgentAudio
エージェントからの音声レスポンス。
| JSON 表現 |
|---|
{ "agentAudio": string } |
| フィールド | |
|---|---|
agentAudio |
エージェントからの音声データ。 Base64 でエンコードされた文字列。 |
SpeechRecognition
エージェントからの音声認識の結果。
| JSON 表現 |
|---|
{ "transcript": string, "languageCode": string, "isFinal": boolean } |
| フィールド | |
|---|---|
transcript |
検出された言語の音声入力から文字変換されたテキスト。 |
languageCode |
文字起こしの言語コード。言語コードは、「en-US」などの BCP-47 形式にする必要があります。 |
isFinal |
これがターンの最終的な文字起こしであるかどうかを示します。 |
InterruptionSignal
この型にはフィールドがありません。
エージェントの音声レスポンスが中断されたことを示します(エンドユーザーの割り込みなど)。クライアントは直ちに再生を停止する必要があります。
AgentEvent
クライアントがアクションを実行する必要があるエージェントからの特別イベント。
| JSON 表現 |
|---|
{ // Union field |
| フィールド | |
|---|---|
共用体フィールド event。エージェントからのイベント。event は次のいずれかになります。 |
|
restartOrder |
お客様から注文の再開をリクエストされました。 |
RestartOrder
お客様から注文のやり直しをリクエストされました。
| JSON 表現 |
|---|
{ "confirmationStep": boolean } |
| フィールド | |
|---|---|
confirmationStep |
エージェントがお客様に再起動のリクエストを確認しています。 |
ClientExecutionRequest
クライアント側でコマンドを実行するリクエスト。
| JSON 表現 |
|---|
{ "executionId": string, // Union field |
| フィールド | |
|---|---|
executionId |
必須。この実行リクエストの一意の ID。 |
共用体フィールド request。実行する特定のリクエスト。request は次のいずれかになります。 |
|
finalizeOrderRequest |
注文を確定するためのリクエスト。 |
submitOrderRequest |
注文を送信するリクエスト。 |
orderPricesRequest |
注文価格を取得するためのリクエスト。 |
validateDeliveryAddressRequest |
お届け先住所を検証するリクエスト。 |
orderStatusRequest |
注文ステータスを取得するリクエスト。 |
FinalizeOrderRequest
この型にはフィールドがありません。
注文を確定するリクエスト。通常、お客様が注文を完了して支払いを希望された場合に、エージェントが送信します。
SubmitOrderRequest
お客様から収集した必要な支払い情報がすべて含まれた、注文を送信するリクエスト。
| JSON 表現 |
|---|
{ "paymentInfo": { object ( |
| フィールド | |
|---|---|
paymentInfo |
必須。注文の支払い情報。 |
loyaltyInfo |
省略可。注文に使用されたポイント。 |
tipAmount |
省略可。注文のチップ額。 |
LoyaltyInfo
お客様のロイヤルティ情報を表します。
| JSON 表現 |
|---|
{
"loyaltyAmount": {
object ( |
| フィールド | |
|---|---|
loyaltyAmount |
必須。ポイントの金額。これは、ポイント残高またはポイント消費量です。 |
LoyaltyAmount
お客様のロイヤルティ額を表します。
| JSON 表現 |
|---|
{ "units": string } |
| フィールド | |
|---|---|
units |
必須。ポイント。 |
OrderPricesRequest
注文価格を取得するためのリクエスト。
| JSON 表現 |
|---|
{
"order": {
object ( |
| フィールド | |
|---|---|
order |
省略可。価格を取得する注文。指定されていない場合、リクエストはセッション内の既存の注文/カートに対するものと想定できます。 |
ValidateDeliveryAddressRequest
セッション中に収集されたお届け先住所を検証するリクエスト。
| JSON 表現 |
|---|
{
"deliveryAddress": {
object ( |
| フィールド | |
|---|---|
deliveryAddress |
必須。検証するお届け先住所。 |
OrderStatusRequest
この型にはフィールドがありません。
注文ステータスを取得するリクエスト。
UpdatedOrderState
注文ステータスの更新を表すエージェントから返されるイベント。
| JSON 表現 |
|---|
{
"order": {
object ( |
| フィールド | |
|---|---|
order |
このセッションに関連付けられた注文の更新された状態。 |
changed |
出力専用。注文ステータスが更新されたかどうか。 |
AgentText
エージェントからのテキスト レスポンス。
| JSON 表現 |
|---|
{ "text": string } |
| フィールド | |
|---|---|
text |
エージェントからのテキスト レスポンス。 |
SuggestedOptions
お客様に提案するオプション。
| JSON 表現 |
|---|
{ "suggestedModifierGroups": { object ( |
| フィールド | |
|---|---|
suggestedModifierGroups |
提案された修飾子のグループ。 |
共用体フィールド suggested_options。候補が表示されます。suggested_options は次のいずれかになります。 |
|
suggestedItems |
お客様に提案するアイテムのリスト。 |
suggestedModifiers |
お客様に提案する修飾子のリスト。 |
SuggestedItems
お客様に提案するアイテムのリスト。
| JSON 表現 |
|---|
{
"items": [
{
object ( |
| フィールド | |
|---|---|
items[] |
お客様に提案するアイテム。 |
SuggestedItem
お客様に提案するアイテム。
| JSON 表現 |
|---|
{ "itemId": string, "displayName": string, "image": { object ( |
| フィールド | |
|---|---|
itemId |
メニュー内のアイテムの ID。 |
displayName |
ユーザー インターフェースに表示される、人が読める形式の名前。 |
image |
UI でこの項目に表示する画像。 |
basePrice |
商品アイテムの基本価格。これは、選択した修飾子によって影響を受ける可能性があります。これは商品の単価です。 |
integrationAttributes |
ダウンストリーム統合に使用される、このエンティティに関連付けられたメタデータ。 |
SuggestedModifiers
お客様に提案する修飾子のリスト。
| JSON 表現 |
|---|
{
"modifiers": [
{
object ( |
| フィールド | |
|---|---|
modifiers[] |
お客様に提案する修飾子。 |
parentUid |
修飾子を適用する親アイテム/修飾子の一意の識別子。 |
SuggestedModifier
お客様に提案する修飾子。
| JSON 表現 |
|---|
{ "modifierId": string, "modifierGroupId": string, "modifierGroupDisplayName": string, "displayName": string, "image": { object ( |
| フィールド | |
|---|---|
modifierId |
メニュー内の修飾子の ID。 |
modifierGroupId |
提案が承認された場合に、この修飾子を追加する修飾子グループの ID。 |
modifierGroupDisplayName |
この修飾子グループが属する修飾子グループの表示名。 |
displayName |
ユーザー インターフェースに表示される、人が読める形式の名前。 |
image |
UI でこの項目に表示する画像。 |
priceAdjustment |
この修飾子に関連付けられている価格調整(ある場合)。これは修飾子の単価です。 |
integrationAttributes |
ダウンストリーム統合に使用される、このエンティティに関連付けられたメタデータ。 |
alreadyIncluded |
この修飾子がすでに注文に含まれているかどうか。 |
SuggestedModifierGroups
お客様に提案する修飾子グループのリスト。
| JSON 表現 |
|---|
{
"modifierGroups": [
{
object ( |
| フィールド | |
|---|---|
modifierGroups[] |
お客様に提案する修飾子グループ。 |
SuggestedModGroup
お客様に提案する修飾子グループ。
| JSON 表現 |
|---|
{
"modifierGroupId": string,
"displayName": string,
"modifiers": [
{
object ( |
| フィールド | |
|---|---|
modifierGroupId |
メニュー内の修飾子グループの ID。 |
displayName |
修飾子グループの表示名。 |
modifiers[] |
このグループの修飾子。 |
maxSelectionCount |
このグループから選択できる修飾子の最大数。 |
minSelectionCount |
このグループから選択する必要がある修飾子の最小数。 |
maxSelectionCountPerModifier |
このグループ内で各修飾子を適用できる回数を制限します。 |
SentimentMeasurement
このターンで測定されたリアルタイムの感情スコア。
| JSON 表現 |
|---|
{ "score": number, "magnitude": number } |
| フィールド | |
|---|---|
score |
省略可。-1.0(ネガティブな感情)から 1.0(ポジティブな感情)の間の感情スコア。 |
magnitude |
省略可。スコアに関係なく、感情の大きさ。 |
TurnCompleted
この型にはフィールドがありません。
Food AI エージェントが現在の会話ターンの終了を検出し、このターンではこれ以上出力しないことを示します。
EndSession
エージェントがセッションを終了したことを示します。終了理由は、セッションが正常に完了した(ユーザーが「さようなら」と言ったなど)か、)またはエージェントのエスカレーション。
| JSON 表現 |
|---|
{ "type": enum ( |
| フィールド | |
|---|---|
type |
セッション終了イベントのタイプ。 |
reason |
セッションを終了する理由。 |
posResponse |
省略可。注文のチェックインからの POS レスポンス(省略可)。これは、POS 取引ステータスを表す不透明な文字列ペイロードです。 |
agentResponse |
省略可。ユーザーに読み上げたり表示したりする最終的なエージェントのレスポンス メッセージ(省略可)。 |
storeSchedule |
省略可。店舗のスケジュール。終了タイプが STORE_CLOSED の場合にのみ設定されます。 |
EndType
セッション終了イベントのタイプ。
| 列挙型 | |
|---|---|
END_TYPE_UNSPECIFIED |
終了タイプが指定されていません。 |
DRIVE_OFF |
お客様が車で走り去った。 |
AGENT_ESCALATION |
エージェントがセッションを人間のエージェントにエスカレーションしました。 |
CREW_INTERJECTION |
クルー メンバーがセッションに介入しました。 |
ORDER_COMPLETED |
注文は正常に完了しており、追加の対応は不要です。 |
PAYMENT_FLOW_SUCCESS |
お支払いフローは正常に完了しました。これ以上の対応は必要ありません。 |
PAYMENT_FLOW_FAILURE |
支払いフローが失敗しました。 |
CLIENT_ESCALATION |
クライアントがセッションを人間のエージェントにエスカレーションしました。 |
CALLER_HANGUP |
お客様が途中で電話を切った。 |
REQUESTED_CHECKOUT |
お客様からチェックアウトをリクエストされました。 |
REQUESTED_ORDER_STATUS |
お客様から注文ステータスについてお問い合わせがありました。 |
STORE_CLOSED |
ストアは閉鎖されています。 |