Projetos
Um projeto é o limite de propriedade e URL para datasets, jobs, aliases hospedados e inferência. As rotas de projeto exigem autenticação e propriedade; o acesso público ou compartilhado é concedido no alias, não tornando o projeto público.
Endpoints
GET /api/v1/projects
POST /api/v1/projects
GET /api/v1/projects/{owner_slug}/{project_slug}
PUT /api/v1/projects/{owner_slug}/{project_slug}
GET /api/v1/projects/{owner_slug}/{project_slug}/tags
POST /api/v1/projects/{owner_slug}/{project_slug}/archive
POST /api/v1/projects/{owner_slug}/{project_slug}/unarchive
Crie um projeto de texto com:
{
"name": "Suporte",
"description": "Conversas e modelos de suporte",
"type": "text",
"inference_save_percent": 0.0
}
Apesar do nome histórico, inference_save_percent é uma fração de
probabilidade entre 0 e 1: 0.25 amostra aproximadamente um quarto das
requisições elegíveis feitas pelo proprietário. Prompts de chamadores públicos
ou com compartilhamento nunca são salvos automaticamente no dataset do dono.
Tipos de projeto
O type de um projeto é escolhido na criação e nunca muda:
text: datasets de chats, modelos de geração de texto ajustados, chat e completions de texto.embedding: datasets de pares de treinamento, modelos de embeddings ajustados,/embeddings, o Playground de embeddings, a Busca e o Feedback de busca. Comece pelo Início rápido de embeddings.
Os dois tipos compartilham as mesmas rotas de projetos, datasets, jobs de
treinamento, modelos hospedados e cobrança; uma rota que só um tipo oferece
responde ao outro com 409 project_capability_mismatch.
GET /api/v1/projects/capabilities lista os tipos que você pode criar e o que
cada um oferece. inference_save_percent vale só para projetos de texto:
chamadas de embeddings nunca são salvas.
Listagem e resumos
GET /api/v1/projects sempre retorna {projects,next_cursor,total_count}.
Use limit (25 por padrão, máximo 100) e cursor diretamente. Os cursores
pertencem à conta e ao filtro de arquivados. Projetos arquivados são omitidos,
exceto com include_archived=true. Os cards incluem contagens de chats, jobs e modelos.
Leituras da conta inteira são separadas:
GET /api/v1/dashboardtraz um resumo global de tamanho fixo.GET /api/v1/modelslista aliases acessíveis entre projetos, com cursor.GET /api/v1/activitylista o histórico paginado de criação de jobs e aliases do proprietário.
Arquive em vez de excluir
Arquivar é idempotente e reversível. Preserva chats, registros imutáveis de
treino, aliases, artefatos e cobrança, enquanto torna o projeto somente leitura.
O arquivo retorna 409 com detail.code = "project_has_nonterminal_work" se
houver treino pendente, em execução ou aguardando cancelamento. Cancele e
encerre esse trabalho primeiro.
Projetos arquivados não ocupam vaga ativa. Restaurar ainda pode retornar 409
se exceder a cota da conta. Inferência no projeto arquivado retorna 404 com
error.code = "project_archived" e sem Retry-After.
A criação de projetos aceita somente text (padrão) ou embedding. Projetos
multimodais históricos podem ser lidos, mas esse tipo não é oferecido na criação.