Pular para o conteúdo principal
Um Canvas pode receber uma conversa além das suas variáveis. O array messages carrega esse histórico: o que o usuário disse e o que o assistente respondeu antes, em ordem. Use-o para construir experiências de chat em cima de um Canvas, ou para dar ao modelo um contexto que não cabe em uma variável. messages é opcional e funciona junto com variables: o prompt do Canvas continua sendo renderizado com as variáveis, e as mensagens são acrescentadas à conversa.

Formato da mensagem

Cada mensagem tem um role e um content: A ordem importa. O array é o fluxo cronológico da conversa, então coloque a mensagem mais antiga primeiro. Um histórico típico alterna mensagens user e assistant.
A resposta volta como sempre em choices[0].message.content. Para continuar a conversa, acrescente a resposta do assistente e a próxima mensagem do usuário ao array e chame de novo: a API não guarda a conversa entre chamadas.

Arquivos e imagens nas mensagens

Além de uma string, content aceita uma referência de arquivo com file_url, nos mesmos formatos aceitos pelas variáveis de arquivo:
Corpo HTTP
O conteúdo também pode ser escrito como partes de conteúdo, o formato usado quando uma execução é registrada: uma parte de texto { "type": "text", "text": "…" } ou uma parte de imagem { "type": "image_url", "image_url": { "url": "…", "detail": "auto" | "high" | "low" } }.
Arquivos enviados em mensagens aparecem na execução registrada em input_content.files com used_at: "messages" e um name como message-0, em que o número é a posição da mensagem no array.
Tanto as messages quanto as variables de uma execução ficam guardadas em input_content e raw_input, então você pode inspecionar exatamente o que foi enviado ao consultar ou listar execuções.