实习项目报告:AI 交互式网页数据反馈系统原型(天平测量未知质量)

项目背景与问题定义

  • 本项目旨在把课堂中的“知识点交互网页”从演示工具升级为学习数据工具,解决:
  • 学生在网页中的关键交互行为未被记录,教师无法判断真实理解程度
    仅记录“点击次数”缺乏教学意义,需要更关注误区路径、纠错次数、步骤耗时等(手册强调:学习行为 → 理解判断 → 教学决策)
  • 本原型选择的具体场景为:利用天平测量未知物体质量实验,通过“砝码 + 游码”的操作过程,采集具有教学意义的过程数据,并在教师端形成可读反馈。

项目目标(对照任务手册)

  • 记录学生交互行为:拖拽砝码、使用提示、提交答案、工具误用等
    生成结构化学习数据:以会话(session)与轮次(round)组织 JSON 数据
  • 教师端可视化反馈:提供总览(均值/极值/标准差)与单次实验明细
    形成闭环:学生端完成并正确后自动提交数据 → 教师端刷新查看统计与流程

原型总体设计

  • 学生端(交互实验页)
  • 核心交互:拖拽砝码到右托盘,使天平平衡;支持游码(0–5g,0.1g 精度)微调
  • 实验机制:未知质量随机生成(范围 5–98g,部分轮次带 0.1g 小数)
  • 工具规则:砝码需用“镊子”,游码需用“手拿”,并记录工具误用
    防遗忘上报:学生提交正确时自动把数据写入教师端数据源(localStorage),同时保留手动“提交给教师”按钮
  • 教师端(数据反馈页)
  • 总览视图:面向“全体学生/全体轮次”的关键指标统计(均值、标准差、最小、最大)
  • 明细视图:按会话(学生)查看每轮指标 + 学生操作流程(砝码加/减序列)
  • 数据治理能力:支持删除某条会话数据;支持导入学生导出的 JSON 文件

数据结构与采集内容(结构化 JSON)

  • 学生端数据按两层组织:
  • 会话级(session):session_id、student_name、started_at、rounds[]、tool_errors[]
  • 轮次级(round):unknown_mass、behavior(过程)、understanding(理解判断)
  • 采集重点(与手册“行为层 + 理解判断层”一致):
  • 行为层:拖拽记录、砝码盘状态变化、纠错、提示使用、步骤耗时
  • 理解判断层:首次提交是否正确、总提交次数、典型错误提交路径、完成方式(直接命中/试错/使用提示)

教师端指标定义(本期验收重点)

  • 教师端展示 5 类指标(每项提供均值、标准差、最小、最大):
  • 学生初次提交成功率:understanding.first_try_correct 的比例
  • 学生平均提交次数:understanding.total_attempts 的均值
  • 学生错误操作次数:behavior.tool_errors.length 的均值(如手拿砝码、镊子夹未知物体等)
  • 学生冗余操作次数:
    规则:第一次放置砝码不计冗余;之后每次“拿出再放入同一重量”计 1 次冗余
  • 实现思路:检测“移除某重量后下一次再次添加该重量”
    学生利用提示次数:behavior.hint_used_count 的均值
    同时在单轮明细里展示学生操作流程(例如:添加 20g → 添加 10g → 移除 10g → 添加 5g …),用于快速复盘学生策略与可能的误区。

当前实现结果(可交付物)

  • 学生端可运行交互网页:完成砝码拖拽、游码微调、随机未知质量、多轮尝试
  • 结构化数据采集:支持导出 JSON;正确后自动“传输”到教师端数据源
  • 教师端网页:
    总览统计(均值/标准差/极值)
    单次实验明细(含操作流程)
    支持导入 JSON、删除某条数据
    工程化准备:提供 .gitignore 便于推送 GitHub 与 mentor 共享进度

如何运行与验证

  • 学生端:打开 balance-experiment/index.html
  • 教师端:打开 teacher-dashboard/index.html
  • 建议用本地静态服务打开(避免 file:// 环境差异):
    cd “d:\Intern\data collection project”npx serve .
  • 验证流程:
  • 学生端输入姓名 → 完成一轮并答对
  • 教师端点击“刷新数据” → 查看总览指标与该学生会话明细
  • 教师端可删除该会话,或导入学生端导出的 JSON

项目思考

  • 项目大量依赖于人类设计,可以把选择看到数据的权力交还给教师,引导教师输入想要看到的数据,后台调用ai修改代码展示数据,否则当项目量变大,人力维护成本极大。

查看


📅 实习日报 | Day 2

🛠 1. 工程与技术落地 (Morning)

上午主要完成了后端开发环境的搭建及代码架构的重构,确保后续开发的可扩展性和数据安全性。

  • 服务器配置
    • 购入并配置了一台 Singapore Region 的服务器。
    • 本地完成 SSH 连接配置。
    • Docker化部署:在服务器端部署 Docker,通过 Docker 安装了数据库。
    • 数据持久化处理:通过命令行配置 Volume Mapping(挂载卷),将数据库数据映射到宿主机指定目录,解决容器重启或迁移可能导致的数据丢失问题
    • 在本地 Goland Database 模块添加了远程数据源,实现了本地 IDE 直接管理远程数据库,提升调试效率。
  • 代码重构(Refactoring)
    • 针对昨天 main.go 单文件代码过于臃肿的问题进行了架构分层。
    • 实现分层
      • Model:定义数据结构。
      • Repository:处理数据库交互。
      • Handler:处理业务逻辑与路由。
    • 成果:目前的工程结构清晰,降低了后续功能的维护成本,对于整体业务逻辑更清晰。

📱 2. 产品体验与调研 (Afternoon)

下午查阅了《产品实习手册》,并对现有的 AI 工具进行了初步调研。

  • 产品手册学习:结合手册内容,初步思考了“AI + 学习”的结合点。
  • 大模型基座测试
    • 对目前主流的大模型进行了同质化测试(Consistency Test)。
    • Self-Reflection:目前的测试比较浅层,暂时无法从复杂的教育场景中区分各家模型的优劣势,后续需要结合具体 Prompt 场景进行深度评测。
  • 竞品/工具体验
    • 体验了多款 AI 产品,其中 Manus 的表现令人印象深刻。
    • 下班前探索了 AI Studio 的进阶用法,熟悉了更复杂的参数调试。

💡 3. 行业观察与思考 (Evening)

晚上看到关于 Seedance2 的演示视频,引发了关于“AI + 教育”的新思考:

  • 现象:目前的视频生成模型(如 Seedance2 等)已经可以通过少量 Prompt 生成高质量视频。
  • 思考
    • 视觉是人类学习最高效的媒介之一
    • 目前的教育痛点在于高质量视频课件制作成本高、周期长。
    • 未来机会:当视频 AI 技术进一步成熟(成本降低、生成可控),“即时生成的视频学习资源” 将成为可能。用户只需要有想学的知识点,AI 实时生成对应的讲解视频。

Part 0 我对教学的理解

教学的本质,是用对象理解的概念解释对象不理解的概念,从而扩大对象的理解范围,达到“教”的目的。这里的媒介很丰富,文字,图片,动画,结构图表。根据我此前使用ai学习的经历来看,ai+学习有以下几个方面的特点。

  • 有能力回答学习者几乎所有的问题,在所有成熟的可教学的领域都有应用可能,在没有争议的静态内容(如数学推导)方面可以做到准确无误(部分大模型有待提升)
  • 回答问题的质量很大程度上依赖于学习者的ai素养,能否给出准确的提示词决定了效果,学习的主动性也起到重要作用。(可能的解决方案:就像人类教师面对面教学时可能取得更好的效果,训练ai采集学习者的表情或语调等信息,依据更多元的信息做出对学习者目前状态的判断;在不能准确判断学习者目前状态时主动提问,采集更多信息帮助定位当前状态)
  • 回复生成时间短,全时待命,学习者可以在任何自己需要的时候获得指导,省去了学习者主动搜索信息的时间,极大提高效率,可以适配任务驱动的学习
  • 在更软一点的领域,比如人际关系,心理健康,爱情观等方面,ai仍然无法替代人类教师或者同学的作用,但后续如果有拟人的智能体出现,情况可能改变
  • 有因材施教的潜力。在我个人的使用经历中,我会在初期摸索出我认为适合自己的学习方式,多数时候是一种“先看自然语言解释,再落实具体细节”的方式,建立起已知和未知的映射,我常在对话的开头把这些告知ai,让其记住我的学习策略。

Part 1 顶流大模型体验

  • 个人认为提示词是很重要的一部分,在任务一:给十岁小孩科普的情景下,我相信如果有合适的提示词,任何一个目前的旗舰模型都能胜任这项工作。我们使用了最朴素的提示词,即文档中提到的两条要求的直接复制,模型们在第二条上表现不一,在各自认为合适的地方穿插了三个例子,但是由于我们也不清楚三个例子具体要求了什么,所以我觉得无法给出评判。
  • 关于更像什么类型的思考者,这可以在提示词中进行定义,模型都有转换的能力
  • 关于擅长与不擅长:Gemini擅长多模态任务,支持超长文本框(200万甚至上千万token)理解,但在超长文本下可能丧失注意力。gpt能力全面,有调研模式,代理模式等集成化的功能,并且没有明显短板。qwen优势是小参数量可达到合格的水平,适合本地部署。Claude在遵循具体指令,定向修改代码方面有不可替代优势。上述优势大多面向开发,在教育方面的优缺点我不能确定。

Part 2 顶流ai产品体验

具体产品

Manus

  • 此前我从未尝试过使用Manus,我输入了请自行完成一个项目,向我展示Manus的能力,Manus在十分钟内完成了项目构建和完成,做出了一个展示目前ai发展趋势的网站,虽然略显简陋,但是框架完整,前端观感舒适,我被非常大的惊艳到了,后面在我需要进行完整项目开发时我计划体验它的付费版本(有七天免费使用)。我认为其强大之处在于把人从具体代码中完全解放出来,虽然据Gemini所说在面对超大项目时可能产生上下文遗忘导致代码冲突,但是也有一定解决手段,并且可以利用cursor配合claude等工具微观调整代码。

OpenClaw

  • 注意到OpenClaw的persistent memory机制是完全开源的,并且把它以markdown文件存储在硬盘中。其他的功能更像把电脑的部分控制权交予ai,但是记忆机制在学习中有很大的应用潜力。教育者应该在互动中记住学习者的学习偏好,理解习惯等特征,这套机制可以立即应用在产品中。

Cursor

  • 注意到Cursor在帮助开发者理解项目方面的优势,可以在30s的时间内依托整个项目源码生成可视化的项目结构或者运行数据,这事实上是一种帮助开发者 学习 这个项目的能力,有在学习产品上应用的可能。

Genspark

  • 由于免费额度有限,还没有体会到Gemini指出的优势就不可用了,氪金太。Gemini强调了其在检索信息之后合并为wiki式的网页的特色,我认为这是一种可以考虑的知识呈现模式,并且,在实际产品中,可以多进行形式的展示,让使用者自行选择喜欢哪一种形式,形成记忆增强体验感。

AI依赖性

  • 我认为上述产品都有极强的ai依赖性,其中据我了解manus的机制是由主脑发布要求,分配给不同的agent来处理,剩下三个均有明显的ai依赖

Part 3 教育行业垂直产品体验

Flint

  • 登录时会询问你的身份和偏好,这很好,但是我选择以大学生身份进入后,仍推荐给我老师端的功能。UI简洁好看。注意到cite功能,为对话生成一个只读的快照,能让教师知道学生如何使用了ai,这点是特色。响应速度极快,0延迟,既是优点也是缺点。我使用了我的数学作业题目询问,它完全胡说八道。我认为人类教师在面对学生问题时也需要思考得出结论,即时回复不是必须,只要延迟不太长就行。在继续探索的过程中,我看到了可以描述学校教学环境的窗口,但是并不容易被发现。我认为给产品加上良好的新手引导十分重要,不应该过于复杂,但可以让用户大体明白可以如何使用,并且可以做成教程形式持久化存在,用户随时可以探索。在继续探索的过程中我在角落里找到了教师新手引导,推测以教师身份进入会直接弹出
  • 由于一个一个测试非常疲惫,所以先不看更多了,转而询问Gemini目前的教育ai是否都没有能力解决大学数学中比较困难的一类问题。

总体特征

  • 教育ai在能力上呈现出偏科特征,在涉及自然语言理解和运用的方面更为突出,但难以确保其数理逻辑准确无误。因此,目前的产品大都集中在K12阶段(取所有木板最短的一根),并且在我的具体使用中感觉这部分技术壁垒并不明显,难以在所有作品中选出最突出的一个,那些优点感觉都有复现的可能,并且考虑到生育率降低的现状,k12阶段用户可能正在减少。

一些思考

  • 但在最近两年的大模型发展中,LLM+Verifier的体系正在逐步攻克这一领域。具体的,由LLM生成可能的解法,由形式化语言验证器(如lean)来确保答案的正确,使得ai具备完成更前沿数理探究的可能,如果这一部分的能力成熟,那么把教育+ai推广到大学教育会成为可能。
  • 可能可以以大厂的模型成果作为内核,打造更适合中国学生的功能,比如学生上传教材和往年考试题,通过往年考题拟合今年考题,(通过往年题拟合新题的方案在学生中已经广为流传),或是把生成的解法用更具互动式的UI呈现出来,抑或是用自然语言解释每一步的目。目前仍存在很大一部分学生数学问题畏惧使用LLM,剩下的大都只能依靠文字输出,交互体验一般。
  • 可能面临的问题:大学生群体不一定拥有充足的资金支持大量调用前沿模型,可能需要为题目进行难度分级,调用不同的模型,或者用搜题系统来辅助,如果题目库中有原题则直接调用导出,节省资源。
  • 可能的卖点:上述的模式有帮助任何一个学生在短期内突击考试取得好分数的能力,也能帮助研究生或者博士或者研究者定向学习某一个研究中需要用到的知识点。同时,如果感觉特色过于单一,可以类似genspark做一个当前所处领域最新消息汇总的工具,用户既有被动接受消息的权力,也有主动查找某个感兴趣字段的权力,这个工具可以把信息集成汇总总结成用户喜欢的展示形式。
  • 除此之外,我注意到一些ide正在把复杂的配置(编辑json或者yaml文件)工作用一系列简单的按钮和填空代替,也许这一行为可以推广。
  • 在上述的工具中加入签到,求运势,今日天气,社区论坛等等带有日常和社交属性的功能会让用户更容易产生依赖,从而在一段时间的使用后习惯使用。
  • 可以先调查大学生使用意愿以及大模型使用现状
  • 产品的愿景 :一个所有大学生都会使用的学习生活助手,专注于校园生活。


实习日志:后端开发学习与环境搭建(Day 1)

1. 今日完成事项

环境搭建

  • 开发工具:安装并配置了 GoLand IDE,熟悉了相关的快捷键与插件配置。
  • 数据库:安装并初始化了 PostgreSQL,完成了本地数据库服务的启动与连接测试。
  • 基础环境:配置完成了 Go 语言开发环境(Goroot/Gopath),确保 go mod 等基础命令运行正常。

理论储备

  • Go 基础自学:通过 Go by Example 阅读并练习了切片(Slice)、结构体(Struct)、错误处理(Error Handling)以及指针等与数据库操作相关的语法片段。
  • 技术栈初探:初步了解了 Gin (Web 框架) 与 GORM (ORM 框架) 的基本用法。

2. 核心逻辑理解

经过第一天的学习,我初步构建了 Go 后端处理业务的核心模型,理解了数据在系统中的流转过程:

  1. 输入层 (Gin):负责监听前端请求。通过 Gin 的上下文(Context)接收前端传来的 JSON 数据。
  2. 转化层 (Struct):利用 Go 的结构体作为“协议中转站”。Gin 将 JSON 自动解析(Bind)到 Struct 中。
  3. 持久层 (GORM):利用 GORM 框架将 Struct 对象翻译成对应的 SQL 语句,实现对 PostgreSQL 的 CRUD(增删改查)操作。
  4. 输出层:执行结果再次通过 Gin 包装成 JSON 返回给客户端。
  5. 本质上,是在调用和修改数据库中的内容。

3. 遇到的挑战与难点

  • 语法习惯差异:由于是从其他语言(或初次接触)转向 Go,目前对 Go 的语法形式感到不太习惯,并且Gin和GORM框架的一些具体函数实现过于繁杂,阅读具体函数实现源码时存在一定的阻力。
  • 函数实现细节:虽然从宏观上理解了 CRUD 的闭环流程,但在具体编写代码时,只能初步利用ai实现功能,但不能明确每个语句起到什么作用。
  • 功能数量有限:很多还没实现但是想实现的基础内容,脑力不足,干不动。
  • ai额度限制:gemini3pro额度过少,后面一直在使用flash

4. 明日计划

  • 进一步熟悉Gin和GORM框架,做到能知道每条语句是干什么的,从而能脱离ai进行小范围调整。
  • 了解前端会用到的语言,把前后端串联起来,知道整个开发大概是怎么回事
  • 希望获得更近的工位,可以和fze边讨论边干活

摘要:在完成了博客的基础搭建后,我意识到“本地开发”的局限性。为了实现“随时随地写代码”并接触现代 DevOps 流程,我将开发环境迁移到了 GitHub Codespaces,并配置了 GitHub Actions 实现自动化部署。本文记录了将基础设施代码化 (IaC) 的全过程。

阅读全文 »
0%