ShvIA

Docs · Guias

Os seus dados

O que o gateway guarda sobre as suas chamadas, o que ele muda no seu texto, e quais modelos mantêm o seu prompt na infraestrutura do próprio operador. Os números são padrões que o operador de uma instalação pode mudar.

O que é guardado#

Você chamaUma conversa é guardadaA chamada é medida
POST /v1/chat/completions, /v1/messages, /v1/responsesnãosim
POST /api/v1/chatsimsim
POST /api/v1/agent/chatsimsim
POST /a2a/v1sim, na conta do administrador por trás do parsim
POST /api/v1/agent/runnãosim, cada rodada é uma chamada a modelo
POST /api/v1/mcpnãonão. As chamadas de ferramenta são registradas em log
PUT /api/v1/collections/{id}/documents/{document id}não, mas o texto do documento fica guardado até você apagá-lo. Veja coleçõesnão
/v1/audio/* e POST /api/v1/embeddingsnãonão

Uma conversa guardada pertence à sua conta e você pode lê-la, exportá-la e apagá-la. Veja conversas. Com uma chave de API, as conversas vão para um projeto chamado API. As conversas guardadas também ficam visíveis para você no app web.

O registro de medição#

Toda chamada de chat deixa um registro. É dele que saem as cotas, o uso e o custo. Ele contém:

  • quem chamou, quando, de qual endereço e com qual nome de cliente, e como se autenticou;
  • o modelo, o provedor, a localidade dos dados e a família do endpoint;
  • o número de tokens de entrada e de saída, o custo, o status e os tempos;
  • o texto da sua última mensagem, mascarado e encurtado: os dados pessoais são substituídos como descrito abaixo, e o texto é cortado em 8000 caracteres por padrão. As instruções de sistema, o histórico e qualquer contexto anexado não estão nele.

O registro não contém a resposta, só o tamanho dela. Os registros são mantidos por 180 dias por padrão, e os administradores da instalação podem lê-los.

Mascaramento de dados pessoais#

Quando uma chamada vai para um modelo que não está nos servidores do próprio operador, o texto de toda mensagem é examinado primeiro, e estes itens são trocados por um marcador antes de qualquer coisa sair:

EncontradoVira
endereços de e-mail[EMAIL]
números de CPF e CNPJ, formatados ou só dígitos[CPF], [CNPJ]
números de cartão[CARD]
telefones brasileiros[FONE]
códigos postais (CEP) e números de RG[CEP], [RG]
endereços de rede privada[IP]
senhas em URLs, e formatos de chave e de token como sk-… e JWTs[PASS], [TOKEN], [JWT]

O modelo nunca vê o original, então não pode repeti-lo, e não pode trabalhar com ele: pedir a um modelo de nuvem que valide um CPF não funciona. Isso vale para todo endpoint que pode alcançar um modelo de nuvem, os /v1 inclusive.

Saiba o que mais ele pega. Qualquer sequência de 8 dígitos ou mais, exceto uma de exatamente 9, pode ser tomada por um CEP, um telefone, um CPF, um cartão ou um CNPJ, então identificadores, timestamps Unix e o final de um UUID também podem ser reescritos, e o marcador nem sempre combina com o que o número era: um celular brasileiro escrito só com dígitos pode sair como [CPF]. Código ou dados que você envia a um modelo de nuvem podem sair alterados.

O que o mascaramento não cobre: os argumentos de chamadas de ferramenta, as definições de ferramenta e as imagens. E ele é uma rede de segurança, não uma garantia: mascare antes de enviar o que não pode sair.

O operador pode desligar o mascaramento para a instalação inteira. Não há chave para uma conta só nem para uma chamada só.

Localidade dos dados#

Cada modelo declara onde roda, em data_locality de GET /api/v1/profiles:

ValorSignificado
on_premo modelo roda na infraestrutura do próprio operador. O seu prompt fica lá
cloud_us, cloud_eu, cloud_br, cloud_cno prompt vai para um provedor de nuvem, classificado por região

Use-o para aplicar a sua própria política, por exemplo para permitir só on_prem em trabalho sensível. Os modelos cloud_cn são os que pedem mais cuidado.

Quatro regras decorrem disso:

  • Um combo não mantém um prompt nos servidores do operador: se o primeiro alvo falha, o seguinte pode ser um provedor de nuvem. O contexto da base de conhecimento e a memória ficam de fora de todos os alvos de um combo que tem um alvo na nuvem.
  • O contexto da base de conhecimento e a memória de longo prazo só podem ser acrescentados a um prompt quando o modelo está nos servidores do próprio operador.
  • Em POST /api/v1/chat, um turno que devia ficar nos servidores do operador ainda pode ir para a nuvem. Se esses servidores não podem ser alcançados antes de qualquer texto ser enviado, e você tem entre os favoritos um modelo de nuvem para o qual possui uma chave sua (colada, ou um login de assinatura), o turno recomeça nesse modelo, e o evento model diz target_source: api_do_usuario. O novo prompt não tem contexto da base de conhecimento nem memória, mas leva a conversa, com os dados pessoais mascarados. O turno de um bot nunca é movido, nem qualquer turno de uma conta com a proteção LGPD ligada. Ligue essa configuração na sua conta para proibir o movimento. agent/chat e os endpoints /v1 nunca levam um prompt on-premises para a nuvem.
  • A localidade é registrada em cada registro de medição, então dá para auditar depois qual chamada foi para onde.

O que o provedor vê#

Com a sua própria chave, o provedor vê o que você envia, sob o seu acordo com ele. A chave fica com você: o ShvIA a guarda criptografada e nunca a devolve. Veja provedores e as suas próprias chaves.

O que o chat nativo acrescenta a um prompt#

POST /api/v1/chat e POST /api/v1/agent/chat são o chat do produto, não uma completion pura. O servidor acrescenta as próprias instruções, a persona e as instruções que você salvou na sua conta, e as instruções e os arquivos do projeto em que a conversa está. Com a proteção LGPD ligada nas configurações da conta, a persona e o contexto do projeto não são enviados a modelos de nuvem. Os endpoints /v1 enviam só o que você envia, mais os trechos das coleções que você nomeia na chamada. Esses trechos seguem a mesma regra do contexto de projeto: um modelo de nuvem pode recebê-los, e com a proteção LGPD ligada a chamada é recusada.

Exclusão#

  • DELETE /api/v1/conversations/{id} esconde uma conversa. As mensagens dela são mantidas.
  • DELETE /api/v1/conversations/{id}/permanent apaga a conversa e as mensagens dela. Os registros de medição permanecem, com o vínculo à conversa removido, para que os seus números de uso não mudem.
  • Apagar uma conversa não apaga o que um provedor possa guardar sob o seu acordo com ele.