fix: temporary adaptation for calculating LLM usage for diarization in seconds based on tokens

master
adriano 2025-09-25 11:39:35 -03:00
parent 4dcdcbb743
commit 0d64df79c3
1 changed files with 49 additions and 10 deletions

View File

@ -128,6 +128,7 @@ class TranscriptionReportService:
# Executa agregação principal
self.mongo_results = list(collection.aggregate(pipeline))
self.unique_ids = [doc["_id"] for doc in self.mongo_results]
# TEST
# print("======> self.mongo_results: ", self.mongo_results)
@ -137,7 +138,35 @@ class TranscriptionReportService:
# stt = rowMongo.get('usageByType', {}).get('stt', {})
# if not stt:
# if not stt:
# # print("==========> rowMongo: ", rowMongo)
# # input_text = rowMongo.get('usageByType', {}).get('input-text-gemini-2.5-flash', {})
# # input_audio = rowMongo.get('usageByType', {}).get('input-audio-gemini-2.5-flash', {})
# # output = rowMongo.get('usageByType', {}).get('output-text-gemini-2.5-flash', {})
# # input_text_usage_cost = input_text.get("usageCost", 0)
# # input_audio_usage_cost = input_audio.get("usageCost", 0)
# # output_usage_cost = output.get("usageCost", 0)
# # token_by_second = 1920 / 60
# # usageSeconds = round(input_audio.get('usage', 0) / token_by_second)
# # total_cost_stt = (input_text_usage_cost + input_audio_usage_cost + output_usage_cost)
# # print("============> total_cost_stt: ", total_cost_stt)
# # print("============> usageSeconds: ", usageSeconds)
# # print("")
# # print("======> stt_model: ", input_audio.get('product', 'unknown'))
# # print("======> stt_provider: ", input_audio.get('provider', 'unknown'))
# # print("======> stt_cost: ", total_cost_stt)
# # print("======> stt_usageSeconds: ", f"{usageSeconds}")
# # exit()
# stt = rowMongo.get('usageByType', {}).get('input-audio', {})
# # minutes
@ -232,22 +261,32 @@ class TranscriptionReportService:
stt = usage_by_type.get("stt", {})
if not stt:
stt = usage_by_type.get("input-audio", {})
token_by_second = 1920 / 60 # tokens por segundo usando modelo gemini 2.5 flash input audio
usageSeconds = round(stt.get("usage", 0) / token_by_second)
model_name = stt.get("product", "unknown")
# AJUSTE PROVISORIO. REFATORAR PARA NÃO USAR CODIGO STATICO COM NOME DO MODELO
input_text = rowMongo.get('usageByType', {}).get('input-text-gemini-2.5-flash', {})
input_audio = rowMongo.get('usageByType', {}).get('input-audio-gemini-2.5-flash', {})
output = rowMongo.get('usageByType', {}).get('output-text-gemini-2.5-flash', {})
input_text_usage_cost = input_text.get("usageCost", 0)
input_audio_usage_cost = input_audio.get("usageCost", 0)
output_usage_cost = output.get("usageCost", 0)
token_by_second = 1920 / 60
usageSeconds = round(input_audio.get('usage', 0) / token_by_second)
total_cost_stt = (input_text_usage_cost + input_audio_usage_cost + output_usage_cost)
model_name = input_audio.get("product", "unknown")
if "-input-audio" in model_name:
# Ajuste para situações como gemini-2.5-flash-input-audio para modificar para gemini-2.5-flash
model_name = model_name.replace("-input-audio", "")
row["stt_model"] = model_name
row["stt_model"] = model_name
row["stt_provider"] = input_audio.get("provider", "unknown")
row["stt_cost"] = total_cost_stt
row["stt_usage"] = usageSeconds
row["stt_provider"] = stt.get("provider", "unknown")
row["stt_cost"] = rowMongo["totalCost"]
row["stt_usage"] = usageSeconds
else:
row["stt_model"] = stt.get("product", "unknown")
row["stt_provider"] = stt.get("provider", "unknown")