一、项目背景

        随着大数据和人工智能技术的快速发展,Python数据分析与挖掘已成为数据科学领域的核心技能。本项目旨在构建一个集代码展示、在线编辑运行、智能问答于一体的交互式教学平台,为学习者提供沉浸式的编程学习体验。

接上篇:Python实战-AI驱动的数据挖掘实战交互式学习平台开发_python数据挖掘实战王磊-CSDN博客

本文为上篇实训的进阶版本,主要改进 AI 智能助手:上篇仅调用硅基流动 API 进行知识点生成与问答功能,无上下文记忆。本文基于 Dify 平台构建了两个智能体:

  1. 代码专属助手(通过 API 调用,自动感知左侧代码内容,流式解释当前代码);
  2. 通用 Python 问答(通过 iframe 嵌入独立 Agent,可自由咨询任何 Python 问题)。

Dify 的流式输出、对话记忆和平台化能力,能实现从“单模型调用”到“多场景智能体”的升级。

二、目标

  • 提供可视化的代码学习环境,支持章节式内容组织;

  • 实现代码的在线编辑、运行和结果展示;

  • 集成AI智能助手,提供代码解释和通用Python问答服务;

  • 支持数据文件预览,方便学习者理解数据格式。

三、系统架构

3.1 技术栈

前端框架 Streamlit 快速构建数据应用,支持热重载
后端语言 Python 3.8+ 核心业务逻辑
数据处理 Pandas, NumPy 数据读取与分析
可视化 Matplotlib 图表生成与展示
AI服务 Dify Agent API 智能问答与代码解释
深度学习 TensorFlow 支持深度学习相关代码运行

3.2 系统架构图

四、核心功能模块

4.1 章节与文件管理模块

        自动扫描项目目录下的章节文件夹和Python文件,提供导航菜单。

        通过Python的os.listdir扫描当前目录,筛选出以“第X章”或数字开头的文件夹作为章节;进入章节目录后,列出所有.py文件,用标签页展示。

4.2 代码展示与编辑模块

        先是展示原始代码(只读),滚动至下方提供有可编辑的代码区域;学习者可以直接在平台上修改参数、添加打印语句,观察输出变化,加深理解。

  • 使用Streamlit的st.code展示语法高亮代码,并限制高度滚动。

  • 使用st.text_area提供可编辑区域,支持用户任意修改。

4.3 代码运行引擎模块

        安全执行用户编辑后的Python代码,捕获输出结果和生成的图表;点击“运行”即可看到结果,无需本地环境,运行错误也能友好提示。

  • 使用Python内置exec()在隔离命名空间中执行代码。

  • 重定向标准输出和错误输出,将打印内容捕获到文本框。

  • 劫持matplotlib.pyplot.show(),将图表保存为内存图片,再用st.image展示。

4.4 AI智能助手模块

        本平台提供两个不同定位的AI助手:一是针对当前代码的即时解释助手,二是保留自由询问灵活性的通用问答助手,满足不同学习场景。其中,代码问答采用苏格拉底式问答方式,通过层层引导启发学生思考,有效帮助学生学习和掌握知识。

        1. 代码专属助手:自动读取左侧当前代码,可问 “这段代码做了什么?” “如何修改实现XX功能?” 等。

        2. 通用Python问答:利用Dify建立独立Agent界面(配置了章节知识库),可自由提问Python语法、数据分析算法、机器学习模型等,不依赖当前代码。

  • 代码专属助手:通过Dify API的/chat-messages接口,将代码内容和问题拼接后发送,使用streaming模式逐字输出,并保存conversation_id维持上下文。

  • 通用Python问答:通过iframe直接嵌入Dify Agent的网页地址,用户可在独立窗口中完成所有对话。

4.5 图表可视化模块

        自动显示代码运行时生成的Matplotlib图表。主要是在代码运行引擎中捕获 plt.show() 调用,将图表转为PNG图片并集中展示在运行结果区域,能直观看到图表输出。

五、用户界面设计

六、技术亮点

6.1 创新的教学交互模式

        将“代码阅读、在线编辑、一键运行、AI问答”整合在同一页面,学生无需切换工具即可完成“学习-实践-纠错”闭环。

6.2 双模式AI助手

  • 快速问答模式:集成在界面内,代码专属助手自动感知当前代码内容;无需手动复制粘贴,提问即解释;

  • 完整Agent模式:独立窗口,功能更丰富。

6.3 渐进式学习支持

        章节化内容组织、数据文件预览、代码重置功能,方便反复尝试。

七、后续优化方向

1. 代码自动保存 用户编辑的代码自动保存到本地
2. 多语言支持 支持英文等语言界面
3. 代码评分系统 对用户代码进行自动评分和反馈
4. 学习进度追踪 记录学习进度和完成情况
5. 在线代码分享 支持分享代码片段到社区

八、总结

        该Python交互式教学平台是一个集代码学习、在线运行、智能问答于一体的综合性教学工具。通过Streamlit框架快速构建用户界面,结合Dify Agent提供的AI能力,为学习者创造了“所见即所得”的交互式学习环境。

        本平台的设计具有良好的可复用性:所有教学内容和代码文件均以标准文件夹结构组织(章节目录 + .py代码文件 + 数据文件),平台通过自动扫描机制动态生成导航,无需修改任何代码即可适配不同教材或课程。教师只需将新的章节文件夹和代码文件放入项目目录,平台便能自动识别并提供完整的交互功能。

九、平台展示视频

python大数据分析与实战网页视频

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐