Repository navigation
Open
Labels
apitarefa que diz respeito à API em Java Spring Boottarefa que diz respeito à API em Java Spring Bootraiztarefas que dizem repseito à raiz do monorepotarefas que dizem repseito à raiz do monorepo
Milestone
Description
T-312 - Gravar o modelo da transcrição e expô-lo na consulta de auditoria
- Componente:
api, com o schema novo emcontracts/domain/e o campo na resposta de auditoria no mesmo PR, sujeito a autorização. - Depende de: T-305.
- Data máxima: 13/11/2026
- Estimativa: 3 pontos (Fibonacci)
Entregável
- Schema
contracts/domain/modelo-transcricao.schema.json, com exemplo. - Coluna
submissoes.transcricao_modelo, gravada junto com a transcrição. - Campo nas entradas da resposta de
GET /auditoria/jobs/{id}.
Descrição
A entrada por voz é transcrita pela API com a Deepgram, e o texto transcrito é a origem da regra extraída. Nada registra qual modelo transcreveu cada áudio. O modelo está fixo na chamada (model=nova-3 em ClienteDeepgram.java) e pode mudar sem deixar rastro nos registros antigos. Esta tarefa grava o modelo com a transcrição e o expõe na consulta de auditoria da API. A exibição na tela do auditor é uma tarefa própria.
Contexto e decisões tomadas
- A API é a única produtora e a única leitora da coluna. O codegen lê só
submissoes.transcricao. Por isso o schema novo e a coluna entram no mesmo PR da API. modelo-llm.schema.jsonnão serve, porque descreve chamadas a modelos de linguagem e exige parâmetros de geração. O schema novo temprovedoremodeloobrigatórios eversaoopcional.- A resposta da Deepgram pode trazer metadados do modelo usado. Quando trouxer, o registro usa o nome e a versão informados. Quando não trouxer, usa
deepgrame o modelo pedido na chamada, sem versão. - A coluna é opcional e sem backfill. Fica nula nas entradas de formulário e de texto, na submissão de voz ainda não transcrita e nas gravadas antes da coluna.
Escopo
Dentro do escopo
ClienteDeepgram.java,ProcessadorTranscricao.java,SubmissoesRepository.gravarTranscricao, a migration, o schema, o campo na especificação HTTP, a documentação do banco e a leitura na fatiaauditoria.
Fora do escopo
- Trocar o provedor ou o modelo de transcrição.
- Exibir o modelo ao profissional de RH.
- Exibir o modelo na tela do auditor.
Requisitos
- Antes de editar
contracts/, pedir autorização conforme contract-change (.agents/skills/contract-change/SKILL.md), informando o schema novo, o campo novo na resposta de auditoria, o produtor e o consumidor (API e frontend), a compatibilidade (aditiva) e as validações. - Criar o schema e o exemplo, e registrá-lo em
contracts/examples/manifesto.json. - Conferir na documentação da Deepgram e numa resposta real (
TranscricaoRealTests) onde a resposta de/v1/listeninforma o modelo e a versão, e ler esses campos emClienteDeepgramsem tornar a transcrição dependente deles. Uma resposta sem os metadados continua válida. ClienteDeepgram.transcreverpassa a devolver o texto e o modelo, e o processador repassa os dois agravarTranscricao, que grava a coluna no mesmoUPDATEda transcrição.- Criar o changeset com o próximo número livre, com
ADD COLUMN transcricao_modelo jsonbe rollback. Atualizarmodelo-dados.dbmlcom a nota da coluna. - Acrescentar o campo opcional às entradas da resposta de auditoria em
openapi.yamle incluí-lo na leitura da fatiaauditoria. - O log
transcription finishedpode citar o nome do modelo, que é um valor de conjunto limitado. Nenhum log inclui o texto transcrito nem o corpo da resposta.
Contexto técnico
- Entradas: resposta da Deepgram.
- Saídas:
submissoes.transcricao_modeloe o campo na consulta de auditoria. - Componentes afetados:
api/src/main/java/synapse/api/submissoes/ClienteDeepgram.java,api/src/main/java/synapse/api/submissoes/ProcessadorTranscricao.java,api/src/main/java/synapse/api/submissoes/SubmissoesRepository.java, a migration nova e a fatiaauditoria. - Restrições: a falha em ler os metadados não falha a transcrição; nenhuma chave de API em log.
- Referências:
ClienteDeepgramTests(api/src/test/java/synapse/api/submissoes/ClienteDeepgramTests.java),ProcessadorTranscricaoTests(api/src/test/java/synapse/api/submissoes/ProcessadorTranscricaoTests.java),TranscricaoRealTests(api/src/test/java/synapse/api/submissoes/TranscricaoRealTests.java), migrations (api/.agents/skills/migrations/SKILL.md).
Critérios de aceitação
- Uma resposta com os metadados grava o nome e a versão informados.
- Uma resposta sem os metadados grava
deepgrame o modelo pedido, e a transcrição conclui normalmente. - A consulta de auditoria de um job de voz mostra o modelo na entrada transcrita.
-
python contracts/validar-exemplos.pypassa.
Definição de concluído (DoD)
- Autorização registrada antes da edição de
contracts/. make checknaapie o gate dos quatro componentes sem falha.- Logs da transcrição serializados conferidos sem texto transcrito.
Metadata
Metadata
Assignees
Labels
apitarefa que diz respeito à API em Java Spring Boottarefa que diz respeito à API em Java Spring Bootraiztarefas que dizem repseito à raiz do monorepotarefas que dizem repseito à raiz do monorepo
Activity
[-]T-312 - Gravar o modelo da transcrição e mostrá-lo ao auditor[/-][+]T-312 - Gravar o modelo da transcrição e expô-lo na consulta de auditoria[/+]