Files
ailine/backend/app/main_graph/tools/common_tools.py
root 4fe6b68819
All checks were successful
构建并部署 AI Agent 服务 / deploy (push) Successful in 10m38s
添加公共工具:联网搜索(DuckDuckGo)和可视化图表(Mermaid)
2026-04-29 23:10:15 +08:00

56 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
公共工具模块 - 联网搜索、可视化图表等公共功能
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}