Pular para o conteúdo principal

Autenticação

A ReOpenly usa Logto para sessões do dashboard e chaves de API vinculadas à conta para acesso programático. Uma requisição autenticada identifica o chamador; o projeto e o modelo solicitados determinam o acesso e, em modelos compartilhados, qual conta paga. Os endpoints públicos de preços não exigem autenticação.

Sua conta ReOpenly é criada quando você entra pela primeira vez e aceita os Termos de Serviço na tela seguinte. Apenas entrar não cria nada: até que os Termos sejam aceitos, requisições dessa identidade retornam 403 com detail.code igual a registration_required, e o dashboard leva você à tela dos Termos.

Crie uma chave de API da conta​

Entre no dashboard da ReOpenly e abra Chaves de API pelo menu do perfil (/app/api-keys). A chave pertence à sua conta e pode ser usada nos projetos aos quais essa conta tem acesso; ela não fica presa a um projeto. O token completo fnf_... aparece somente na resposta ou no diálogo de criação. Armazene-o imediatamente em um gerenciador de segredos; a ReOpenly guarda um digest e não consegue mostrar o valor original depois.

Chaves de API agem como a sua conta na API de clientes. Elas não fazem login no app nem alteram configurações da conta, como senha ou escolhas de privacidade.

Envie a chave​

Use o header bearer padrão:

export REOPENLY_API_KEY='fnf_substitua_pela_chave_criada'

curl https://reopenly.com/api/v1/base-models \
-H "Authorization: Bearer ${REOPENLY_API_KEY}"

Não coloque a chave em um bundle do navegador, URL, nome de modelo ou log. Uma credencial ausente, inválida ou inativa pode retornar o formato detail do FastAPI; falhas do modelo e de serving usam o envelope OpenAI descrito em Erros e tentativas.

Consulte o catálogo do deployment​

GET /api/v1/base-models exige autenticação e retorna o catálogo de modelos e os limites de treinamento daquele deployment:

{
"base_models": [
{
"model_id": "<catalog-model-id>",
"display_name": "<nome de exibição>",
"size_label": "9B",
"hosted_lora": true,
"max_context_tokens": 4096
}
],
"limits": {
"max_seq_length": { "min": 512, "max": 4096, "default": 2048 },
"num_train_epochs": { "min": 0.01, "max": 20, "default": 3, "integer": false }
},
"profiles": {
"<catalog-model-id>": {
"id": "<training-profile-id>",
"version": 1,
"model_id": "<catalog-model-id>",
"limits": { "num_train_epochs": { "min": 0.01, "max": 20, "default": 3, "integer": false } }
}
}
}

A lista e os limites exatos são dados do deployment. Renderize o que o endpoint retornar em vez de copiar este exemplo para a lógica da aplicação.

Modelo de URL do projeto​

Para chamadas compatíveis com OpenAI, combine o proprietário e o slug do projeto com a origem do deployment:

export REOPENLY_OPENAI_BASE='https://reopenly.com/api/projects/acme/support/openai/v1'

curl "${REOPENLY_OPENAI_BASE}/models" \
-H "Authorization: Bearer ${REOPENLY_API_KEY}"

A lista de modelos considera o chamador: proprietários veem seus modelos; aliases compartilhados ou públicos aparecem somente quando o chamador pode usá-los.