Update main.py
Browse files
main.py
CHANGED
|
@@ -389,6 +389,7 @@ Se o contexto enviado pelo usuário não for verdadeiro ou estiver impreciso, ig
|
|
| 389 |
|
| 390 |
class VideoFilterRequest(BaseModel):
|
| 391 |
video_url: str
|
|
|
|
| 392 |
|
| 393 |
@app.post("/video-filter")
|
| 394 |
async def video_filter_endpoint(request: VideoFilterRequest):
|
|
@@ -410,16 +411,23 @@ async def video_filter_endpoint(request: VideoFilterRequest):
|
|
| 410 |
|
| 411 |
video_path_to_analyze = temp_file.name
|
| 412 |
|
| 413 |
-
|
|
|
|
|
|
|
| 414 |
|
| 415 |
-
Base do JSON: {
|
|
|
|
| 416 |
"viralization_probability": 88,
|
| 417 |
"sensitive_content": false,
|
| 418 |
"political_content": false,
|
| 419 |
"should_post": true
|
| 420 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 421 |
|
| 422 |
-
|
| 423 |
|
| 424 |
viralization_probability
|
| 425 |
|
|
@@ -437,6 +445,9 @@ should_post
|
|
| 437 |
|
| 438 |
Decisão final da IA indicando se o vídeo deve ou não ser postado. Essa decisão deve considerar todos os fatores anteriores, como potencial de viralização, presença de conteúdo sensível, política, marca d’água e outros sinais relevantes."""
|
| 439 |
|
|
|
|
|
|
|
|
|
|
| 440 |
model_obj = get_gemini_model("flash")
|
| 441 |
print(f"🧠 Enviando para Gemini (flash) para filtro de vídeo...")
|
| 442 |
|
|
|
|
| 389 |
|
| 390 |
class VideoFilterRequest(BaseModel):
|
| 391 |
video_url: str
|
| 392 |
+
context: Optional[str] = None
|
| 393 |
|
| 394 |
@app.post("/video-filter")
|
| 395 |
async def video_filter_endpoint(request: VideoFilterRequest):
|
|
|
|
| 411 |
|
| 412 |
video_path_to_analyze = temp_file.name
|
| 413 |
|
| 414 |
+
contexto_add = f"\n\nContexto Adicional / Legenda Original:\n{request.context}" if request.context else ""
|
| 415 |
+
|
| 416 |
+
prompt = f"""Analise o vídeo anexado e retorne um JSON, apenas o JSON, sem texto adicional, de um filtro sobre o vídeo.
|
| 417 |
|
| 418 |
+
Base do JSON: {{
|
| 419 |
+
"description": "Explicação detalhada sobre o que acontece no vídeo, contexto visual e assunto discutido.",
|
| 420 |
"viralization_probability": 88,
|
| 421 |
"sensitive_content": false,
|
| 422 |
"political_content": false,
|
| 423 |
"should_post": true
|
| 424 |
+
}}
|
| 425 |
+
|
| 426 |
+
Estou criando uma página do Instagram e quero saber o que postar ou não postar.{contexto_add}
|
| 427 |
+
|
| 428 |
+
description
|
| 429 |
|
| 430 |
+
Descrição e explicação detalhada sobre o que o vídeo se trata. Descreva o visual, as ações, pessoas envolvidas e, de forma resumida, o assunto principal.
|
| 431 |
|
| 432 |
viralization_probability
|
| 433 |
|
|
|
|
| 445 |
|
| 446 |
Decisão final da IA indicando se o vídeo deve ou não ser postado. Essa decisão deve considerar todos os fatores anteriores, como potencial de viralização, presença de conteúdo sensível, política, marca d’água e outros sinais relevantes."""
|
| 447 |
|
| 448 |
+
# get_gemini_model("flash") chamará "Model.G_3_0_FLASH", que é o modelo Flash rápido.
|
| 449 |
+
# A demora de alguns segundos é comum porque o vídeo precisa ser enviado e processado
|
| 450 |
+
# nos servidores do Gemini, o que leva alguns segundos pelo próprio tamanho do vídeo.
|
| 451 |
model_obj = get_gemini_model("flash")
|
| 452 |
print(f"🧠 Enviando para Gemini (flash) para filtro de vídeo...")
|
| 453 |
|