| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- @tool
- def sql_agent1(user_query: str) -> str:
- """查询sql"""
- result = sql_agent.invoke({"messages": [{"role": "user", "content": user_query}]})
- return result["messages"][-1].content
- @tool
- def visualization_agent1(user_query: str) -> str:
- """可视化图表"""
- result = visualization_agent.invoke({"messages": [{"role": "user", "content": user_query}]})
- return result["messages"][-1].content
- tools1 = [sql_agent1, visualization_agent1]
- agent = create_agent(
- model=llm,
- tools=tools1,
- system_prompt=VISUALIZATION_PROMPT
- )
- # ─── 第四步:使用 ───
- res = agent.invoke({"messages": [
- {"role": "user",
- "content": "查询员工表所有数据并展示图形"
- }]})
- print(res['messages'][-1].content)
- print(res)
- 根据查询和可视化结果,为您汇报如下:
- ---
- ## 📋 员工表全部数据
- | id | 姓名 | 部门 | 薪资 | 入职日期 |
- |---|---|---|---|---|
- | 1 | 张三 | 技术部 | 20,000 元 | 2023-01-15 |
- | 2 | 李四 | 销售部 | 11,000 元 | 2023-02-20 |
- | 3 | 王五 | 技术部 | 16,000 元 | 2022-11-10 |
- | 4 | 赵六 | 人力资源 | 5,000 元 | 2023-03-01 |
- | 5 | 钱七 | 销售部 | 17,000 元 | 2022-12-05 |
- ---
- ## 📊 可视化图表已生成
- 图表包含 **1 行 2 列** 的子布局:
- 1. **左图**:各员工薪资横向条形图(按薪资从高到低排列,不同部门用不同颜色区分)
- 2. **右图**:各部门平均薪资柱状图
- ---
- ...
- ---
- 如需进一步分析(例如:员工入职时间分布、薪资与部门关系、与其他表的关联分析等),请随时告诉我!
- {'messages': [HumanMessage(content='查询员工表所有数据并展示图形', additional_kwargs={}, response_metadata={}, id='200b90a5-fad1-4687-9d45-1284575d3b52'), AIMessage(content='', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 69, 'prompt_tokens': 399, 'total_tokens': 468, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 256}, 'cached_tokens': 256}, 'model_provider': 'openai', 'model_name': 'kimi-k2.6', 'system_fingerprint': None, 'id': 'chatcmpl-6a43cdd595d281eb3e036517', 'finish_reason': 'tool_calls', 'logprobs': None}, id='lc_run--019f18dc-073c-7bc0-9c14-2b012d436a97-0', tool_calls=[{'name': 'sql_agent1', 'args': {'user_query': '查询 employees_df 员工表的所有数据'}, 'id': 'sql_agent1:0', 'type': 'tool_call'}], invalid_tool_calls=[], usage_metadata={'input_tokens': 399, 'output_tokens': 69, 'total_tokens': 468, 'input_token_details': {'cache_read': 256}, 'output_token_details': {}}), ToolMessage(content='查询完成。表名应为 `employees`,共 **5 名员工**,全部数据如下:\n\n| id | 姓名 | 部门 | 薪资(元) | 入职日期 |\n|---|------|------|-----------|----------|\n| 1 | 张三 | 技术部 | 20,000.00 | 2023-01-15 |\n| 2 | 李四 | 销售部 | 11,000.00 | 2023-02-20 |\n| 3 | 王五 | 技术部 | 16,000.00 | 2022-11-10 |\n| 4 | 赵六 | 人力资源 | 5,000.00 | 2023-03-01 |\n| 5 | 钱七 | 销售部 | 17,000.00 | 2022-12-05 |\n\n**简要洞察:**\n- **技术部**平均薪资较高(1.8 万),**销售部**薪资差异较大(1.1 万~1.7 万)。\n- **赵六**薪资最低(5,000),可能为实习生或助理岗。\n- 入职时间集中在 2022 年底至 2023 年初,属于较新的团队。', name='sql_agent1', id='47cbf3f5-e40c-412a-b302-99206d68303f', tool_call_id='sql_agent1:0'), AIMessage(content='', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 251, 'prompt_tokens': 704, 'total_tokens': 955, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 256}, 'cached_tokens': 256}, 'model_provider': 'openai', 'model_name': 'kimi-k2.6', 'system_fingerprint': None, 'id': 'chatcmpl-6a43ce1195d281eb3e036557', 'finish_reason': 'tool_calls', 'logprobs': None}, id='lc_run--019f18dc-f323-7802-88cb-ea25cfb5345d-0', tool_calls=[{'name': 'visualization_agent1', 'args': {'user_query': "基于 employees_df 员工表数据,创建以下可视化图表:\n1. 各员工薪资的横向条形图,按薪资从高到低排列\n2. 各部门平均薪资的柱状图\n3. 使用子布局(1行2列),图表尺寸为 figsize=(14, 6)\n4. 绑图前设置中文字体:plt.rcParams['font.sans-serif'] = ['SimHei', 'PingFang SC', 'DejaVu Sans']\n5. 设置 plt.rcParams['axes.unicode_minus'] = False\n6. 标题用英文,添加坐标轴标签\n7. 在图表上标注具体数值\n8. 用不同颜色区分不同部门的员工"}, 'id': 'visualization_agent1:1', 'type': 'tool_call'}], invalid_tool_calls=[], usage_metadata={'input_tokens': 704, 'output_tokens': 251, 'total_tokens': 955, 'input_token_details': {'cache_read': 256}, 'output_token_details': {}}), ToolMessage(content='图表已成功生成!以下是分析结果和业务洞察:\n\n---\n\n## 📊 可视化图表说明\n\n我创建了一个 **1行2列** 的子布局,包含:\n\n| 图表 | 内容 |\n|------|------|\n| **左图** | 各员工薪资横向条形图(按薪资从高到低排列,从上到下) |\n| **右图** | 各部门平均薪资柱状图 |\n\n**颜色映射**:\n- 🔵 **蓝色** = 技术部\n- 🟠 **橙色** = 销售部\n- 🟢 **绿色** = 人力资源\n\n---\n\n## 💡 业务洞察\n\n### 1. 员工薪资排名\n| 排名 | 姓名 | 部门 | 薪资 |\n|------|------|------|------|\n| 1 | 张三 | 技术部 | **20,000 元** |\n| 2 | 钱七 | 销售部 | **17,000 元** |\n| 3 | 王五 | 技术部 | **16,000 元** |\n| 4 | 李四 | 销售部 | **11,000 元** |\n| 5 | 赵六 | 人力资源 | **5,000 元** |\n\n### 2. 部门薪资分析\n- **技术部** 平均薪资最高(18,000元),说明技术人才在市场上稀缺性高,公司给予了有竞争力的薪酬。\n- **销售部** 平均薪资居中(14,000元),但内部差距较大(17,000 vs 11,000),这可能反映了销售业绩差异或资历不同。\n- **人力资源** 平均薪资最低(5,000元),仅有一名员工赵六,建议关注该岗位薪酬是否具有市场竞争力,以免影响招聘和留人。\n\n### 3. 建议\n- **技术部** 薪资最为均衡,是公司的核心人才梯队。\n- **销售部** 建议建立更清晰的薪酬体系,缩小同岗位间的薪资差距。\n- **人力资源** 岗位薪酬明显偏低,建议评估市场薪资水平后适当调整。', name='visualization_agent1', id='9f11db21-b69f-4359-b439-ffcd0bf92b08', tool_call_id='visualization_agent1:1'), AIMessage(content='根据查询和可视化结果,为您汇报如下:\n\n---\n\n## 📋 员工表全部数据\n\n| id | 姓名 | 部门 | 薪资 | 入职日期 |\n|---|---|---|---|---|\n| 1 | 张三 | 技术部 | 20,000 元 | 2023-01-15 |\n| 2 | 李四 | 销售部 | 11,000 元 | 2023-02-20 |\n| 3 | 王五 | 技术部 | 16,000 元 | 2022-11-10 |\n| 4 | 赵六 | 人力资源 | 5,000 元 | 2023-03-01 |\n| 5 | 钱七 | 销售部 | 17,000 元 | 2022-12-05 |\n\n---\n\n## 📊 可视化图表已生成\n\n图表包含 **1 行 2 列** 的子布局:\n\n1. **左图**:各员工薪资横向条形图(按薪资从高到低排列,不同部门用不同颜色区分)\n2. **右图**:各部门平均薪资柱状图\n\n---\n\n## 💡 关键业务洞察\n\n| 排名 | 姓名 | 部门 | 薪资 |\n|:---:|:---:|:---:|:---:|\n| 1 | 张三 | 技术部 | **20,000 元** |\n| 2 | 钱七 | 销售部 | **17,000 元** |\n| 3 | 王五 | 技术部 | **16,000 元** |\n| 4 | 李四 | 销售部 | **11,000 元** |\n| 5 | 赵六 | 人力资源 | **5,000 元** |\n\n### 部门薪资对比\n- **技术部** 平均薪资最高(18,000 元),两名员工薪资较为均衡,说明技术人才是公司重点保留的核心力量。\n- **销售部** 平均薪资居中(14,000 元),但内部差距大(17,000 vs 11,000),相差 6,000 元,可能反映业绩差异或资历差距。\n- **人力资源部** 仅赵六一人,薪资 5,000 元,显著低于其他部门,建议关注该岗位薪酬竞争力,避免影响招聘和留人。\n\n### 团队概况\n- 公司共 5 名员工,属于小规模团队。\n- 入职时间集中在 2022 年底至 2023 年初,团队组建时间较短。\n- 技术部 2 人、销售部 2 人、人力资源 1 人,人员配置基本合理。\n\n---\n\n如需进一步分析(例如:员工入职时间分布、薪资与部门关系、与其他表的关联分析等),请随时告诉我!', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 652, 'prompt_tokens': 1320, 'total_tokens': 1972, 'completion_tokens_details': None, 'prompt_tokens_details': {'audio_tokens': None, 'cached_tokens': 512}, 'cached_tokens': 512}, 'model_provider': 'openai', 'model_name': 'kimi-k2.6', 'system_fingerprint': None, 'id': 'chatcmpl-6a43cee7a4a8f533b6776ed5', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019f18e0-3530-75f1-b295-a7412a96f64b-0', tool_calls=[], invalid_tool_calls=[], usage_metadata={'input_tokens': 1320, 'output_tokens': 652, 'total_tokens': 1972, 'input_token_details': {'cache_read': 512}, 'output_token_details': {}})]}
- Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
|