Pular para o conteúdo principal

Chats do dataset

Chats são exemplos de treino do projeto. Cada chat contém mensagens ordenadas system, user e assistant, além de nome, descrição e tags opcionais.

CRUD e endpoints em lote​

GET /api/v1/projects/{owner_slug}/{project_slug}/chats
POST /api/v1/projects/{owner_slug}/{project_slug}/chats
POST /api/v1/projects/{owner_slug}/{project_slug}/chats/bulk
GET /api/v1/projects/{owner_slug}/{project_slug}/chats/{chat_id}
PUT /api/v1/projects/{owner_slug}/{project_slug}/chats/{chat_id}
DELETE /api/v1/projects/{owner_slug}/{project_slug}/chats/{chat_id}
GET /api/v1/projects/{owner_slug}/{project_slug}/chats/categories
GET /api/v1/projects/{owner_slug}/{project_slug}/tags

Crie um exemplo:

{
"name": "trocas-001",
"description": "Resposta aprovada sobre trocas",
"tags": ["suporte"],
"messages": [
{"role": "user", "text": "Posso trocar isto?"},
{"role": "assistant", "text": "Sim, em até 30 dias."}
]
}

Listagem e detalhe incluem message_count calculado, updated_at durável e source anulável. A origem é csv, api, editor ou playground; linhas antigas podem ter null. Escritas por chave de API são classificadas pelo servidor e não podem falsificar a proveniência.

Inferências de texto salvas automaticamente pelo endpoint compatível com OpenAI têm source=api e as tags inference e model:<referência do modelo>. Elas seguem a amostragem do proprietário e nunca capturam chamadas de terceiros em modelos compartilhados/públicos. Um salvamento manual do Playground usa source=playground. Origens históricas ausentes continuam null; nomes e tags editáveis não servem para deduzir a origem.

A lista sempre usa páginas limitadas por cursor, sem parâmetro de ativação. page e page_size não fazem parte deste contrato:

GET .../chats?limit=25
GET .../chats?limit=25&cursor=<next_cursor>
GET .../chats?limit=25&before=<previous_cursor>
GET .../chats?limit=25&boundary=last

cursor, before e boundary são mutuamente exclusivos e opacos. Os cursores pertencem ao projeto. A resposta inclui next_cursor, previous_cursor, is_last_page, total_count, total_count_capped e search_applied. Contagens são limitadas a 10.000 para não percorrer datasets arbitrariamente grandes.

Filtros rodam antes da paginação. A busca cobre nome e texto das mensagens; termos menores que dois caracteres não são aplicados e termos acima de 128 retornam 422. Use filtros tags, source e categories normalizado. GET .../chats/categories?q= retorna no máximo 50 facetas visíveis com contagem.

Mutação e treino​

Editar ou excluir um chat muda o dataset atual, mas nunca reescreve um job já criado. Antes de começar, cada job congela sua entrada e a participação em treino/avaliação. Use os endpoints de dataset do job para consultar a entrada histórica exata.