correção na lógica de resumos

This commit is contained in:
Fábio Cavalcanti 2025-01-07 10:15:56 -03:00
parent abc4c4298a
commit ec65839beb

View File

@ -171,16 +171,26 @@ async def summarize_text_if_needed(text):
raise raise
async def transcribe_audio(audio_source, apikey=None): async def transcribe_audio(audio_source, apikey=None):
"""Transcreve áudio usando a API GROQ com sistema de rodízio de chaves""" """
Transcreve áudio usando a API GROQ com sistema de rodízio de chaves.
Args:
audio_source: Caminho do arquivo de áudio ou URL
apikey: Chave da API opcional para download de áudio
Returns:
tuple: (texto_transcrito, False)
"""
storage.add_log("INFO", "Iniciando processo de transcrição") storage.add_log("INFO", "Iniciando processo de transcrição")
url = "https://api.groq.com/openai/v1/audio/transcriptions" url = "https://api.groq.com/openai/v1/audio/transcriptions"
groq_key = await get_groq_key() groq_key = await get_groq_key()
groq_headers = {"Authorization": f"Bearer {groq_key}"} groq_headers = {"Authorization": f"Bearer {groq_key}"}
# Obter idioma configurado # Obter idioma configurado
language = redis_client.get("TRANSCRIPTION_LANGUAGE") or "pt" language = redis_client.get("TRANSCRIPTION_LANGUAGE") or "pt"
storage.add_log("DEBUG", "Idioma configurado para transcrição", { storage.add_log("DEBUG", "Idioma configurado para transcrição", {
"language": language, "language": language,
"redis_value": redis_client.get("TRANSCRIPTION_LANGUAGE") "redis_value": redis_client.get("TRANSCRIPTION_LANGUAGE")
}) })
try: try:
@ -219,20 +229,12 @@ async def transcribe_audio(audio_source, apikey=None):
async with session.post(url, headers=groq_headers, data=data) as response: async with session.post(url, headers=groq_headers, data=data) as response:
if response.status == 200: if response.status == 200:
result = await response.json() result = await response.json()
message = result.get("text", "") transcription = result.get("text", "")
storage.add_log("INFO", "Transcrição concluída com sucesso", { storage.add_log("INFO", "Transcrição concluída com sucesso", {
"text_length": len(message) "text_length": len(transcription)
}) })
is_summary = False return transcription, False
if len(message) > 1000:
storage.add_log("DEBUG", "Texto longo detectado, iniciando resumo", {
"text_length": len(message)
})
is_summary = True
message = await summarize_text_if_needed(message)
return message, is_summary
else: else:
error_text = await response.text() error_text = await response.text()
storage.add_log("ERROR", "Erro na transcrição", { storage.add_log("ERROR", "Erro na transcrição", {
@ -251,7 +253,6 @@ async def transcribe_audio(audio_source, apikey=None):
# Limpar arquivos temporários # Limpar arquivos temporários
if isinstance(audio_source, str) and os.path.exists(audio_source): if isinstance(audio_source, str) and os.path.exists(audio_source):
os.unlink(audio_source) os.unlink(audio_source)
async def send_message_to_whatsapp(server_url, instance, apikey, message, remote_jid, message_id): async def send_message_to_whatsapp(server_url, instance, apikey, message, remote_jid, message_id):
"""Envia mensagem via WhatsApp""" """Envia mensagem via WhatsApp"""
storage.add_log("DEBUG", "Preparando envio de mensagem", { storage.add_log("DEBUG", "Preparando envio de mensagem", {