|  | @@ -21,6 +21,7 @@ from core.tool.provider.serpapi_provider import SerpAPIToolProvider
 | 
											
												
													
														|  |  from core.tool.serpapi_wrapper import OptimizedSerpAPIWrapper, OptimizedSerpAPIInput
 |  |  from core.tool.serpapi_wrapper import OptimizedSerpAPIWrapper, OptimizedSerpAPIInput
 | 
											
												
													
														|  |  from core.tool.web_reader_tool import WebReaderTool
 |  |  from core.tool.web_reader_tool import WebReaderTool
 | 
											
												
													
														|  |  from extensions.ext_database import db
 |  |  from extensions.ext_database import db
 | 
											
												
													
														|  | 
 |  | +from libs import helper
 | 
											
												
													
														|  |  from models.dataset import Dataset, DatasetProcessRule
 |  |  from models.dataset import Dataset, DatasetProcessRule
 | 
											
												
													
														|  |  from models.model import AppModelConfig
 |  |  from models.model import AppModelConfig
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -167,6 +168,8 @@ class OrchestratorRuleParser:
 | 
											
												
													
														|  |                  tool = self.to_google_search_tool()
 |  |                  tool = self.to_google_search_tool()
 | 
											
												
													
														|  |              elif tool_type == "wikipedia":
 |  |              elif tool_type == "wikipedia":
 | 
											
												
													
														|  |                  tool = self.to_wikipedia_tool()
 |  |                  tool = self.to_wikipedia_tool()
 | 
											
												
													
														|  | 
 |  | +            elif tool_type == "current_datetime":
 | 
											
												
													
														|  | 
 |  | +                tool = self.to_current_datetime_tool()
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              if tool:
 |  |              if tool:
 | 
											
												
													
														|  |                  tool.callbacks.extend(callbacks)
 |  |                  tool.callbacks.extend(callbacks)
 | 
											
										
											
												
													
														|  | @@ -235,7 +238,7 @@ class OrchestratorRuleParser:
 | 
											
												
													
														|  |              name="google_search",
 |  |              name="google_search",
 | 
											
												
													
														|  |              description="A tool for performing a Google search and extracting snippets and webpages "
 |  |              description="A tool for performing a Google search and extracting snippets and webpages "
 | 
											
												
													
														|  |                          "when you need to search for something you don't know or when your information "
 |  |                          "when you need to search for something you don't know or when your information "
 | 
											
												
													
														|  | -                        "is not up to date."
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        "is not up to date. "
 | 
											
												
													
														|  |                          "Input should be a search query.",
 |  |                          "Input should be a search query.",
 | 
											
												
													
														|  |              func=OptimizedSerpAPIWrapper(**func_kwargs).run,
 |  |              func=OptimizedSerpAPIWrapper(**func_kwargs).run,
 | 
											
												
													
														|  |              args_schema=OptimizedSerpAPIInput,
 |  |              args_schema=OptimizedSerpAPIInput,
 | 
											
										
											
												
													
														|  | @@ -244,6 +247,16 @@ class OrchestratorRuleParser:
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          return tool
 |  |          return tool
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    def to_current_datetime_tool(self) -> Optional[BaseTool]:
 | 
											
												
													
														|  | 
 |  | +        tool = Tool(
 | 
											
												
													
														|  | 
 |  | +            name="current_datetime",
 | 
											
												
													
														|  | 
 |  | +            description="A tool when you want to get the current date or time. ",
 | 
											
												
													
														|  | 
 |  | +            func=helper.get_current_datetime,
 | 
											
												
													
														|  | 
 |  | +            callbacks=[DifyStdOutCallbackHandler()]
 | 
											
												
													
														|  | 
 |  | +        )
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        return tool
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      def to_wikipedia_tool(self) -> Optional[BaseTool]:
 |  |      def to_wikipedia_tool(self) -> Optional[BaseTool]:
 | 
											
												
													
														|  |          class WikipediaInput(BaseModel):
 |  |          class WikipediaInput(BaseModel):
 | 
											
												
													
														|  |              query: str = Field(..., description="search query.")
 |  |              query: str = Field(..., description="search query.")
 |