Skip to content

Sites ​

A chave cvk_... nunca pode ir para o navegador. Quem abre a página consegue ler qualquer coisa que o seu JavaScript recebe, e com a chave alguém usaria os agentes e gastaria os créditos do cliente como quiser. Por isso a API também não aceita chamadas feitas direto de uma página: o navegador bloqueia a resposta (CORS) de qualquer site que não esteja na lista de origens da Cavori.

Use um servidor no meio ​

O site fala com o seu servidor, e o seu servidor fala com a API da Cavori levando a chave:

text
Navegador  ->  Seu servidor  ->  api.cavori.com.br
(página)       (guarda a chave)   (Authorization: Bearer cvk_...)

O seu servidor faz o que o navegador não pode:

  1. Identifica quem está no site (login, sessão ou um id anônimo que você gera) e usa isso como external_user_id.
  2. Abre a conversa uma vez por pessoa (POST /v1/conversations) e guarda o id devolvido.
  3. A cada mensagem da pessoa, chama POST /v1/chat/completions com a chave e devolve o texto, ou o stream, para a página.
  4. Se usa webhooks, recebe as respostas da equipe e as repassa à página (por exemplo, por SSE ou websocket do seu servidor).

Alguns cuidados:

  • Não deixe a página escolher o external_user_id. Ele define de quem é o histórico e a memória. Derive-o da sessão no servidor, senão qualquer visitante poderia ler a conversa de outro mudando o valor.
  • Limite o uso por visitante. A chave é compartilhada por todos os seus visitantes e tem limites por minuto. Aplique um limite por pessoa no seu servidor para que um visitante não esgote a cota dos outros.
  • Valide o tamanho e o conteúdo da mensagem antes de repassar.
  • Se a chave vazar, revogue e troque na hora.

Sem servidor próprio ​

Esta API foi feita para quem tem um backend. Quem não tem um servidor, ou não quer manter um só para isso, não deve colocar a chave na página: use o chat no site da Cavori, que dispensa o backend e não expõe chave nenhuma.