Files
ailine/backend/app/main_graph/tools/common_tools.py

56 lines
1.6 KiB
Python
Raw Normal View History

"""
公共工具模块 - 联网搜索可视化图表等公共功能
Common Tools Module - Web search, visualization, etc.
"""
from langchain_core.tools import tool
from typing import Optional
@tool
def web_search_tool(query: str, max_results: int = 5) -> str:
"""
联网搜索工具 - 无需 API Key使用 DuckDuckGo 免费搜索
Args:
query: 搜索关键词或问题
max_results: 返回结果数量默认 5
Returns:
格式化的搜索结果包含引用溯源
"""
try:
from app.core import web_search
return web_search(query, max_results)
except Exception as e:
return f"联网搜索出错:{str(e)}"
@tool
def generate_chart_tool(data_text: str, chart_type: str = "bar") -> str:
"""
可视化图表工具 - 生成 Mermaid 格式图表
Args:
data_text: 图表数据文本格式标题,标签1:值1,标签2:值2,...
示例月度销售额,1:100,2:150,3:200
chart_type: 图表类型可选bar柱状图line折线图pie饼图
Returns:
格式化的图表输出Mermaid 格式
"""
try:
from app.core import generate_chart
return generate_chart(data_text, chart_type)
except Exception as e:
return f"生成图表出错:{str(e)}\n\n请使用格式:标题,标签1:值1,标签2:值2,..."
# 公共工具列表
COMMON_TOOLS = [
web_search_tool,
generate_chart_tool
]
COMMON_TOOLS_BY_NAME = {tool.name: tool for tool in COMMON_TOOLS}