Add stdout to PythonInterpreterTool
This commit is contained in:
		
							parent
							
								
									5e82faf595
								
							
						
					
					
						commit
						8bd5144da1
					
				|  | @ -889,16 +889,16 @@ class CodeAgent(MultiStepAgent): | ||||||
|             console.print_exception() |             console.print_exception() | ||||||
|             raise AgentGenerationError(f"Error in generating model output:\n{e}") |             raise AgentGenerationError(f"Error in generating model output:\n{e}") | ||||||
| 
 | 
 | ||||||
|         from rich.live import Live |         # from rich.live import Live | ||||||
|         from rich.markdown import Markdown |         # from rich.markdown import Markdown | ||||||
|         import time |         # import time | ||||||
| 
 | 
 | ||||||
|         with Live(console=console, vertical_overflow="visible") as live: |         # with Live(console=console, vertical_overflow="visible") as live: | ||||||
|             message = "" |         #     message = "" | ||||||
|             for i in range(100): |         #     for i in range(100): | ||||||
|                 time.sleep(0.02) |         #         time.sleep(0.02) | ||||||
|                 message += str(i) |         #         message += str(i) | ||||||
|                 live.update(Markdown(message)) |         #         live.update(Markdown(message)) | ||||||
| 
 | 
 | ||||||
|         if self.verbose: |         if self.verbose: | ||||||
|             console.print( |             console.print( | ||||||
|  |  | ||||||
|  | @ -99,19 +99,21 @@ class PythonInterpreterTool(Tool): | ||||||
|                 ), |                 ), | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         self.base_python_tool = BASE_PYTHON_TOOLS |         self.base_python_tools = BASE_PYTHON_TOOLS | ||||||
|         self.python_evaluator = evaluate_python_code |         self.python_evaluator = evaluate_python_code | ||||||
|         super().__init__(*args, **kwargs) |         super().__init__(*args, **kwargs) | ||||||
| 
 | 
 | ||||||
|     def forward(self, code: str) -> str: |     def forward(self, code: str) -> str: | ||||||
|  |         state = {} | ||||||
|         output = str( |         output = str( | ||||||
|             self.python_evaluator( |             self.python_evaluator( | ||||||
|                 code, |                 code, | ||||||
|                 static_tools=self.base_python_tool, |                 state=state, | ||||||
|  |                 static_tools=self.base_python_tools, | ||||||
|                 authorized_imports=self.authorized_imports, |                 authorized_imports=self.authorized_imports, | ||||||
|             ) |             ) | ||||||
|         ) |         ) | ||||||
|         return output |         return f"Stdout:\n{state['print_outputs']}\nOutput: {output}" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class FinalAnswerTool(Tool): | class FinalAnswerTool(Tool): | ||||||
|  | @ -240,7 +242,7 @@ class GoogleSearchTool(Tool): | ||||||
| 
 | 
 | ||||||
| class VisitWebpageTool(Tool): | class VisitWebpageTool(Tool): | ||||||
|     name = "visit_webpage" |     name = "visit_webpage" | ||||||
|     description = "Visits a webpage at the given url and returns its content as a markdown string." |     description = "Visits a webpage at the given url and reads its content as a markdown string. Use this to browse webpages." | ||||||
|     inputs = { |     inputs = { | ||||||
|         "url": { |         "url": { | ||||||
|             "type": "string", |             "type": "string", | ||||||
|  |  | ||||||
|  | @ -258,6 +258,7 @@ class HfApiModel(HfModel): | ||||||
|         self, |         self, | ||||||
|         messages: List[Dict[str, str]], |         messages: List[Dict[str, str]], | ||||||
|         available_tools: List[Tool], |         available_tools: List[Tool], | ||||||
|  |         stop_sequences, | ||||||
|     ): |     ): | ||||||
|         """Generates a tool call for the given message list. This method is used only by `ToolCallingAgent`.""" |         """Generates a tool call for the given message list. This method is used only by `ToolCallingAgent`.""" | ||||||
|         messages = get_clean_message_list( |         messages = get_clean_message_list( | ||||||
|  | @ -267,6 +268,7 @@ class HfApiModel(HfModel): | ||||||
|             messages=messages, |             messages=messages, | ||||||
|             tools=[get_json_schema(tool) for tool in available_tools], |             tools=[get_json_schema(tool) for tool in available_tools], | ||||||
|             tool_choice="auto", |             tool_choice="auto", | ||||||
|  |             stop=stop_sequences, | ||||||
|         ) |         ) | ||||||
|         tool_call = response.choices[0].message.tool_calls[0] |         tool_call = response.choices[0].message.tool_calls[0] | ||||||
|         self.last_input_token_count = response.usage.prompt_tokens |         self.last_input_token_count = response.usage.prompt_tokens | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue