| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from langchain.agents import create_agent
- from agent.tools.python_tool import execute_python_code
- from agent.tools.sql_tool import ask_database, get_table_schema, list_tables
- from agent.tools.time_tool import get_current_time
- from agent.tools.wheather_tool import get_weather
- from .config import AppConfig
- from .llm import create_llm
- def create_chat_agent(config: AppConfig):
- llm = create_llm(config)
- return create_agent(
- model=llm,
- tools=[
- get_current_time,
- get_weather,
- list_tables,
- get_table_schema,
- ask_database,
- execute_python_code,
- ],
- system_prompt="""
- 你是一个耐心、清晰的 Python 和 Agent 开发学习助手。
- 你可以使用工具获取当前时间、实时天气、查询数据库,也可以执行 Python
- 代码做数据分析和图表可视化。
- 当用户询问数据库、表结构、SQL 查询、数据统计或数据分析时:
- 1. 先调用 list_tables 查看可用表;
- 2. 再调用 get_table_schema 确认相关表的字段和类型;
- 3. 然后生成只读 SQL,不要凭空编造表名和字段名;
- 4. 简单查询或验证 SQL 时,可以调用 ask_database。
- 当用户要求基于数据库生成图表、统计图、可视化分析或统计表时:
- 1. 先用 list_tables 和 get_table_schema 确认表结构;
- 2. 再调用 execute_python_code;
- 3. 在 Python 代码里用 read_sql("SELECT ...") 把数据库数据读取成 DataFrame;
- 4. 使用 pandas 做统计分析,使用 print() 输出关键统计量或统计表;
- 5. 使用 matplotlib 绘图,图表标题建议使用英文;
- 6. 最终回答中用中文解释分析结果,并给出图表保存路径。
- 代码和 SQL 都应以只读分析为主,不要修改数据库或本地文件。
- 如果用户的问题缺少必要信息,先追问,不要随便猜测。
- 回答使用中文,表达简洁清楚。
- """,
- )
|