Documentação da API

A API da Yris é compatível com o padrão OpenAI. Se o seu time já usa um cliente de IA, é só apontar a base_url para a Yris e seguir o trabalho — em português.

Comece em poucas linhas

Base URL e autenticação

Todas as chamadas vão para https://yrisia.com.br/v1 e usam uma chave no header Authorization: Bearer SUA_CHAVE_YRIS (sua chave começa com yris-sk-). Gere sua chave em Chaves de API (basta entrar com sua conta Google) — ou, para planos empresariais, fale com nosso time pelo formulário para empresas.

Fase experimental: a API tem limites de uso por minuto (veja Limites e erros) e um teto de chaves ativas por conta — a página Chaves de API avisa quando você chegar nele. Para uso em produção ou volumes maiores, fale com nosso time pelo formulário para empresas.

Python (biblioteca OpenAI)

from openai import OpenAI

client = OpenAI(
    api_key="SUA_CHAVE_YRIS",
    base_url="https://yrisia.com.br/v1",
)

resposta = client.chat.completions.create(
    model="yris-1",
    messages=[
        {"role": "user",
         "content": "Resuma este contrato em 3 tópicos."}
    ],
)

print(resposta.choices[0].message.content)

cURL

curl https://yrisia.com.br/v1/chat/completions \
  -H "Authorization: Bearer SUA_CHAVE_YRIS" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "yris-1",
    "messages": [{"role": "user", "content": "Olá, Yris!"}]
  }'

Endpoints

MétodoRotaDescrição
POST/v1/chat/completionsGera uma resposta a partir de uma lista de messages (formato OpenAI).
GET/v1/modelsLista os modelos disponíveis.

Parâmetros de /v1/chat/completions

CampoTipoDescrição
modelstringIdentificador do modelo (ex.: yris-1).
messagesarrayLista de {role, content} com user e assistant. Mensagens system são aceitas mas ignoradas: a Yris usa sempre a própria persona. Quer um comportamento específico? Coloque a instrução na primeira mensagem user ou fale com nosso time pelo formulário para empresas.
temperaturenumberOpcional. Criatividade da resposta: maior que 0 e até 5 (padrão 0,3). Valor 0 devolve 422.
max_tokensintegerOpcional. Limite de tokens gerados, de 1 a 8192.
streambooleanOpcional. true para receber a resposta em streaming (SSE). Padrão false.

Limites e erros

Os limites valem para POST /v1/chat/completions e contam numa janela deslizante de 60 segundos:

Códigos de erro

CódigoQuando aconteceO que fazer
400Nenhuma mensagem com role user, a última mensagem user está vazia, ou ela é grande demais para caber no contexto do modelo.Inclua ao menos uma mensagem user com conteúdo; se for longa demais, divida em partes.
401Chave ausente, fora do formato Bearer, inválida ou revogada.Confira o header Authorization: Bearer SUA_CHAVE_YRIS ou gere outra chave em Chaves de API.
422Parâmetro fora da faixa: temperature maior que 0 e até 5; max_tokens de 1 a 8192; top_k negativo; messages vazio; content que não é texto (listas de partes não são aceitas).Corrija o corpo da requisição. O campo detail da resposta aponta o campo com problema.
429Passou de um dos limites por minuto acima. A resposta traz o header Retry-After.Aguarde os segundos indicados em Retry-After e reenvie.
403O model pedido é de acesso restrito e a sua conta não tem permissão.Use yris-1 ou peça acesso.
500Falha inesperada ao gerar a resposta.Tente de novo; se persistir, fale com a gente.
503Modelo indisponível no momento.Tente de novo em instantes.

Exemplo de resposta 429:

HTTP/1.1 429 Too Many Requests
Retry-After: 12
Content-Type: application/json

{
  "detail": "Você passou de 60 mensagens por minuto neste endereço. Aguarde cerca de 12 s e tente de novo.",
  "retry_after": 12
}

Retry-After e retry_after trazem o mesmo número: os segundos que faltam para a requisição mais antiga sair da janela (no mínimo 1). No teto de 120 por IP o texto cita 120; no teto global de POST o detail muda para “Muitas requisições em pouco tempo a partir deste endereço. Aguarde cerca de 12 s e tente de novo.” Programe a espera pelo header, não pelo texto.

Lembrando: mensagens system continuam sendo ignoradas (a Yris usa sempre a própria persona). Ainda não suportamos tools/function calling nem outros campos além dos listados; campos desconhecidos são ignorados.
Streaming: suportado pelo campo stream — envie stream=true para receber Server-Sent Events com chunks chat.completion.chunk (formato OpenAI), encerrando com data: [DONE]. Com stream=false (padrão) a resposta vem completa, no formato chat.completion.
A Yris é experimental e pode se enganar. Valide as respostas antes de usá-las em fluxos que tomem decisões por conta própria e informe seus usuários de que o conteúdo foi gerado por IA.