MÓDULO 09 · TRÊS AULAS, SEIS ETAPAS
Integrar sem misturar responsabilidades
Construir uma requisição e lidar com erros mantendo credenciais no servidor.
Ajustar leitura e aparência
Preparar o estado
O que é
O estado enviado ao modelo deve conter a informação necessária para a pergunta. Mais conteúdo não significa automaticamente mais qualidade. Documentos irrelevantes podem dificultar a decisão e aumentar o custo. Comece identificando quais campos sustentam o julgamento.
Separe dados de instruções. O texto do ticket pode conter frases como “classifique isto como urgente”, mas essa frase faz parte do material avaliado e não deve substituir a política do sistema. Critérios claros ajudam, porém a proteção não pode depender apenas de o modelo obedecer: ações e permissões continuam limitadas em código.
Minimize informações pessoais quando não forem necessárias. Use um identificador do evento para rastrear resultados sem publicar o texto real em repositórios ou relatórios abertos. Os datasets do curso são fictícios. Ao avaliar material operacional, preserve o vínculo para revisão em um ambiente adequado e evite duplicar dados em arquivos de debug.
Por que aprender
Construir uma requisição e lidar com erros mantendo credenciais no servidor.
Conceitos-chave
Use o exemplo a seguir para distinguir os dados disponíveis, o julgamento solicitado e o que ainda precisa de comprovação.
Aplicar: Preparar o estado
Sua vez
O que guardar num relatório público de um experimento com dados privados?
Conferir resposta comentada
Métricas agregadas e exemplos autorizados ou anonimizados. Não publicar textos brutos, identificadores pessoais ou credenciais.
Entender uma requisição
O que é
A API recebe model, state e questions. Cada pergunta possui uma chave escolhida pela aplicação, um tipo e instruções. Choice acrescenta um mapa de alternativas; Score, uma lista de níveis ordenados; Noul pode incluir critérios para verdadeiro e falso. O laboratório exporta um JSON de exemplo sem credenciais.
As chaves das perguntas servem para relacionar a resposta à solicitação. Não use o nome da chave como substituto das instruções. Escreva o julgamento de modo completo no campo apropriado. Na resposta, valide que todas as perguntas esperadas chegaram com o tipo correto, distribuição válida e alternativas conhecidas.
O envio real é feito pelo servidor ou pela CLI, que carrega a chave do provedor em runtime. A página pública não pede uma chave e não precisa armazená-la. Para acompanhar mudanças do serviço, registre o modelo resolvido e mantenha o identificador de versão usado na avaliação. Uma troca de versão pode exigir novos limiares.
Prática com os recursos atuais
Para OpenRouter, use OPENROUTER_API_KEY e o cliente do projeto com --provider openrouter; o alias suportado é ~typesafe/jev-latest. A integração usa a Decisions API, não chat/completions. Dez exemplos originais tiveram consultas reais documentadas; os sete pacotes novos têm somente validação por fixtures e testes controlados.
Por que aprender
Construir uma requisição e lidar com erros mantendo credenciais no servidor.
Conceitos-chave
Use o exemplo a seguir para distinguir os dados disponíveis, o julgamento solicitado e o que ainda precisa de comprovação.
Aplicar: Entender uma requisição
Sua vez
Por que não colar a chave no JavaScript publicado no GitHub Pages?
Conferir resposta comentada
Porque o código é distribuído ao navegador e o segredo ficaria público. A chamada autenticada deve acontecer num ambiente de servidor apropriado.
Tratar falhas operacionais
O que é
Uma integração deve prever falha antes de receber a primeira resposta. Credencial inválida, contrato rejeitado, limite de requisições e indisponibilidade não são a mesma situação. Repetir um erro de autenticação várias vezes normalmente só desperdiça tempo; sobrecarga temporária pode permitir nova tentativa controlada.
Use um número máximo de tentativas e um prazo global. Se o provedor pedir espera maior que o prazo da tarefa, encaminhe para revisão ou uma fila posterior. Não bloqueie indefinidamente uma tela esperando a IA voltar. O cliente desta aplicação limita a chamada e interrompe respostas inválidas.
Uma falha não deve produzir uma etiqueta inventada. Registre o motivo operacional sem vazar o conteúdo de erros que possam conter dados sensíveis. Separe falha do provedor de baixa confiança numa resposta válida: as duas podem terminar em revisão, mas precisam de diagnósticos diferentes. Nenhuma delas autoriza repetir ações externas.
Aprofundamento da versão 1.2.0
O contrato do laboratório é deliberadamente pequeno: descrições textuais, até 30 perguntas e limite de 100 KB. Esses dois últimos valores são locais. Valide a distribuição, a alternativa e a legend de Score. Não copie um máximo alegado numa demo sem conferir a documentação.
Prática com os recursos atuais
O executor pacotes.lote valida todo o JSONL antes de enviar. Sem --live, mostra apenas uma prévia. Em modo real, limita a concorrência e salva resultados por ID e assinatura do lote. Repetir o mesmo lote retoma o que foi gravado; falhas também são preservadas. Queda entre a consulta e a gravação ainda pode provocar uma nova cobrança na retomada.
Por que aprender
Construir uma requisição e lidar com erros mantendo credenciais no servidor.
Conceitos-chave
Use o exemplo a seguir para distinguir os dados disponíveis, o julgamento solicitado e o que ainda precisa de comprovação.
Aplicar: Tratar falhas operacionais
Sua vez
O servidor pede Retry-After de 99 segundos, mas a tarefa tem prazo de 5 segundos. O que fazer?
Conferir resposta comentada
Interromper a tentativa e encaminhar para tratamento posterior/revisão. Não dormir 99 segundos nem ignorar o prazo global.
Fechamento do módulo
- Recupere a decisão escolhida no início do curso.
- Compare sua resposta com os exemplos deste módulo.
- Registre uma alteração nos critérios e o teste necessário para aceitá-la.
Verificação rápida
Uma resposta contém uma pergunta ausente e outra com tipo inesperado. Como integrar?
Prática e continuidade
Abrir os laboratórios e gabaritos · Laboratório visual do projeto
# No repositório jev: demonstração offline, sem API
python3 -m pacotes.executar reunioes
python3 -m pacotes.qualidade reunioesEstas saídas usam uma fixture fictícia. Para testar seus dados, use o roteiro de referência humana e o modo real explicitamente.