Method: projects.locations.apps.sessions.streamRunSession

Inicia uma interação de turno único com o agente do CES. Usa streaming do lado do servidor para fornecer resultados incrementais e respostas parciais à medida que são gerados.

Por padrão, as respostas completas (por exemplo, mensagens de callbacks ou respostas completas de LLM) são enviadas ao cliente assim que ficam disponíveis. Para ativar o streaming de blocos de texto individuais diretamente do modelo, defina enableTextStreaming como verdadeiro.

Solicitação HTTP

POST https://ces.googleapis.com/v1beta/{config.session=projects/*/locations/*/apps/*/sessions/*}:streamRunSession

O URL usa a sintaxe de transcodificação gRPC.

Parâmetros de caminho

Parâmetros
config.session

string

Obrigatório. O identificador exclusivo da sessão. Formato: projects/{project}/locations/{location}/apps/{app}/sessions/{session}

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "config": {
    "session": string,
    "inputAudioConfig": {
      "audioEncoding": enum (AudioEncoding),
      "sampleRateHertz": integer,
      "noiseSuppressionLevel": string
    },
    "outputAudioConfig": {
      "audioEncoding": enum (AudioEncoding),
      "sampleRateHertz": integer
    },
    "historicalContexts": [
      {
        "role": string,
        "chunks": [
          {
            object (Chunk)
          }
        ],
        "eventTime": string
      }
    ],
    "entryAgent": string,
    "deployment": string,
    "timeZone": string,
    "useToolFakes": boolean,
    "remoteDialogflowQueryParameters": {
      "webhookHeaders": {
        string: string,
        ...
      },
      "payload": {
        object
      },
      "endUserMetadata": {
        object
      }
    },
    "enableTextStreaming": boolean,
    "includeLlmThoughtSummary": boolean,
    "excludeDiagnosticInfo": boolean,
    "includeProgressUpdate": boolean
  },
  "inputs": [
    {
      object (SessionInput)
    }
  ]
}
Campos
config.inputAudioConfig

object (InputAudioConfig)

Opcional. Configuração para processar o áudio de entrada.

config.outputAudioConfig

object (OutputAudioConfig)

Opcional. Configuração para gerar o áudio de saída.

config.historicalContexts[]

object (Message)

Opcional. O contexto histórico da sessão, incluindo entradas do usuário, respostas do agente e outras mensagens. Normalmente, o agente do CES gerencia a sessão automaticamente, então o cliente não precisa preencher esse campo de forma explícita. No entanto, o cliente pode, se quiser, substituir os contextos históricos para forçar o início da sessão em um determinado estado.

config.entryAgent

string

Opcional. O agente de entrada para lidar com a sessão. Se não for especificado, a sessão será processada pelo root agent do app. Formato: projects/{project}/locations/{location}/apps/{app}/agents/{agent}

config.deployment

string

Opcional. A implantação do app a ser usada na sessão. Formato: projects/{project}/locations/{location}/apps/{app}/deployments/{deployment}

config.timeZone

string

Opcional. O fuso horário do usuário. Se fornecido, o agente vai usar o fuso horário para variáveis relacionadas a data e hora. Caso contrário, o agente vai usar o fuso horário especificado em App.time_zone_settings.

O formato é o fuso horário do banco de dados de fusos horários da IANA, por exemplo, "America/Los_Angeles".

config.useToolFakes

boolean

Opcional. Se as simulações de ferramentas devem ser usadas na sessão. Se esse campo for definido, o agente vai tentar usar ferramentas falsas em vez de chamar as ferramentas reais.

config.remoteDialogflowQueryParameters

object (SessionConfig.RemoteDialogflowQueryParameters)

Opcional. QueryParameters para enviar ao agente remoto do Dialogflow quando o controle da sessão for transferido para o agente remoto.

config.enableTextStreaming

boolean

Opcional. Se a saída de texto do modelo deve ser transmitida ao cliente de forma incremental conforme é gerada. O valor padrão é false.

  • Quando desativada, a saída de texto do modelo é armazenada em buffer, e cada saída de texto enviada ao cliente é uma frase completa. Os clientes podem renderizar cada saída de texto em uma nova linha.
  • Quando ativada, cada saída de texto pode conter apenas parte de uma frase. Os clientes precisam concatenar saídas de texto consecutivas para renderizar a resposta completa.

OBSERVAÇÃO: esse recurso só está disponível para sessões de texto (não de voz) que usam sessions.streamRunSession ou BidiRunSession.

config.includeLlmThoughtSummary

boolean

Opcional. Se os resumos de pensamento do LLM devem ser incluídos nas saídas da sessão.

config.excludeDiagnosticInfo

boolean

Opcional. Se as informações de diagnóstico devem ser excluídas da saída da sessão.

config.includeProgressUpdate

boolean

Opcional. Se as atualizações de processamento intermediário devem ser incluídas para o cliente. Se ativada, a atualização será enviada de volta em SessionOutput.progress.

inputs[]

object (SessionInput)

Obrigatório. Entradas para a sessão.

Corpo da resposta

Se a solicitação for bem-sucedida, o corpo da resposta vai conter um fluxo de instâncias de RunSessionResponse.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

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

Para mais informações, consulte Authentication Overview.

Permissões do IAM

Requer a seguinte permissão do IAM no recurso session:

  • ces.sessions.runSession

Para mais informações, consulte a documentação do IAM.