fix: temporary adaptation for calculating LLM usage for diarization in seconds based on tokens
							parent
							
								
									4dcdcbb743
								
							
						
					
					
						commit
						0d64df79c3
					
				| 
						 | 
				
			
			@ -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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue