X-On-Behalf-Of e ambos gravam eventos de auditoria JSONL indexados pelo mesmo response_id e conversation_id.
Para o padrão básico de requisição, veja gerar uma resposta.
Se precisar criar ou gerenciar um ID de conversa reutilizável por usuário final, veja gerenciar conversas.
Arquitetura
Mensagem do usuário final no WhatsApp -> Webhook do WhatsApp recebe a mensagem -> seu servidor chamamka1.llm.responses.create com store: true
-> seu servidor registra o objeto de resposta completo armazenado e o response_id
-> seu servidor envia a resposta de volta ao WhatsApp
-> seu aplicativo web solicita o mesmo response_id do seu backend
-> seu backend chama mka1.llm.responses.get
-> seu backend registra a recuperação web com o mesmo response_id e conversation_id
Mantenha sua chave de API no servidor. O navegador deve chamar sua rota backend, não a API MKA1 diretamente.
Use um único ID de usuário final em ambos os canais
O valor deX-On-Behalf-Of é a chave que conecta os canais no nível do usuário final.
Use o mesmo ID de usuário final estável em ambos os sistemas.
Você também deve usar a mesma chave de API MKA1 compartilhada em ambos.
Exemplos:
- O webhook do WhatsApp mapeia um número de telefone para
user_123. - A sessão web para a mesma pessoa também resolve para
user_123. - Ambos os sistemas autenticam com a mesma chave de API MKA1.
X-On-Behalf-Of mudar entre os canais, os logs deixam de ser auditáveis como uma única conversa de usuário final.
Se a chave de API mudar entre os canais, as requisições pertencem a usuários diferentes da API MKA1, mesmo quando X-On-Behalf-Of coincide.
Sistema WhatsApp: armazene e registre a resposta
Comece com um wrapper SDK compartilhado que ambos os sistemas utilizam. Isso mantém autenticação, criação de conversa, recuperação e criação de resposta consistentes entre os canais.- O WhatsApp é o canal de entrada.
- A requisição é armazenada com
store: true. - O objeto de resposta completo é registrado em formato aberto.
- O log inclui
response_id,conversation_ideend_user_id.
Sistema web: recupere a mesma resposta armazenada
O aplicativo web deve chamar seu próprio backend. Esse backend pode recuperar a mesma resposta commka1.llm.responses.get e registrar a recuperação como um evento do segundo canal.
- O aplicativo web é um canal separado do WhatsApp.
- Ele recupera a mesma resposta MKA1 armazenada pelo
response_id. - Ele registra essa recuperação no mesmo fluxo de auditoria JSONL.
- O objeto recuperado ainda mantém o mesmo vínculo de usuário final e conversa.
Exportação unificada de auditoria em formato aberto
Exemplo de exportação:Requisito de autenticação para logs compartilhados
Para esta demonstração multicanal, todos os itens a seguir devem coincidir entre os sistemas WhatsApp e web:- a mesma chave de API MKA1
- o mesmo ID de usuário final
X-On-Behalf-Of - o mesmo
response_idarmazenado - o mesmo
conversation_idquando você usa conversas