Update main.py
Browse files
main.py
CHANGED
|
@@ -369,7 +369,7 @@ Se o contexto enviado pelo usuário não for verdadeiro ou estiver impreciso, ig
|
|
| 369 |
print(f"🧠 Enviando para Gemini ({request.model})...")
|
| 370 |
|
| 371 |
# Envio do prompt + arquivo (vídeo) pro Gemini
|
| 372 |
-
response_gemini = await client.generate_content(prompt, files=[video_path_to_analyze], model=model_obj
|
| 373 |
|
| 374 |
titles_data = extract_json_from_text(response_gemini.text)
|
| 375 |
if not titles_data:
|
|
@@ -490,7 +490,10 @@ async def generate_subtitle(request: GeminiSubtitleRequest):
|
|
| 490 |
# Contexto padrão solicitado caso não haja
|
| 491 |
default_context = "Separe as legendas quando houver muito texto concentrado em apenas uma. Divida o conteúdo de forma adequada e faça a tradução com precisão. Se necessário, use o timing das falas (palavra por palavra) como referência para separar as legendas corretamente. Quando houver música, legende a letra colocando ♪ no início e no fim, e pesquise a tradução correta da música. Quando não houver música, legende apenas as falas."
|
| 492 |
|
| 493 |
-
|
|
|
|
|
|
|
|
|
|
| 494 |
|
| 495 |
prompt = f"""
|
| 496 |
IDIOMA: A legenda traduzida DEVE ser inteiramente em PORTUGUÊS DO BRASIL (pt-BR). Independente do idioma original do vídeo.
|
|
@@ -581,7 +584,7 @@ INSTRUÇÕES/CONTEXTO DO USUÁRIO (OPCIONAL): {contexto_final}
|
|
| 581 |
{word_level_text}
|
| 582 |
"""
|
| 583 |
model_obj = get_gemini_model(request.model)
|
| 584 |
-
response_gemini = await client.generate_content(prompt, files=[processed_audio_path], model=model_obj
|
| 585 |
cleaned_srt = clean_and_validate_srt(response_gemini.text)
|
| 586 |
|
| 587 |
if request.time_start and request.time_start > 0:
|
|
|
|
| 369 |
print(f"🧠 Enviando para Gemini ({request.model})...")
|
| 370 |
|
| 371 |
# Envio do prompt + arquivo (vídeo) pro Gemini
|
| 372 |
+
response_gemini = await client.generate_content(prompt, files=[video_path_to_analyze], model=model_obj)
|
| 373 |
|
| 374 |
titles_data = extract_json_from_text(response_gemini.text)
|
| 375 |
if not titles_data:
|
|
|
|
| 490 |
# Contexto padrão solicitado caso não haja
|
| 491 |
default_context = "Separe as legendas quando houver muito texto concentrado em apenas uma. Divida o conteúdo de forma adequada e faça a tradução com precisão. Se necessário, use o timing das falas (palavra por palavra) como referência para separar as legendas corretamente. Quando houver música, legende a letra colocando ♪ no início e no fim, e pesquise a tradução correta da música. Quando não houver música, legende apenas as falas."
|
| 492 |
|
| 493 |
+
if request.context and request.context.strip() != "N/A":
|
| 494 |
+
contexto_final = f"{default_context}\n\nCONTEXTO ADICIONAL DO USUÁRIO:\n{request.context.strip()}"
|
| 495 |
+
else:
|
| 496 |
+
contexto_final = default_context
|
| 497 |
|
| 498 |
prompt = f"""
|
| 499 |
IDIOMA: A legenda traduzida DEVE ser inteiramente em PORTUGUÊS DO BRASIL (pt-BR). Independente do idioma original do vídeo.
|
|
|
|
| 584 |
{word_level_text}
|
| 585 |
"""
|
| 586 |
model_obj = get_gemini_model(request.model)
|
| 587 |
+
response_gemini = await client.generate_content(prompt, files=[processed_audio_path], model=model_obj)
|
| 588 |
cleaned_srt = clean_and_validate_srt(response_gemini.text)
|
| 589 |
|
| 590 |
if request.time_start and request.time_start > 0:
|