Method: projects.locations.sessions.processOrder

単一のターンロジックを実行して、ユーザー入力を処理し、結果を返します。

HTTP リクエスト

POST https://foodorderingaiagent.googleapis.com/v1/{config.session=projects/*/locations/*/sessions/*}:processOrder

この URL では gRPC Transcoding 構文を使用します。

パスパラメータ

パラメータ
config.session

string

必須。注文のセッション。形式: projects/{project}/locations/{location}/sessions/{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 (SessionMode),
    "channelType": enum (ChannelType),
    "enableListenOnlyDualChannel": boolean,
    "testSessionStartTime": string
  },
  "turnType": enum (TurnType),

  // Union field input can be only one of the following:
  "textInput": {
    object (TextInput)
  },
  "audioInput": {
    object (AudioInput)
  },
  "eventInput": {
    object (EventInput)
  },
  "clientExecutionResult": {
    object (ClientExecutionResult)
  },
  "blobInput": {
    object (Blob)
  }
  // End of list of possible types for union field input.
}
フィールド
config.store

string

必須。注文が行われる店舗。形式: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

config.laneId

string

省略可。特定のドライブスルー レーンの ID。

config.enableEchoCancellation

boolean

省略可。セッションのエコー キャンセラを有効にするかどうか。有効になっている場合、クライアントは AudioInput で customerAudio と crewAudio を提供する必要があります。

config.daypartId

string

省略可。朝食、ランチ、ディナーなど、フード メニューの時間帯。注文に使用するメニューを特定するために使用されます。

config.featureGate

object (FeatureGate)

省略可。セッションのフィーチャー ゲート。これは、セッションの機能を有効または無効にするために使用されます。

config.clientAppInfo

object (ClientAppInfo)

省略可。クライアント アプリケーションとデバイス環境に関する情報。

config.mode

enum (SessionMode)

省略可。セッションのモード。

config.channelType

enum (ChannelType)

省略可。エージェントのコミュニケーションに使用されるチャネルのタイプ。

config.enableListenOnlyDualChannel

boolean

省略可。セッションでリスニング専用のデュアル チャンネルを有効にするかどうか。有効にすると、クライアントは AudioInput で customerAudio と crewAudio を提供し、CES はメディア処理サーバーで EAC と合計を行います。

config.testSessionStartTime

string (Timestamp format)

省略可。テストまたは評価目的で使用されるセッションの開始時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

turnType

enum (TurnType)

省略可。セッションのライフサイクルにおけるリクエストの位置を明示的に示します。クライアントが、初回セッション設定変数が挿入されるタイミングを決定論的に制御できるようにします。

共用体フィールド input。クライアントからの入力。input は次のいずれかになります。
textInput

object (TextInput)

クライアントからのテキスト入力。

audioInput

object (AudioInput)

クライアントからの音声入力。

eventInput

object (EventInput)

クライアントからのイベント入力。

clientExecutionResult

object (ClientExecutionResult)

クライアント実行リクエストの結果。

blobInput

object (Blob)

汎用バイナリデータ入力。http://google3/google/cloud/ces/v1main/session_service.proto?l=720 をミラーリングします。

レスポンスの本文

FoodOrderingService.ProcessOrder に対するレスポンス メッセージ。機能的には、ストリーミング固有のものを除いた BidiProcessOrderResponse のフィールドが含まれます。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "responses": [
    {
      object (BidiProcessOrderResponse)
    }
  ]
}
フィールド
responses[]

object (BidiProcessOrderResponse)

出力専用。リクエストに対するエージェントのレスポンスのリスト。順序どおりに返されます。

認可スコープ

次の OAuth スコープが必要です。

  • https://www.googleapis.com/auth/cloud-platform

詳細については、Authentication Overview をご覧ください。

TextInput

クライアントからのテキスト入力。音声の代わりに、クライアントがテキスト入力をエージェントに送信することもできます。クライアントはテキスト入力と音声入力のどちらか一方を使用する必要があります。両方を使用することはできません。

JSON 表現
{
  "text": string
}
フィールド
text

string

必須。クライアントからのテキスト発話。

AudioInput

クライアントからの音声入力。入力音声には、お客様、乗務員などの複数のチャンネルが含まれている場合があります。これらはすべて同期され、構成で指定された形式である必要があります。音声ヘッダーは含めないでください。デフォルトでは、音声は 16 ビットのリニア PCM 音声エンコードと 16, 000 Hz のサンプルレートを使用する必要があります。すべてのチャネルの合計バイト数は 25,600 バイト未満にする必要があります。

JSON 表現
{
  "customerAudio": string,
  "crewAudio": string
}
フィールド
customerAudio

string (bytes format)

必須。お客様の音声データ。

Base64 でエンコードされた文字列。

crewAudio

string (bytes format)

省略可。乗組員の音声データ。これは、お客様と同じレーンにいるクルー メンバー用のオプションの音声チャンネルで、エコー キャンセラ の基準音声として使用されます。

Base64 でエンコードされた文字列。

EventInput

クライアントからのイベント入力。これは、エージェント内の特定のイベントをトリガーするために使用されます。

JSON 表現
{

  // Union field event can be only one of the following:
  "driveOffEvent": {
    object (DriveOffEvent)
  },
  "crewInterjectionEvent": {
    object (CrewInterjectionEvent)
  },
  "updateOrderStateEvent": {
    object (OrderStateUpdateEvent)
  },
  "clientEscalationEvent": {
    object (ClientEscalationEvent)
  },
  "callerHangupEvent": {
    object (CallerHangupEvent)
  },
  "posErrorInput": {
    object (PosErrorEvent)
  }
  // End of list of possible types for union field event.
}
フィールド
共用体フィールド event。次の ID: 10 トリガーするイベント。event は次のいずれかになります。
driveOffEvent

object (DriveOffEvent)

ドライブオフ イベント。

crewInterjectionEvent

object (CrewInterjectionEvent)

乗組員の介入イベント。

updateOrderStateEvent

object (OrderStateUpdateEvent)

注文状態のクライアントサイドの更新。

clientEscalationEvent

object (ClientEscalationEvent)

クライアントサイドのエスカレーション イベント。

callerHangupEvent

object (CallerHangupEvent)

省略可。通話元のハングアップ イベント。

posErrorInput

object (PosErrorEvent)

省略可。POS エラーイベント。

DriveOffEvent

ドライブオフ イベント。お客様が運転を開始したことを示します。このイベントの後にセッションが終了します。

JSON 表現
{
  "reason": string
}
フィールド
reason

string

省略可。ドライブオフの理由(「注文完了」、「予期しないドライブオフ」など)。

CrewInterjectionEvent

乗組員の介入イベント。これは、クルー メンバーがセッションに介入したことを示します。このイベントの後、セッションは閉じられます。

JSON 表現
{
  "mode": string
}
フィールド
mode

string

省略可。乗務員が介入したモード(「ヘッドセット」、「POS」など)。

OrderStateUpdateEvent

注文ステータスの更新リクエスト。このイベントは、クライアント側で注文が更新されたとき(従来のタッチ インターフェースでアイテムが追加または削除されたときなど)に送信する必要があります。

JSON 表現
{
  "order": {
    object (Order)
  }
}
フィールド
order

object (Order)

必須。このセッションに関連付けられた注文の更新された状態。

ClientEscalationEvent

クライアントがセッションを人間のエージェントにエスカレーションしていることを示します。

JSON 表現
{
  "reason": string
}
フィールド
reason

string

省略可。クライアント エスカレーションの理由(「payment-declined」、「pos-error」、「integration-error」など)。

CallerHangupEvent

この型にはフィールドがありません。

お客様が通話を途中で切ったことを示します(AI への嫌悪感など)。

PosErrorEvent

POS 固有のエラー。

JSON 表現
{
  "errorMessages": [
    string
  ],
  "affectedItemUids": [
    string
  ],
  "affectedExternalIds": [
    string
  ],
  "metadata": {
    string: string,
    ...
  }
}
フィールド
errorMessages[]

string

省略可。エラーの説明(人が読める形式)のリスト。複数の問題が同時に発生した場合(複数の商品が在庫なしの場合など)や、1 つの複雑なエラーの詳細な内訳を提供するために、複数のエラー メッセージを指定できます。これらのメッセージは、エージェントがお客様に通知したり、ロギングに使用したりする場合があります。

affectedItemUids[]

string

省略可。エラーの原因となったデリバリー&テイクアウト AI エージェントによって生成された一意のアイテム UID。UpdatedOrderState.OrderItem.uid に対応します。

affectedExternalIds[]

string

省略可。エラーの原因となった外部 ID のリスト(メニューから)。POS の実際の代表者と一致する必要があります。通常は menu.proto の統合属性(ItemIntegrationAttributesModifierIntegrationAttributes など)にあります。

metadata

map (key: string, value: string)

省略可。デバッグまたはブランド固有のシグナリング用のフリーフォーム メタデータ。ブランド固有のエラーコードやカテゴリを渡すために使用できます(例: {"BRAND_ERROR_CODE": "OUT_OF_STOCK"})。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

ClientExecutionResult

クライアント実行リクエストの結果。

JSON 表現
{
  "executionId": string,

  // Union field response can be only one of the following:
  "finalizeOrderResponse": {
    object (FinalizeOrderResponse)
  },
  "orderPricesResponse": {
    object (OrderPricesResponse)
  },
  "validateDeliveryAddressResponse": {
    object (ValidateDeliveryAddressResponse)
  },
  "orderStatusResponse": {
    object (OrderStatusResponse)
  }
  // End of list of possible types for union field response.
}
フィールド
executionId

string

必須。この結果の実行リクエストの ID。

共用体フィールド response。実行の特定の結果。response は次のいずれかになります。
finalizeOrderResponse

object (FinalizeOrderResponse)

注文の確定結果。

orderPricesResponse

object (OrderPricesResponse)

注文価格の取得結果。

validateDeliveryAddressResponse

object (ValidateDeliveryAddressResponse)

お届け先住所の検証結果。

orderStatusResponse

object (OrderStatusResponse)

注文ステータスの取得結果。

FinalizeOrderResponse

注文の確定結果。

JSON 表現
{
  "paymentFlowEnabled": boolean,
  "paymentInfo": {
    object (PaymentInfo)
  },
  "totalAmountDue": {
    object (Money)
  },
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
フィールド
paymentFlowEnabled

boolean

省略可。エージェントで支払い処理フローを有効にするかどうか。

paymentInfo

object (PaymentInfo)

省略可。お客様のお支払い情報。paymentFlowEnabled が false の場合は no-op。

totalAmountDue

object (Money)

省略可。注文の合計請求金額。

orderPriceInfo

object (OrderPriceInfo)

省略可。注文の料金に関する詳細情報。

PaymentInfo

ユーザーのお支払い情報。

JSON 表現
{
  "creditCardLastFourDigits": string,
  "creditCardCvv": string,
  "paymentMethod": enum (PaymentMethod)
}
フィールド
creditCardLastFourDigits

string

省略可。クレジット カード番号の末尾 4 桁。これは、支払い段階でクレジット カード番号を確認するために使用されます。

creditCardCvv

string

省略可。クレジット カードの CVV。

paymentMethod

enum (PaymentMethod)

省略可。使用されたお支払い方法の種類。

PaymentMethod

お支払い方法の種類。

列挙型
PAYMENT_METHOD_UNSPECIFIED お支払い方法が指定されていません。
PAYMENT_METHOD_CREDIT_CARD クレジット カード。
PAYMENT_METHOD_CASH 現金。

OrderPricesResponse

注文価格の取得結果。

JSON 表現
{
  "success": boolean,
  "orderPriceInfo": {
    object (OrderPriceInfo)
  }
}
フィールド
success

boolean

必須。注文の価格が正常に取得されたかどうか。

orderPriceInfo

object (OrderPriceInfo)

省略可。すべての割引、手数料、税金などを適用した後の注文の合計金額

ValidateDeliveryAddressResponse

お届け先住所の検証結果。

JSON 表現
{
  "success": boolean,
  "validationStatus": enum (ValidationStatus)
}
フィールド
success

boolean

必須。検証がエラーなく完了したかどうか。

validationStatus

enum (ValidationStatus)

必須。お届け先住所の検証ステータス。

OrderStatusResponse

注文ステータスの取得結果。

JSON 表現
{
  "success": boolean
}
フィールド
success

boolean

必須。注文ステータスが正常に取得されたかどうか。

Blob

会話内の BLOB 入力または出力を表します。

JSON 表現
{
  "mimeType": string,
  "data": string
}
フィールド
mimeType

string

必須。ソースデータの IANA 標準 MIME タイプ。

data

string (bytes format)

必須。blob の未加工のバイト数。

Base64 でエンコードされた文字列。

構成

セッションとフード注文のプロパティの構成。接続の開始時に、クライアントはまず構成メッセージを送信する必要があります。これは、セッションを開始する他のリクエストよりも前に行う必要があります。クライアントが接続を解除した場合は、再接続時に同じ構成メッセージを繰り返す必要があります。

JSON 表現
{
  "session": string,
  "store": string,
  "laneId": string,
  "enableEchoCancellation": boolean,
  "daypartId": string,
  "featureGate": {
    object (FeatureGate)
  },
  "clientAppInfo": {
    object (ClientAppInfo)
  },
  "mode": enum (SessionMode),
  "channelType": enum (ChannelType),
  "enableListenOnlyDualChannel": boolean,
  "testSessionStartTime": string
}
フィールド
session

string

必須。注文のセッション。形式: projects/{project}/locations/{location}/sessions/{session}

store

string

必須。注文が行われる店舗。形式: projects/{project}/locations/{location}/brands/{brand}/stores/{store}

laneId

string

省略可。特定のドライブスルー レーンの ID。

enableEchoCancellation

boolean

省略可。セッションのエコー キャンセラを有効にするかどうか。有効になっている場合、クライアントは AudioInput で customerAudio と crewAudio を提供する必要があります。

daypartId

string

省略可。朝食、ランチ、ディナーなど、フード メニューの時間帯。注文に使用するメニューを特定するために使用されます。

featureGate

object (FeatureGate)

省略可。セッションのフィーチャー ゲート。これは、セッションの機能を有効または無効にするために使用されます。

clientAppInfo

object (ClientAppInfo)

省略可。クライアント アプリケーションとデバイス環境に関する情報。

mode

enum (SessionMode)

省略可。セッションのモード。

channelType

enum (ChannelType)

省略可。エージェントのコミュニケーションに使用されるチャネルのタイプ。

enableListenOnlyDualChannel

boolean

省略可。セッションでリスニング専用のデュアル チャンネルを有効にするかどうか。有効にすると、クライアントは AudioInput で customerAudio と crewAudio を提供し、CES はメディア処理サーバーで EAC と合計を行います。

testSessionStartTime

string (Timestamp format)

省略可。テストまたは評価目的で使用されるセッションの開始時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

FeatureGate

セッションのフィーチャー ゲート。これは、セッションの機能を有効または無効にするために使用されます。

JSON 表現
{
  "menuResponseEnabled": boolean,
  "updatedOrderStateEnabled": boolean,
  "enableOrderStatusRetrieval": boolean
}
フィールド
menuResponseEnabled

boolean

省略可。設定されている場合、メニューデータを BidiProcessOrderResponse でクライアントに返します。

updatedOrderStateEnabled

boolean

省略可。設定されている場合、legacyOrderStateResponse の代わりに updatedOrderState が返されます。

enableOrderStatusRetrieval

boolean

省略可。設定されている場合、エージェントは注文ステータスの取得をサポートします。

ClientAppInfo

クライアント アプリケーションとデバイス環境に関する情報。これは主にロギング、分析、デバッグに使用されます。

JSON 表現
{
  "deviceModel": string,
  "osVersion": string,
  "sdkVersion": string
}
フィールド
deviceModel

string

省略可。クライアントのデバイスモデル(「iPhone 13」、「Google Pixel 7」、「Kiosk v2」など)。

osVersion

string

省略可。クライアントのオペレーティング システムのバージョン(例: 「iOS 16.1」、「Android 13」)。

sdkVersion

string

省略可。クライアント SDK またはアプリケーション ソフトウェアのバージョン。

SessionMode

セッションのモード。

列挙型
SESSION_MODE_UNSPECIFIED セッション モードが指定されていません。
HYBRID セッションは音声とテキストの両方をサポートしています。これがデフォルトです。
TEXT セッションはテキストのみです。

TurnType

セッション内の単項リクエストのライフサイクル位置を表します。

列挙型
TURN_TYPE_UNSPECIFIED 右左折タイプが指定されていません。
INITIALIZE このリクエストが単項モードでセッションを初期化することを明示的に示します。設定すると、初回セッション変数(ストアのメタデータやメニューなど)が CES に挿入されます。
SUBSEQUENT 後続の会話ターンまたはセッション中の更新を明示的に示します。設定すると、入力トークンの爆発を防ぐために、初回セッション変数が省略されます。

BidiProcessOrderResponse

FoodOrderingService.BidiProcessOrder メソッドから返される最上位のメッセージ。

JSON 表現
{

  // Union field response can be only one of the following:
  "agentAudio": {
    object (AgentAudio)
  },
  "speechRecognition": {
    object (SpeechRecognition)
  },
  "legacyOrderStateResponse": {
    object
  },
  "interruptionSignal": {
    object (InterruptionSignal)
  },
  "agentEvent": {
    object (AgentEvent)
  },
  "clientExecutionRequest": {
    object (ClientExecutionRequest)
  },
  "updatedOrderState": {
    object (UpdatedOrderState)
  },
  "agentText": {
    object (AgentText)
  },
  "suggestedOptions": {
    object (SuggestedOptions)
  },
  "sentimentMeasurement": {
    object (SentimentMeasurement)
  },
  "turnCompleted": {
    object (TurnCompleted)
  },
  "endSession": {
    object (EndSession)
  }
  // End of list of possible types for union field response.
}
フィールド
共用体フィールド response。エージェントからのレスポンス。response は次のいずれかになります。
agentAudio

object (AgentAudio)

エージェントからの音声レスポンス。

speechRecognition

object (SpeechRecognition)

エージェントからの音声認識の結果。

legacyOrderStateResponse

object (Struct format)

セッションの以前の注文状態のレスポンス。

interruptionSignal

object (InterruptionSignal)

音声入力から割り込み信号が検出されました。

agentEvent

object (AgentEvent)

エージェントからのイベント。

clientExecutionRequest

object (ClientExecutionRequest)

リクエストはクライアントに転送されて実行されます。これは、注文へのコードの追加など、クライアントサイドの実行に使用されます。

updatedOrderState

object (UpdatedOrderState)

注文ステータスの更新を示します。注文の完全な状態が含まれます。

agentText

object (AgentText)

エージェントからのテキスト レスポンス。

suggestedOptions

object (SuggestedOptions)

お客様に提案するオプション。

sentimentMeasurement

object (SentimentMeasurement)

このターンで測定されたリアルタイムの感情スコア。

turnCompleted

object (TurnCompleted)

完了したメッセージのターン。

endSession

object (EndSession)

セッションが終了し、これが最後のターンになることを示します。

エージェントは、現在のターンの保留中のレスポンスをすべて送信してから、最終的な turnCompleted メッセージを送信します。エージェントは新しいターンを開始しません。たとえば、2 ターンのセッションは次のようになります。

  • ターン 1
  • お客様の入力 1
  • ... エージェントのレスポンスと注文ステータス メッセージ
  • turnCompleted
  • ターン 2
  • お客様の入力 2
  • ... エージェントのレスポンスと注文ステータス メッセージ
  • endSession
  • ... エージェントの回答と注文ステータスのメッセージを保留中
  • turnCompleted

AgentAudio

エージェントからの音声レスポンス。

JSON 表現
{
  "agentAudio": string
}
フィールド
agentAudio

string (bytes format)

エージェントからの音声データ。

Base64 でエンコードされた文字列。

SpeechRecognition

エージェントからの音声認識の結果。

JSON 表現
{
  "transcript": string,
  "languageCode": string,
  "isFinal": boolean
}
フィールド
transcript

string

検出された言語の音声入力から文字変換されたテキスト。

languageCode

string

文字起こしの言語コード。言語コードは、「en-US」などの BCP-47 形式にする必要があります。

isFinal

boolean

これがターンの最終的な文字起こしであるかどうかを示します。

InterruptionSignal

この型にはフィールドがありません。

エージェントの音声レスポンスが中断されたことを示します(エンドユーザーの割り込みなど)。クライアントは直ちに再生を停止する必要があります。

AgentEvent

クライアントがアクションを実行する必要があるエージェントからの特別イベント。

JSON 表現
{

  // Union field event can be only one of the following:
  "restartOrder": {
    object (RestartOrder)
  }
  // End of list of possible types for union field event.
}
フィールド
共用体フィールド event。エージェントからのイベント。event は次のいずれかになります。
restartOrder

object (RestartOrder)

お客様から注文の再開をリクエストされました。

RestartOrder

お客様から注文のやり直しをリクエストされました。

JSON 表現
{
  "confirmationStep": boolean
}
フィールド
confirmationStep

boolean

エージェントがお客様に再起動のリクエストを確認しています。

ClientExecutionRequest

クライアント側でコマンドを実行するリクエスト。

JSON 表現
{
  "executionId": string,

  // Union field request can be only one of the following:
  "finalizeOrderRequest": {
    object (FinalizeOrderRequest)
  },
  "submitOrderRequest": {
    object (SubmitOrderRequest)
  },
  "orderPricesRequest": {
    object (OrderPricesRequest)
  },
  "validateDeliveryAddressRequest": {
    object (ValidateDeliveryAddressRequest)
  },
  "orderStatusRequest": {
    object (OrderStatusRequest)
  }
  // End of list of possible types for union field request.
}
フィールド
executionId

string

必須。この実行リクエストの一意の ID。

共用体フィールド request。実行する特定のリクエスト。request は次のいずれかになります。
finalizeOrderRequest

object (FinalizeOrderRequest)

注文を確定するためのリクエスト。

submitOrderRequest

object (SubmitOrderRequest)

注文を送信するリクエスト。

orderPricesRequest

object (OrderPricesRequest)

注文価格を取得するためのリクエスト。

validateDeliveryAddressRequest

object (ValidateDeliveryAddressRequest)

お届け先住所を検証するリクエスト。

orderStatusRequest

object (OrderStatusRequest)

注文ステータスを取得するリクエスト。

FinalizeOrderRequest

この型にはフィールドがありません。

注文を確定するリクエスト。通常、お客様が注文を完了して支払いを希望された場合に、エージェントが送信します。

SubmitOrderRequest

お客様から収集した必要な支払い情報がすべて含まれた、注文を送信するリクエスト。

JSON 表現
{
  "paymentInfo": {
    object (PaymentInfo)
  },
  "loyaltyInfo": {
    object (LoyaltyInfo)
  },
  "tipAmount": {
    object (Money)
  }
}
フィールド
paymentInfo

object (PaymentInfo)

必須。注文の支払い情報。

loyaltyInfo

object (LoyaltyInfo)

省略可。注文に使用されたポイント。

tipAmount

object (Money)

省略可。注文のチップ額。

LoyaltyInfo

お客様のロイヤルティ情報を表します。

JSON 表現
{
  "loyaltyAmount": {
    object (LoyaltyAmount)
  }
}
フィールド
loyaltyAmount

object (LoyaltyAmount)

必須。ポイントの金額。これは、ポイント残高またはポイント消費量です。

LoyaltyAmount

お客様のロイヤルティ額を表します。

JSON 表現
{
  "units": string
}
フィールド
units

string (int64 format)

必須。ポイント。

OrderPricesRequest

注文価格を取得するためのリクエスト。

JSON 表現
{
  "order": {
    object (Order)
  }
}
フィールド
order

object (Order)

省略可。価格を取得する注文。指定されていない場合、リクエストはセッション内の既存の注文/カートに対するものと想定できます。

ValidateDeliveryAddressRequest

セッション中に収集されたお届け先住所を検証するリクエスト。

JSON 表現
{
  "deliveryAddress": {
    object (DeliveryAddress)
  }
}
フィールド
deliveryAddress

object (DeliveryAddress)

必須。検証するお届け先住所。

OrderStatusRequest

この型にはフィールドがありません。

注文ステータスを取得するリクエスト。

UpdatedOrderState

注文ステータスの更新を表すエージェントから返されるイベント。

JSON 表現
{
  "order": {
    object (Order)
  },
  "changed": boolean
}
フィールド
order

object (Order)

このセッションに関連付けられた注文の更新された状態。

changed

boolean

出力専用。注文ステータスが更新されたかどうか。

AgentText

エージェントからのテキスト レスポンス。

JSON 表現
{
  "text": string
}
フィールド
text

string

エージェントからのテキスト レスポンス。

SuggestedOptions

お客様に提案するオプション。

JSON 表現
{
  "suggestedModifierGroups": {
    object (SuggestedModifierGroups)
  },

  // Union field suggested_options can be only one of the following:
  "suggestedItems": {
    object (SuggestedItems)
  },
  "suggestedModifiers": {
    object (SuggestedModifiers)
  }
  // End of list of possible types for union field suggested_options.
}
フィールド
suggestedModifierGroups

object (SuggestedModifierGroups)

提案された修飾子のグループ。

共用体フィールド suggested_options。候補が表示されます。suggested_options は次のいずれかになります。
suggestedItems

object (SuggestedItems)

お客様に提案するアイテムのリスト。

suggestedModifiers

object (SuggestedModifiers)

お客様に提案する修飾子のリスト。

SuggestedItems

お客様に提案するアイテムのリスト。

JSON 表現
{
  "items": [
    {
      object (SuggestedItem)
    }
  ]
}
フィールド
items[]

object (SuggestedItem)

お客様に提案するアイテム。

SuggestedItem

お客様に提案するアイテム。

JSON 表現
{
  "itemId": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "basePrice": {
    object (Money)
  },
  "integrationAttributes": {
    object (ItemIntegrationAttributes)
  }
}
フィールド
itemId

string

メニュー内のアイテムの ID。

displayName

string

ユーザー インターフェースに表示される、人が読める形式の名前。

image

object (Image)

UI でこの項目に表示する画像。

basePrice

object (Money)

商品アイテムの基本価格。これは、選択した修飾子によって影響を受ける可能性があります。これは商品の単価です。

integrationAttributes

object (ItemIntegrationAttributes)

ダウンストリーム統合に使用される、このエンティティに関連付けられたメタデータ。

SuggestedModifiers

お客様に提案する修飾子のリスト。

JSON 表現
{
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "parentUid": string
}
フィールド
modifiers[]

object (SuggestedModifier)

お客様に提案する修飾子。

parentUid

string

修飾子を適用する親アイテム/修飾子の一意の識別子。

SuggestedModifier

お客様に提案する修飾子。

JSON 表現
{
  "modifierId": string,
  "modifierGroupId": string,
  "modifierGroupDisplayName": string,
  "displayName": string,
  "image": {
    object (Image)
  },
  "priceAdjustment": {
    object (Money)
  },
  "integrationAttributes": {
    object (ModifierIntegrationAttributes)
  },
  "alreadyIncluded": boolean
}
フィールド
modifierId

string

メニュー内の修飾子の ID。

modifierGroupId

string

提案が承認された場合に、この修飾子を追加する修飾子グループの ID。

modifierGroupDisplayName

string

この修飾子グループが属する修飾子グループの表示名。

displayName

string

ユーザー インターフェースに表示される、人が読める形式の名前。

image

object (Image)

UI でこの項目に表示する画像。

priceAdjustment

object (Money)

この修飾子に関連付けられている価格調整(ある場合)。これは修飾子の単価です。

integrationAttributes

object (ModifierIntegrationAttributes)

ダウンストリーム統合に使用される、このエンティティに関連付けられたメタデータ。

alreadyIncluded

boolean

この修飾子がすでに注文に含まれているかどうか。

SuggestedModifierGroups

お客様に提案する修飾子グループのリスト。

JSON 表現
{
  "modifierGroups": [
    {
      object (SuggestedModGroup)
    }
  ]
}
フィールド
modifierGroups[]

object (SuggestedModGroup)

お客様に提案する修飾子グループ。

SuggestedModGroup

お客様に提案する修飾子グループ。

JSON 表現
{
  "modifierGroupId": string,
  "displayName": string,
  "modifiers": [
    {
      object (SuggestedModifier)
    }
  ],
  "maxSelectionCount": integer,
  "minSelectionCount": integer,
  "maxSelectionCountPerModifier": integer
}
フィールド
modifierGroupId

string

メニュー内の修飾子グループの ID。

displayName

string

修飾子グループの表示名。

modifiers[]

object (SuggestedModifier)

このグループの修飾子。

maxSelectionCount

integer

このグループから選択できる修飾子の最大数。

minSelectionCount

integer

このグループから選択する必要がある修飾子の最小数。

maxSelectionCountPerModifier

integer

このグループ内で各修飾子を適用できる回数を制限します。

SentimentMeasurement

このターンで測定されたリアルタイムの感情スコア。

JSON 表現
{
  "score": number,
  "magnitude": number
}
フィールド
score

number

省略可。-1.0(ネガティブな感情)から 1.0(ポジティブな感情)の間の感情スコア。

magnitude

number

省略可。スコアに関係なく、感情の大きさ。

TurnCompleted

この型にはフィールドがありません。

Food AI エージェントが現在の会話ターンの終了を検出し、このターンではこれ以上出力しないことを示します。

EndSession

エージェントがセッションを終了したことを示します。終了理由は、セッションが正常に完了した(ユーザーが「さようなら」と言ったなど)か、)またはエージェントのエスカレーション。

JSON 表現
{
  "type": enum (EndType),
  "reason": string,
  "posResponse": string,
  "agentResponse": string,
  "storeSchedule": {
    object (Schedule)
  }
}
フィールド
type

enum (EndType)

セッション終了イベントのタイプ。

reason

string

セッションを終了する理由。

posResponse

string

省略可。注文のチェックインからの POS レスポンス(省略可)。これは、POS 取引ステータスを表す不透明な文字列ペイロードです。

agentResponse

string

省略可。ユーザーに読み上げたり表示したりする最終的なエージェントのレスポンス メッセージ(省略可)。

storeSchedule

object (Schedule)

省略可。店舗のスケジュール。終了タイプが 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 ストアは閉鎖されています。