Skip to content

一小时紧急准备:毕业设计面试突击指南

字数
2324 字
阅读时间
9 分钟

一、时间分配策略(60分钟)

时间段任务目标
0-10分钟阅读本文档,理解系统是干什么的能一句话说清项目
10-25分钟背诵核心知识点(架构、Agent、Selenium)回答基础问题不卡壳
25-45分钟背诵高频面试问题答案应对大部分提问
45-55分钟默记应急话术,练习“不会就说”避免冷场
55-60分钟放松,再过一遍亮点自信上场

二、系统一句话介绍(必须背熟)

我做了一个多源Web表格自动填写系统。它能把Excel、SQL文件或网页表格里的数据,通过大模型智能识别字段含义,自动填到另一个在线网页表单里,省去人工复制粘贴。


三、系统架构速记(用嘴画出架构图)

面试官可能会让你画架构,你可以这样说:

前端:Vue 3 写的网页,用户上传文件、查看字段映射、点按钮操作。

后端:Python FastAPI,提供5个接口。内部有三层:

  • 服务层(指挥官):协调整个流程。
  • Agent层(智能大脑):使用LangChain调用大模型,自动推理字段匹配关系。
  • 工具层(干活的):读Excel、解析SQL、操控浏览器、匹配下拉选项。

数据流转:用户上传文件 → 系统读成表格数据 → 同时分析目标网页表单有哪些输入框 → Agent推荐哪个源列对应哪个目标字段 → 用户确认 → 浏览器自动填表 → 导出结果文件。


四、核心技术点速记

1. LangChain Agent(论文创新点)

  • 做了什么:让大模型自动找出源数据列和目标表单字段的对应关系。
  • 为什么用Agent而不是直接调API:因为Agent能多步推理——它先调用工具A了解源数据有哪些列,再调用工具B了解目标表单有哪些字段,然后综合分析得出映射建议,并给出置信度。直接调API只能一步回答,做不到这种自主规划。
  • 用什么工具:两个Python函数,一个读源数据特征,一个读目标字段特征,用@tool装饰器声明。

2. Selenium 浏览器自动化

  • 做什么:控制Firefox浏览器,自动打开网页、找到输入框、填入数据。
  • 遇到的难点
    • 动态网页:有些表格是JS加载的,静态请求拿不到,必须用真浏览器。
    • 元素定位:最初用输入框的提示文字当标签,结果显示“请输入您的姓名”,后来改为查找<label>标签的正确关联方式。
    • 性能:设置eager加载策略,不等图片资源,只等页面结构加载完,速度变快。

3. 字段智能匹配

  • 源数据的“客户姓名”和目标表单的“fullname”,通过大模型理解语义后配对。
  • 下拉框选项匹配:源数据“中等尺寸”对应目标选项“medium”,用大模型判断,失败时降级为同义词比对。

4. 前后端分离

  • 前端Vue 3,后端FastAPI。
  • 前后端通过JSON格式数据交流。
  • 前端控制步骤顺序(先上传、再解析、再匹配、再填充)。

五、高频面试问题及回答模板

Q1:介绍一下你的毕设项目

:我的毕设是一个多源Web表格自动填写系统。它解决的是跨系统手工填表效率低的问题。用户可以上传Excel、SQL文件或指定网页表格,系统能自动分析目标网页表单的结构,利用大模型智能匹配字段,最后通过浏览器自动化把数据填进去。整个系统采用前后端分离,后端用Python FastAPI,前端用Vue 3。

Q2:你提到用大模型做字段匹配,具体怎么做的?

:我用LangChain框架搭了一个Agent。这个Agent有两个工具,分别可以查看源数据的列信息和目标表单的字段信息。Agent会自己决定先调用哪个工具,拿到信息后再推理出对应关系,最后输出一个JSON,包含推荐映射和置信度。比直接调API强的地方在于,Agent能自主完成多步推理。

Q3:浏览器自动化怎么实现的?

:使用Selenium库控制Firefox浏览器。对于目标网页,我会先解析它的表单结构,提取每个输入框的name、label、类型。填充时,根据字段名定位到对应输入框,然后填入值。对于下拉框和单选框,还会用大模型做一次值到选项的匹配。为了加快速度,我用了无头模式和eager加载策略。

Q4:遇到什么困难?怎么解决的?

:最大的困难是目标表单字段标签提取不准。有些网页用placeholder当标签,有些用label,还有必填符号(*号)干扰。我设计了多级降级策略:优先通过label的for属性匹配,找不到就找包裹的label标签,再找不到才用placeholder。还对标签文本做了清洗,去掉星号和冒号。

另外,SQL文件解析也踩过坑。一条INSERT语句里可能有多个括号行,还有注释干扰。我写了引号状态机来正确处理括号内的逗号,并先清除注释再解析。

Q5:你的系统有什么创新点?

:有两个创新。一个是把大模型用在表格字段的语义匹配上,解决了传统规则匹配搞不定的同义词问题。另一个是人机协同机制——系统推荐映射后,用户可以在表格里修改确认,保证了最终准确率。

Q6:如果源数据为空,填充时会怎样?

:我在数据填充阶段用fillna('')把空值替换成空字符串,这样填充到网页就是空白,不会出现nan字样。

Q7:为什么选择Vue 3和FastAPI?

:Vue 3的组合式API写起来灵活,我用单文件开发,快速原型。FastAPI支持异步,性能好,而且自动生成API文档,调试方便。

Q8:如何保证填充准确性?

:通过两层保证。第一层是Agent推荐映射时给出置信度,低置信度的用户会重点检查。第二层是填充后浏览器保持打开,用户可以肉眼确认填写结果,再手动关闭窗口。

Q9:数据安全怎么考虑?

:系统是本地运行,不上传数据到外部服务器(除了调用大模型API时传输字段特征,但不含完整数据)。大模型API用的是阿里云百炼,Key存在本地环境变量。

Q10:你怎么测试的?

:我用了100组不同的表格对进行测试。大模型推荐准确率约80%,用户修正后达到95%以上。单条记录填充平均8秒。


六、如果被问到完全不懂的问题

应急话术

  • “这个部分我当时调研过,但考虑到时间和复杂度,最终选择了更稳健的方案……”
  • “这块我不是特别深入,但我可以讲讲和它相关的XXX我是怎么实现的……”
  • “这是一个好问题,我后续的优化方向正好包括这一点……”

绝对不要说:“我不知道”、“我没做”。


七、最后提醒

  1. 带电脑的话,可以打开系统演示,边操作边讲解,效果远好于空讲。
  2. 提前打开项目代码,熟悉文件结构,面试官可能会让你打开某个文件。
  3. 自信,这个项目技术栈全、难点多、有创新,在本科毕设里属于高质量。
  4. 如果被质疑(比如“为什么不用某某技术”),先肯定对方,再解释你的选择理由。

祝你面试顺利!

贡献者

The avatar of contributor named as freeway348 freeway348

文件历史

撰写