Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 31aae304c2 | |||
| c6118409d0 | |||
| f009e09894 |
@@ -49,6 +49,24 @@ class Main(star.Star):
|
|||||||
self.sogo_search = Sogo()
|
self.sogo_search = Sogo()
|
||||||
self.baidu_initialized = False
|
self.baidu_initialized = False
|
||||||
|
|
||||||
|
# Deactivate built-in web search tools if web_search is disabled
|
||||||
|
# This allows MCP to provide custom web_search tools
|
||||||
|
websearch_enable = (provider_settings or {}).get("web_search", False)
|
||||||
|
if not websearch_enable:
|
||||||
|
self._set_tools_active(False)
|
||||||
|
|
||||||
|
def _set_tools_active(self, active: bool) -> None:
|
||||||
|
"""Set the active status of all built-in web search tools.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
active: True to activate tools, False to deactivate them
|
||||||
|
"""
|
||||||
|
func_tool_mgr = self.context.get_llm_tool_manager()
|
||||||
|
for tool_name in self.TOOLS:
|
||||||
|
tool = func_tool_mgr.get_func(tool_name)
|
||||||
|
if tool:
|
||||||
|
tool.active = active
|
||||||
|
|
||||||
async def _tidy_text(self, text: str) -> str:
|
async def _tidy_text(self, text: str) -> str:
|
||||||
"""清理文本,去除空格、换行符等"""
|
"""清理文本,去除空格、换行符等"""
|
||||||
return text.strip().replace("\n", " ").replace("\r", " ").replace(" ", " ")
|
return text.strip().replace("\n", " ").replace("\r", " ").replace(" ", " ")
|
||||||
@@ -394,6 +412,10 @@ class Main(star.Star):
|
|||||||
websearch_enable = prov_settings.get("web_search", False)
|
websearch_enable = prov_settings.get("web_search", False)
|
||||||
provider = prov_settings.get("websearch_provider", "default")
|
provider = prov_settings.get("websearch_provider", "default")
|
||||||
|
|
||||||
|
# Globally activate/deactivate built-in web search tools based on config
|
||||||
|
# This allows MCP to provide custom web_search tools when built-in is disabled
|
||||||
|
self._set_tools_active(websearch_enable)
|
||||||
|
|
||||||
tool_set = req.func_tool
|
tool_set = req.func_tool
|
||||||
if isinstance(tool_set, FunctionToolManager):
|
if isinstance(tool_set, FunctionToolManager):
|
||||||
req.func_tool = tool_set.get_full_tool_set()
|
req.func_tool = tool_set.get_full_tool_set()
|
||||||
|
|||||||
Reference in New Issue
Block a user