| 
					
				 | 
			
			
				@@ -119,9 +119,11 @@ class ConversationMessageTask: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             message="", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             message_tokens=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             message_unit_price=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            message_price_unit=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             answer="", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             answer_tokens=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             answer_unit_price=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            answer_price_unit=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             provider_response_latency=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             total_price=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             currency=self.model_instance.get_currency(), 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -142,7 +144,9 @@ class ConversationMessageTask: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         answer_tokens = llm_message.completion_tokens 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_unit_price = self.model_instance.get_tokens_unit_price(MessageType.HUMAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        message_price_unit = self.model_instance.get_price_unit(MessageType.HUMAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         answer_unit_price = self.model_instance.get_tokens_unit_price(MessageType.ASSISTANT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        answer_price_unit = self.model_instance.get_price_unit(MessageType.ASSISTANT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_total_price = self.model_instance.calc_tokens_price(message_tokens, MessageType.HUMAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         answer_total_price = self.model_instance.calc_tokens_price(answer_tokens, MessageType.ASSISTANT) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -151,9 +155,11 @@ class ConversationMessageTask: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.message.message = llm_message.prompt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.message.message_tokens = message_tokens 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.message.message_unit_price = message_unit_price 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.message.message_price_unit = message_price_unit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.message.answer = PromptBuilder.process_template(llm_message.completion.strip()) if llm_message.completion else '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.message.answer_tokens = answer_tokens 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.message.answer_unit_price = answer_unit_price 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.message.answer_price_unit = answer_price_unit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.message.provider_response_latency = llm_message.latency 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.message.total_price = total_price 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -195,7 +201,9 @@ class ConversationMessageTask: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             tool=agent_loop.tool_name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             tool_input=agent_loop.tool_input, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             message=agent_loop.prompt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            message_price_unit=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             answer=agent_loop.completion, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            answer_price_unit=0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             created_by_role=('account' if isinstance(self.user, Account) else 'end_user'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             created_by=self.user.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -210,7 +218,9 @@ class ConversationMessageTask: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def on_agent_end(self, message_agent_thought: MessageAgentThought, agent_model_instant: BaseLLM, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                      agent_loop: AgentLoop): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         agent_message_unit_price = agent_model_instant.get_tokens_unit_price(MessageType.HUMAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        agent_message_price_unit = agent_model_instant.get_price_unit(MessageType.HUMAN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         agent_answer_unit_price = agent_model_instant.get_tokens_unit_price(MessageType.ASSISTANT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        agent_answer_price_unit = agent_model_instant.get_price_unit(MessageType.ASSISTANT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         loop_message_tokens = agent_loop.prompt_tokens 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         loop_answer_tokens = agent_loop.completion_tokens 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -223,8 +233,10 @@ class ConversationMessageTask: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_agent_thought.tool_process_data = ''  # currently not support 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_agent_thought.message_token = loop_message_tokens 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_agent_thought.message_unit_price = agent_message_unit_price 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        message_agent_thought.message_price_unit = agent_message_price_unit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_agent_thought.answer_token = loop_answer_tokens 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_agent_thought.answer_unit_price = agent_answer_unit_price 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        message_agent_thought.answer_price_unit = agent_answer_price_unit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_agent_thought.latency = agent_loop.latency 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_agent_thought.tokens = agent_loop.prompt_tokens + agent_loop.completion_tokens 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message_agent_thought.total_price = loop_total_price 
			 |