habulaj commited on
Commit
b08c896
·
verified ·
1 Parent(s): dcf220f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -153
app.py CHANGED
@@ -759,164 +759,37 @@ async def generate_elements_endpoint(request: GenerateElementsRequest):
759
  # 3. Preparar Prompt
760
  contexto_add = f"\n{request.context}" if request.context else ""
761
 
762
- prompt = f"""Analise essa notícia e o vídeo fornecido, extraindo dados factuais, contexto editorial e informações complementares que ajudem a compor a narrativa jornalística. A partir dessa análise, gere exclusivamente um JSON estruturado com elementos pensados para inserção em uma linha do tempo de vídeo.
763
-
764
- {contexto_add}
765
 
766
- Cada elemento deve conter obrigatoriamente:
767
- - type: tipo do elemento
768
- - start: tempo de início no vídeo (MM:SS)
769
- - end: tempo de término no vídeo (MM:SS)
770
-
771
- Tipos de elementos permitidos:
772
-
773
- 1) title
774
- - type: "title"
775
- - text: título contextualizado da notícia, traduzido para português do Brasil
776
- - Duração máxima: 5 segundos
777
-
778
- 2) name
779
- - type: "name"
780
- - name: nome da pessoa
781
- - profession: profissão ou cargo, traduzido para português do Brasil
782
- - Duração máxima: 5 segundos
783
-
784
- 3) metadata
785
- - type: "metadata"
786
- - Pode conter um ou mais dos seguintes campos:
787
- - date: data no formato ISO (YYYY-MM-DD)
788
- - location: local traduzido para português do Brasil
789
- - credits: créditos da imagem ou vídeo, se disponíveis
790
- - Deve começar exatamente no mesmo start do elemento imediatamente abaixo
791
- - Duração máxima: 5 segundos
792
-
793
- 4) description
794
- - type: "description"
795
- - text: texto descritivo que explica fatos, contexto ou desdobramentos da notícia
796
- - A duração deve ser calculada com base no tamanho do texto
797
- - Ritmo recomendado de leitura: entre 12 e 15 caracteres por segundo
798
- - Evitar tempos longos para textos curtos
799
-
800
- Regras de tempo:
801
- - Os tempos devem ser sequenciais e coerentes
802
- - title, name e metadata nunca devem ultrapassar 5 segundos
803
- - description deve ter duração proporcional ao tamanho do texto
804
- - Metadata sempre deve começar exatamente junto com o elemento logo abaixo
805
-
806
- Contexto editorial:
807
- - Considere informações relevantes disponíveis em fontes confiáveis
808
- - Inclua contexto quando isso enriquecer a compreensão da notícia
809
- - Priorize clareza, concisão e linguagem jornalística, no estilo The New York Times.
810
- - Todo o conteúdo textual deve estar em português do Brasil
811
 
812
- Exemplos:
813
 
814
  [
815
- {{
816
- "type": "title",
817
- "start": "00:00",
818
- "end": "00:05",
819
- "text": "A mãe de Savannah Guthrie, apresentadora do programa \"Today\", foi levada \"contra a própria vontade\", segundo as autoridades."
820
- }},
821
- {{
822
- "type": "name",
823
- "start": "00:05",
824
- "end": "00:10",
825
- "name": "Chris Nanos",
826
- "profession": "Xerife do Condado de Pima"
827
- }},
828
- {{
829
- "type": "metadata",
830
- "start": "00:10",
831
- "end": "00:15",
832
- "date": "2023-03-15",
833
- "credits": "Nathan Congleton/NBC, via Getty Images"
834
- }},
835
- {{
836
- "type": "description",
837
- "start": "00:10",
838
- "end": "00:22",
839
- "text": "As autoridades informaram que o desaparecimento de Nancy Guthrie, de 84 anos, estava sendo tratado como um sequestro."
840
- }},
841
- {{
842
- "type": "description",
843
- "start": "00:22",
844
- "end": "00:28",
845
- "text": "Segundo o xerife, Guthrie foi vista pela última vez em sua casa, em Tucson, no sábado."
846
- }},
847
- {{
848
- "type": "metadata",
849
- "start": "00:28",
850
- "end": "00:33",
851
- "location": "Sydney, Austrália",
852
- "date": "2015-05-04"
853
- }},
854
- {{
855
- "type": "description",
856
- "start": "00:28",
857
- "end": "00:40",
858
- "text": "O xerife afirmou que ela tinha limitações físicas, mas que o caso não estava relacionado à demência."
859
- }},
860
- {{
861
- "type": "metadata",
862
- "start": "00:40",
863
- "end": "00:45",
864
- "location": "Tucson, Arizona",
865
- "date": "2026-02-02"
866
- }}
867
- ]
868
-
869
- Outro exemplo:
870
 
871
- [
872
- {{
873
- "type": "metadata",
874
- "start": "00:00",
875
- "end": "00:05",
876
- "location": "Paramount, Califórnia",
877
- "date": "2025-07-05"
878
- }},
879
- {{
880
- "type": "title",
881
- "start": "00:00",
882
- "end": "00:05",
883
- "text": "Este vídeo mostra o agente da Patrulha de Fronteira Gregory Bovino dando instruções a agentes federais."
884
- }},
885
- {{
886
- "type": "description",
887
- "start": "00:05",
888
- "end": "00:20",
889
- "text": "O momento foi registrado no verão passado, em Los Angeles, quando a repressão à imigração começou a se intensificar."
890
- }},
891
- {{
892
- "type": "description",
893
- "start": "00:20",
894
- "end": "00:30",
895
- "text": "O vídeo voltou a circular nesta semana após Bovino ter sido chamado de volta de Minnesota."
896
- }},
897
- {{
898
- "type": "description",
899
- "start": "00:30",
900
- "end": "00:48",
901
- "text": "As imagens foram divulgadas no ano passado como parte de uma ação judicial federal sobre a aplicação das leis de imigração na região de Chicago."
902
- }},
903
- {{
904
- "type": "description",
905
- "start": "00:48",
906
- "end": "01:08",
907
- "text": "Operações de imigração provocaram protestos na região das Cidades Gêmeas depois que dois cidadãos americanos foram mortos a tiros por agentes."
908
- }},
909
- {{
910
- "type": "description",
911
- "start": "01:08",
912
- "end": "01:18",
913
- "text": "O Departamento de Segurança Interna não respondeu imediatamente a um pedido de comentário."
914
- }}
915
- ]
916
-
917
- Mande apenas o JSON. Sem texto adicional. Deve analisar todo o contexto do vídeo e verificar qual o melhor elemento a ser inserido. Os textos devem ser sólido, evitar emojis, dois pontos, etc. O estilo dos títulos devem ser parecidos com o JSON.
918
-
919
- Considere que o jornal é imparcial na apresentação dos fatos, mas possui uma inclinação editorial claramente mais conservadora, republicana e de direita na entonação. Adapte os títulos e descrições de acordo com esse posicionamento, mantendo rigor factual e linguagem jornalística.
920
  """
921
 
922
  # 4. Enviar para o Gemini
 
759
  # 3. Preparar Prompt
760
  contexto_add = f"\n{request.context}" if request.context else ""
761
 
762
+ prompt = f"""
763
+ Crie um título e uma descrição analisando o vídeo e pesquisando pelo contexto geral e completo, em várias fontes e indo entender. Corrija qualquer informação imprecisa, utilize técnicas modernas que prendeu o leitor a ler até o final. A legenda deve ser compatível e do tamanho de uma legenda do Instagram. A descrição deve ser sem tópico, apenas descrição limpa e direta, sem conclusões parecendo IA e sem enrolação/redundâncias. Eu quero informações concretas, informações, não pensamentos, opiniões ou imaginações. Não deve ser muito redundante, deve ter informação, apenas. Se inspire no modo de escrita dos exemplos.
 
764
 
765
+ Contexto que pode ajudar (baseado na legenda do vídeo): {contexto_add}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
766
 
767
+ EXEMPLOS:
768
 
769
  [
770
+ {{
771
+ "title": "O autor escreveu essa história como um pedido de desculpas à irmã porque, ao contrário do herói do filme, ele admite que não foi bondoso o suficiente para salvá-lá.",
772
+ "description": "🥲 O autor escreveu a obra como um pedido de desculpas à sua irmã, Keiko, que morreu de fome em 1945. Enquanto o protagonista do filme é o símbolo máximo do sacrifício e do cuidado, Nosaka admitiu em diversas entrevistas que a realidade foi muito mais cruel e humana.\n\nAos 14 anos, por exemplo, consumido pela fome e pelo desespero do pós-guerra em Kobe, Nosaka não dividia toda a comida. Muitas vezes, ele comia primeiro, deixando apenas as sobras para a irmã pequena. O peso de cuidar de um bebê no meio do caos o levava ao limite, chegando a admitir que batia na cabeça de Keiko para que ela parasse de chorar. O arrependimento de ter sobrevivido às custas da negligência com a irmã o assombrou por décadas. Criando Seita, Nosaka projetou o irmão idealizado que ele gostaria de ter sido, dando ao personagem a bondade e a paciência que ele, na vida real, não teve forças para manifestar."
773
+ }},
774
+ {{
775
+ "title": "É incrível como ele era vulnerável e emotivo antes de perder qualquer traço de humanidade",
776
+ "description": "No episódio 3 da 1ª temporada de Breaking Bad (...And the Bag's in the River), Walter White reconstrói um prato quebrado e descobre que falta um único estilhaço. Ele percebe que Krazy-8, o traficante mantido em seu porão, escondeu a peça pontiaguda para usá-la como arma. Walt estava decidido a libertar o prisioneiro, mas a prova física da traição o forçou a estrangular o traficante pra sobreviver.\n\nFoi nesse momento que o docente de química compreendeu que a empatia seria sua condenação. Morria, naquele instante, o mestre de escola, e surgia a lógica inflexível de Heisenberg 🔥"
777
+ }},
778
+ {{
779
+ "title": "Imagina escrever uma música do próprio livro e vê-la ganhar vida em live-action 😮‍💨",
780
+ "description": "Jogos Vorazes deu vida a “The Hanging Tree”, de Suzanne Collins, depois que a canção apareceu pela primeira vez em seu livro Mockingjay. Na Parte 1 de Mockingjay, no Distrito 12, o que começa como uma lembrança solene do pai de Katniss transforma-se em um grito de mobilização para que os distritos se oponham à Capital. Enquanto Snow manipula a mente de Peeta no silêncio do Distrito 13, a canção deixa muito claro que o poder de uma ideia é a única coisa que o medo não consegue deter. Até porque, nada representa uma ameaça maior para um tirano do que um povo que não tem mais nada a perder 🎯"
781
+ }},
782
+ {{
783
+ "title": "Normal People foi tão bom porque Paul Mescal não tava atuando 🥹",
784
+ "description": "🥹 Paul Mescal era um ator de teatro praticamente desconhecido até ser escalado como Connell Waldron em Normal People. A adaptação do best-seller de Sally Rooney rendeu a Mescal o BAFTA de Melhor Ator e uma indicação ao Emmy, que claramente consolidou sua química com Daisy Edgar-Jones como uma das mais realistas da televisão recente.\n\nA produção utilizou uma coordenadora de intimidade para garantir que as cenas de vulnerabilidade fossem autênticas, focando mais na linguagem corporal e no silêncio do que em diálogos expositivos. Filmada na Irlanda e na Itália, a série apresenta com precisão técnica a transição da vida escolar em Sligo para a universidade no Trinity College, evitando os clichês estéticos típicos de romances juvenis e concentrando-se no naturalismo das atuações."
785
+ }},
786
+ {{
787
+ "title": "O exato momento em que Carl supera seu luto de décadas 🥹",
788
+ "description": "🍇 O broche que Carl entrega a Russell é uma tampa de refrigerante de uva (Grape Soda) original dos anos 30, o mesmo objeto que Ellie deu a Carl quando eles se conheceram na infância.\n\nNo final de Up: Altas Aventuras (2009), Russell, com 8 anos, lida com a falta do pai durante a cerimônia de formatura dos Exploradores da Natureza. Carl Fredricksen sobe ao palco e entrega ao garoto a \"Insígnia Ellie\", a mais alta distinção que ele tem. Isso representa o momento preciso em que Carl supera seu luto de décadas, transferindo o legado de aventura para Russell e assumindo o papel de figura paterna para o garoto.\n\nDirigido por Pete Docter, o longa fez história ao ser a primeira animação a abrir o Festival de Cannes e venceu os Oscars de Melhor Filme de Animação e Melhor Trilha Sonora."
789
+ }}
790
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
791
 
792
+ Mande apenas o JSON na resposta. Sem texto adicional.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
793
  """
794
 
795
  # 4. Enviar para o Gemini