5 行代码把一段文字变成图表:LangChain 智能数据可视化实战
5 行代码把一段文字变成图表:LangChain 智能数据可视化实战
【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain
周会前,你得把一段堆满数字的运营文字变成老板能看懂的图表,最耗时的往往不是画图,而是"这段数据到底该用折线还是柱状"。用 LangChain 做智能数据可视化,这个判断可以交给模型。
一句话定位:30 秒跑通
LangChain 是一个 LLM 应用开发框架,把模型、工具、数据处理接成标准组件,你描述任务,不用自己拼胶水代码。装它只要一条命令:
pip install langchain装完即可 import,下面的示例都基于它最新的 agent 入口,源码看 libs/langchain_v1/langchain/agents/,想改行为时能直接对照实现。
它跟老办法差在哪
以前做数据可视化是手工活:整理数据、凭经验挑图表类型、再手写 matplotlib 代码,换一份数据就得重来一遍。现在把原始文字直接丢给一个带工具的 agent,模型自己分析特征、给出图表建议,你只管把建议落成图。以前换模型要改一堆调用代码,现在换模型只是换一个provider:model字符串。
把文字变成图的流水线
把数据喂进去
LangChain 的文档加载和文本切分组件负责原始数据:短文本直接作为输入,长报告先用 text splitter 切成块再喂。数据保持原文即可,特征判断这一步交给模型。
让模型挑图表
给模型配一个"记录结论"的工具,create_agent会自动跑"模型调用—工具执行—结果回灌"的循环,不用你手写 while loop:
from langchain.agents import create_agent agent = create_agent( "openai:gpt-4o-mini", tools=[recommend_chart], system_prompt="你是数据可视化顾问,分析数据后推荐图表类型并说明理由。", )跑完得到一个可对话的 agent 实例,把数据传进去,它会先让模型判断再调工具落结论(recommend_chart的定义在下面的完整例子里)。
出图
模型返回"柱状图"或"折线图"加理由后,接一行 pandas 的 plot 或 matplotlib 的 savefig 就能出 png;想更自动,就给 agent 再加一个执行绘图代码的工具,让它自己出图。
复制即跑:从一段文字到图表推荐
下面这份可以直接复制运行(需要OPENAI_API_KEY):
from langchain.agents import create_agent from langchain.tools import tool @tool def recommend_chart(reason: str) -> str: """记录模型给出的图表类型建议。""" return reason agent = create_agent("openai:gpt-4o-mini", tools=[recommend_chart], system_prompt="你是数据可视化顾问,分析数据后推荐图表类型。") data = "2026上半年销售额:1月40万 2月45万 3月52万 4月48万 5月60万 6月66万" print(agent.invoke({"messages": [("user", data)]})["messages"][-1].content)跑完会打印出一句类似"建议用柱状图展示 6 个月度销售额并标注上升趋势"的推荐加理由,这就是智能数据可视化的核心产出。
新手容易卡住的两个点
注意:openai:gpt-4o-mini这种provider:model写法要求装对应的集成包,OpenAI 要额外pip install langchain-openai,缺包时的报错不太直观,新手很容易在这卡住。
小贴士:工具调用循环依赖模型本身支持 function calling,换本地小模型或老模型时先确认这一点;想加多工具、状态、断点,可以读 agents 目录里的 middleware 机制,OpenAI 侧的模型实现在 libs/partners/openai/。
更多 API 细节看仓库 README 指向的官方文档,模型兼容问题可以开 issue 提问;跑通之后,欢迎把模型给出的图表建议在 issue 区晒出来。
【免费下载链接】langchainThe agent engineering platform.项目地址: https://gitcode.com/GitHub_Trending/la/langchain
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
