| 
					
				 | 
			
			
				@@ -20,6 +20,7 @@ class AssistantCotApplicationRunner(BaseAssistantApplicationRunner): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def run(self, conversation: Conversation, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message: Message, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         query: str, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        inputs: Dict[str, str], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) -> Union[Generator, LLMResult]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Run Cot agent application 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,6 +36,11 @@ class AssistantCotApplicationRunner(BaseAssistantApplicationRunner): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if 'Observation' not in app_orchestration_config.model_config.stop: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 app_orchestration_config.model_config.stop.append('Observation') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # override inputs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        inputs = inputs or {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        instruction = self.app_orchestration_config.prompt_template.simple_prompt_template 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        instruction = self._fill_in_inputs_from_external_data_tools(instruction, inputs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         iteration_step = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         max_iteration_steps = min(self.app_orchestration_config.agent.max_iteration, 5) + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -108,7 +114,7 @@ class AssistantCotApplicationRunner(BaseAssistantApplicationRunner): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 tools=prompt_messages_tools, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 agent_scratchpad=agent_scratchpad, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 agent_prompt_message=app_orchestration_config.agent.prompt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                instruction=app_orchestration_config.prompt_template.simple_prompt_template, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                instruction=instruction, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 input=query 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -300,6 +306,18 @@ class AssistantCotApplicationRunner(BaseAssistantApplicationRunner): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             system_fingerprint='' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ), PublishFrom.APPLICATION_MANAGER) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def _fill_in_inputs_from_external_data_tools(self, instruction: str, inputs: dict) -> str: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fill in inputs from external data tools 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for key, value in inputs.items(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                instruction = instruction.replace(f'{{{{{key}}}}}', str(value)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return instruction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def _extract_response_scratchpad(self, content: str) -> AgentScratchpadUnit: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         extract response from llm response 
			 |