habulaj commited on
Commit
216d2b9
·
verified ·
1 Parent(s): 3914b68

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +18 -5
main.py CHANGED
@@ -214,7 +214,7 @@ async def process_girlsmoodaily_endpoint():
214
  if not client:
215
  raise HTTPException(status_code=500, detail="Gemini client is not initialized")
216
  temp_file = None
217
- cut_file = None
218
  try:
219
  supabase_url = os.getenv("SUPABASE_URL", "").rstrip("/")
220
  supabase_key = os.getenv("SUPABASE_KEY", "")
@@ -262,7 +262,16 @@ async def process_girlsmoodaily_endpoint():
262
  temp_file.close()
263
 
264
  video_path_to_analyze = temp_file.name
 
265
 
 
 
 
 
 
 
 
 
266
  contexto_add = f"\n{context}" if context else ""
267
  comentarios_add = ""
268
  if comments:
@@ -283,7 +292,11 @@ Sua personalidade: divertida, intuitiva e criativa. Você tem um olhar muito apu
283
 
284
  SUA MISSÃO
285
 
286
- Você recebe um conteúdo (vídeo ou imagem) aprovado pela Diana e cria a postagem completa para a @girlsmoodaily. A página tem uma identidade clara: feminina, leve, alto-astral, identificável, com aquela energia de "sua dose diária de girl mood".
 
 
 
 
287
 
288
  Tudo que você produz deve soar como algo que uma menina brasileira de 14 a 30 anos escreveria, não como texto de IA, não como manchete de jornal, não como copy corporativo.
289
 
@@ -396,8 +409,8 @@ EXEMPLOS
396
  model_obj = get_gemini_model(model_name)
397
  print(f"🧠 Enviando para Gemini ({model_name}) para processamento...")
398
 
399
- # Envio do prompt + arquivo (vídeo/imagem) pro Gemini
400
- response_gemini = await client.generate_content(prompt, files=[video_path_to_analyze], model=model_obj)
401
 
402
  titles_data = extract_json_from_text(response_gemini.text)
403
  if not titles_data:
@@ -424,7 +437,7 @@ EXEMPLOS
424
  raise HTTPException(status_code=500, detail=f"Erro interno: {str(e)}")
425
  finally:
426
  if temp_file and os.path.exists(temp_file.name): os.unlink(temp_file.name)
427
- if cut_file and os.path.exists(cut_file.name): os.unlink(cut_file.name)
428
 
429
 
430
  @app.api_route("/filter-girlsmoodaily", methods=["GET", "POST"])
 
214
  if not client:
215
  raise HTTPException(status_code=500, detail="Gemini client is not initialized")
216
  temp_file = None
217
+ cropped_file_path = None
218
  try:
219
  supabase_url = os.getenv("SUPABASE_URL", "").rstrip("/")
220
  supabase_key = os.getenv("SUPABASE_KEY", "")
 
262
  temp_file.close()
263
 
264
  video_path_to_analyze = temp_file.name
265
+ files_to_send = [video_path_to_analyze]
266
 
267
+ if 'image' in content_type:
268
+ print(f"✂️ Processando imagem: detectando e cortando...")
269
+ try:
270
+ cropped_file_path = detect_and_crop_image(video_path_to_analyze)
271
+ if cropped_file_path and os.path.exists(cropped_file_path):
272
+ files_to_send.append(cropped_file_path)
273
+ except Exception as e:
274
+ print(f"⚠️ Erro ao cortar imagem: {e}")
275
  contexto_add = f"\n{context}" if context else ""
276
  comentarios_add = ""
277
  if comments:
 
292
 
293
  SUA MISSÃO
294
 
295
+ Você recebe um conteúdo (vídeo ou imagem) aprovado pela Diana e cria a postagem completa para a @girlsmoodaily. O conteúdo enviado é o post base original, geralmente em inglês. Sua missão não é apenas traduzir, mas **ADAPTAR** o conteúdo para a realidade das seguidoras brasileiras da @girlsmoodaily.
296
+
297
+ Se o post original for algo como "How I feel when my bestie is crying over a man...", um título excelente seria "Amiga pelo amor de Deus acorda que você é um monumento 💅". Fuja do literal, seja criativa e use o "girl mood" brasileiro.
298
+
299
+ A página tem uma identidade clara: feminina, leve, alto-astral, identificável, com aquela energia de "sua dose diária de girl mood".
300
 
301
  Tudo que você produz deve soar como algo que uma menina brasileira de 14 a 30 anos escreveria, não como texto de IA, não como manchete de jornal, não como copy corporativo.
302
 
 
409
  model_obj = get_gemini_model(model_name)
410
  print(f"🧠 Enviando para Gemini ({model_name}) para processamento...")
411
 
412
+ # Envio do prompt + arquivos (original e opcionalmente cortado) pro Gemini
413
+ response_gemini = await client.generate_content(prompt, files=files_to_send, model=model_obj)
414
 
415
  titles_data = extract_json_from_text(response_gemini.text)
416
  if not titles_data:
 
437
  raise HTTPException(status_code=500, detail=f"Erro interno: {str(e)}")
438
  finally:
439
  if temp_file and os.path.exists(temp_file.name): os.unlink(temp_file.name)
440
+ if cropped_file_path and os.path.exists(cropped_file_path): os.unlink(cropped_file_path)
441
 
442
 
443
  @app.api_route("/filter-girlsmoodaily", methods=["GET", "POST"])