创作动机
现如今,打工人不管是做企业决策、科学研究,还是个人项目,都离不开对数据的深入分析和处理。而 Python 作为一种功能强大且简洁易学的编程语言,在数据分析和科学计算领域占据重要地位,也是 Code Interpreter 的编程语言。然而,并非人人都是 Python 高手,大多数打工人都还在不断学习,所以想要利用 Python 进行代码运行和数据分析并非易事。如果在工作对话过程中,通过自然语言的交互就能运行 Python 程序做一些类似数据分析的事,那会方便不少。
为了解决豆包环境中缺乏代码解释器的难题,我花了些时间,基于扣子平台做了一个“Python代码终结者”的AI智能体。通过在豆包环境中模拟Code Interpreter的功能,为用户提供一种便捷的、实时的编程体验。用户可以直接在聊天窗口用自然语言发出指令,机器人就会分析需求,运行代码,获取数据可视化结果,并导出必要的文件。
初步测试下来,除了能作为学习Python的好帮手,还能解决一些日常的数据分析和可视化的任务。机器人链接是:https://www.coze.cn/store/bot/7400768722895683599,或者在扣子的Bot商店里搜索”Python代码终结者“,也能找到,大家可以试用一下。
Python代码终结者的界面
主要功能与特点
支持的编程语言和环境
Python代码终结者智能体主要支持Python语言,它能够根据用户的需求准确运行各种类型的 Python 代码。无论是简单的数学计算、字符串处理,还是复杂的数据分析算法和机器学习模型,智能体都能轻松应对。
支持的代码类型和复杂程度
例如,如果你需要计算两个数的和,可以直接向智能体发送以下指令:“计算 5 + 3 的结果。”智能体会产生对应的Python代码来进行计算,避免了大模型输出的不确定性。当然,如果你有一段想执行的数据分析代码,只需将代码片段发送给智能体,它也会立即运行并返回结果。基于扣子插件的沙盒技术,智能体还可以加载外部模块,如 numpy、pandas 和 sympy等,为你的数据分析提供更强大的支持。
代码执行和结果展示
用户可以在聊天窗口中输入Python代码,智能体将尝试运行并返回结果。我使用了扣子的卡片格式返回结果,相比纯文本回复,更加直观和高效。这种无缝的互动体验,使用户无需离开豆包环境即可完成代码编写、调试与执行。
数据可视化功能
在数据分析过程中,数据的可视化尤为重要。Python代码终结者智能体支持Matplotlib这样的绘图库,用户可以通过简单的代码生成图表,并直接在聊天窗口中查看。Python 代码终结者智能体支持多种数据可视化方式,包括折线图、柱状图、饼图、散点图等。
文件输出与管理
智能体支持将代码执行的结果以文件形式导出,如CSV文件、图像文件等。用户可以方便地下载这些文件,以便后续处理或分享。
使用场景与应用
编程教学与学习
Python代码终结者智能体应该能在编程教学与学习中有着一定的应用。教师可以在豆包中与学生实时互动,通过智能体演示代码的运行结果,学生则可以即时提交代码并获取反馈,从而大大提高学习效率。
例如,你想看一个Matplotlib的例子,就可以发送指令:“展示一个简单的Matplotlib代码示例”,智能体就会自动给出示例代码,如果你想执行看结果,就点击“执行这段代码“的快捷指令。
代码示例自动产生
图片生成结果
数据分析与处理
日常的数据分析任务,比如数据清洗、统计分析和可视化等,都能在智能体中运行并得到即时的反馈,使得数据分析过程更加高效、灵活。
例如,销售在对话中正好有一组销售数据想要简单画图展示一下,不用打开Excel或者PPT这样的工具来画图。只要向智能体发送指令:“2000到2005年的销售额分别是:1万,3万,4万,5万,6万,7万,请帮我做个柱状图进行展示”,智能体就会根据你的数据自动生成柱状图,并将图表展示给你。
销售额的柱状图展示
你还可以通过调整指令中的参数,如图表的标题、坐标轴标签、颜色等,来定制自己想要的可视化效果。比如你可以发指令说:“柱状图颜色帮我改成绿色”,智能体就会再画一个绿色的柱状图给你。
发送指令修改柱状图颜色
文件和图片下载
有时候想把代码运行的结果保存下来,所以就做了文件和图片下载功能,方便用户把文件分享给其他人,或者做进一步的处理。
文件下载功能
代码修复和解释
在实际测试过程中,我发现大模型产生的代码有机率会有错误,执行返回error,所以需要再次迭代修复一下代码,这个功能在Code Interpreter里面是自动修复的,目前豆包的插件还不支持,只会返回执行的错误信息,所以我加了一个快捷指令“修复这段代码”,就是让智能体根据返回的错误信息,尝试修复代码并再次运行。
代码修复的情况
其他待研究功能
因为Python可以做的事情很多,官方并没有给出代码执行器插件具体安装的Python库列表,所以我只能尽量尝试,比如我就发现有安装Sympy库,可以用来求解数学方程式。比如发指令:”x3+3x2+3x+1=0,编写程序求解这个方程“,智能体就会运行Python代码来进行数学求解。之后如果我有新的发现,也会分享给大家。
求解数学方程式
智能体的工作原理
核心插件和挑战
Python代码终结者智能体能够理解用户的自然语言输入,生成对应的Python代码,并在安全的沙箱环境中进行执行。其核心就是扣子的一个官方插件代码执行器(CodeRunner),这个插件接受一段Python代码,运行并返回执行结果。
如果都是正确的代码,那就没有问题,所以这个智能体的核心挑战就是如何自动产生正确的代码。大家很容易想到,LLM可以生成代码,但是实测的时候,发现直接让LLM生成代码成功率很低,因为LLM会以不确定的方式输出代码,而且会前前后后加好多解释和引导语。而这样的字符串给到代码执行器,是肯定无法执行的,所以需要让LLM的输出更精确,不要有多余的废话,然后还需要把生成的代码从上下文中提取出来,这样成功率才会提高。
插件商店
工作流模块划分
为这个智能体设计的工作流,主要分为四大模块:意图识别、LLM代码生成,代码后处理,以及代码执行模块。意图识别模块负责理解和处理用户输入的需求;LLM代码生成模块就尝试产生包含Python代码的字符串,代码后处理负责提取纯粹的代码,代码执行模块在沙箱环境中安全地运行代码。
工作流模块划分
豆包环境中的集成
工作流设计好之后,能够无缝集成于豆包的机器人聊天环境中。通过豆包Bot平台的简单设置,智能体就能够调用工作流,快速响应用户请求,并将代码执行结果返回到聊天窗口中,确保用户体验的流畅性。
优势与局限性分析
相比 Code Interpreter,Python 代码终结者智能体能够直接绑定扣子支持的所有发布渠道,如豆包和飞书。这使得用户无需科学上网,就能在工作和生活的社交平台上,通过自然语言进行代码执行和数据分析任务,打破了编程环境的传统束缚。
然而,当前版本仍有一些局限。例如,智能体本身尚不支持上传文件的分析,代码生成执行的成功率并非 100%,LLM 的模型选项中尚无专门用于代码生成的大模型可选,代码执行器的运行时间也有限。期望未来豆包能直接推出类似 Code Interpreter 的功能,或者增强 LLM 和代码执行器对复杂 Python 代码的支持程度。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。