feat: criado repositório jhonny-editor no Gitea
criado repositório jhonny-editor no Gitea adicionado script admin/deploy.command com commit automático atualizado admin/DEV-NOTES.md com template limpo Resumo: - 32 arquivos alterados - 16 novos - 15 modificados - 0 removidos 16 files changed, 638 insertions(+), 61 deletions(-) Arquivos: - code/engine/skills/boas-praticas-oo.md -> .agents/skills/boas-praticas-oo/SKILL.md - AGENTS.md - code/cep-plugin/index.html - code/cep-plugin/main.js - code/cep-plugin/styles.css - code/engine/integracoes/visual/apple_vision.py - code/engine/integracoes/visual/apple_vision_runner.swift - code/engine/integracoes/visual/extrator_ffmpeg.py - code/engine/scanner/__init__.py - code/engine/scanner/configuracao_visual.py - code/engine/scanner/coordenacao/__init__.py - code/engine/scanner/retakes/adaptador_de_falas.py - code/engine/scanner/retakes/agrupador_de_takes.py - code/engine/scanner/retakes/detector_de_reinicios.py - code/engine/scanner/retakes/modelos_de_retakes.py - code/engine/scanner/visual.py - .jhonny/ - .retakes/ - CODING_STANDARDS.md - code/engine/executar_retakes.py - code/engine/persistencia/ - code/engine/scanner/retakes/__init__.py - code/engine/scanner/retakes/carregador_de_artefatos.py - code/engine/scanner/retakes/classificador_de_retakes.py - code/engine/scanner/retakes/coordenador_de_retakes.py - code/engine/scanner/retakes/deteccao_de_retakes.py - code/engine/scanner/retakes/gerador_de_evidencias.py - code/engine/scanner/retakes/repositorio_de_retakes.py - code/engine/testes/test_consultas_de_persistencia.py - code/engine/testes/test_deteccao_de_retakes.py - code/engine/testes/test_persistencia_sqlite.py - code/relatorios/audio/arquivos/92f97877259a86a8095b1eecafdefe357212a12247d04b78df60e0c0ae38b2ea/
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
"""Adaptador que expõe a detecção de retakes como um ``Analisador`` do scanner.
|
||||
|
||||
Permite plugar o ``CoordenadorDeRetakes`` no ``PipelineDoScanner`` como uma
|
||||
etapa entre a detecção de cenas/eventos e a persistência, reutilizando o
|
||||
``ContextoDeAnalise`` que já carrega as transcrições.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from ...dominio import Timeline
|
||||
from .adaptador_de_falas import AdaptadorDeFalas
|
||||
from .coordenador_de_retakes import CoordenadorDeRetakes
|
||||
|
||||
|
||||
class DeteccaoDeRetakes:
|
||||
nome = "deteccao_de_retakes"
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordenador: CoordenadorDeRetakes | None = None,
|
||||
video_id: str | None = None,
|
||||
adaptador: AdaptadorDeFalas | None = None,
|
||||
) -> None:
|
||||
self.coordenador = coordenador or CoordenadorDeRetakes()
|
||||
self.video_id = video_id
|
||||
self.adaptador = adaptador or AdaptadorDeFalas()
|
||||
|
||||
def executar(self, contexto: Any) -> Any:
|
||||
"""Consome as transcrições do contexto e preenche ``contexto.retakes``."""
|
||||
if contexto is None:
|
||||
return contexto
|
||||
|
||||
transcricoes = getattr(contexto, "transcricoes", None) or {}
|
||||
if not transcricoes:
|
||||
return contexto
|
||||
|
||||
# ``contexto.transcricoes`` é um dicionário ``identificador_clipe ->
|
||||
# list[SegmentoDeTranscricao]``. Ordenamos por chave para processar as
|
||||
# falas na ordem da timeline.
|
||||
itens = [
|
||||
(segmento_id, transcricoes[segmento_id])
|
||||
for segmento_id in sorted(transcricoes)
|
||||
]
|
||||
|
||||
timeline: Timeline | None = contexto.timeline
|
||||
video_id = self.video_id or (timeline.identificador if timeline else "video")
|
||||
falas = self.adaptador.converter_de_segmentos(itens, video_id=video_id)
|
||||
|
||||
# Cenas visuais do contexto entram como reforço (evidência fraca).
|
||||
cenas_visuais = getattr(contexto, "cenas_visuais", None) or []
|
||||
resultado = self.coordenador.analisar(video_id, falas=falas, cenas_visuais=cenas_visuais)
|
||||
contexto.retakes = {
|
||||
"status": "concluida",
|
||||
"resultado": resultado.para_dict(),
|
||||
"grupos": resultado.grupos,
|
||||
}
|
||||
return contexto
|
||||
Reference in New Issue
Block a user