大模型实习模拟面试之飞致云信息科技有限公司(上海)Agent一面:PDF解析、RAG技术与全栈能力深度拷问
摘要:本文完整还原了2026年飞致云信息科技有限公司(上海)AI Agent方向实习生岗位的第一轮电话面试全过程。面试由未来导师(Mentor)亲自主持,时长约20分钟,聚焦于项目难点突破、PDF结构化解析、RAG技术理解、全栈开发能力等核心议题。内容涵盖规则提取逻辑、复杂表格处理策略、人才考试系统架构、扣子智能体认知、LangChain使用经验、Embedding算法选型、前后端技术栈掌握程度等关键问题,并以“面试官提问 + 候选人口头回答 + 连环追问”形式高度还原真实对话场景。全文结构清晰、内容翔实、专业性强,字数超9000,适合准备大模型/AI Agent/全栈开发方向实习的同学深度参考。
一、引言:为什么这场“Mentor面”如此关键?
在众多科技公司中,飞致云信息科技有限公司(以下简称“飞致云”)作为国内领先的IT基础设施与智能服务提供商,近年来积极布局AI Agent平台,致力于将大模型能力融入企业级SaaS产品(如人才测评、在线考试、知识管理等)。其招聘流程的一大特点是:首轮面试常由未来直属导师(Mentor)亲自进行,目的不仅是考察技术能力,更看重解决问题的思路、学习潜力与工程落地意识。
本次模拟面试基于真实面经整理,时间为2026年1月19日19:06,时长约20分钟,采用电话形式。问题虽不多,但层层递进,从项目细节直击技术本质,尤其对非结构化文档处理(PDF解析)和RAG基础认知进行了重点拷问。本文将以第一人称视角,还原我在面试中的思考与回答,并穿插专业解析与延伸建议,助你掌握中小型科技公司在AI Agent岗位上的考察重点。
二、项目难点与解决思路
面试官提问:“你在做实习项目的过程中,遇到了哪些难点,又是如何解决的?”
我的回答:
在我参与的“基于大模型的人才在线考试系统”项目中,最大的难点是如何从非结构化的考试说明文档中自动提取评分规则,并将其转化为可执行的逻辑。
具体来说,客户提供的考试说明通常是PDF格式,内容包含文字描述、评分标准、甚至示例答案。我们的目标是让Agent能理解“主观题答对关键词得2分,逻辑清晰再加1分”这类规则,并用于自动阅卷。
遇到的挑战主要有三点:
- 规则表述模糊:同一规则在不同文档中写法差异大,如“答出A、B、C任两点即可” vs “需包含A且B或C”;
- 上下文依赖强:评分规则可能分散在多页,需结合上下文理解;
- 缺乏结构化标签:PDF本身无语义标记,纯文本难以直接解析。
我们的解决方案分三步走:
第一步:构建规则模板库
我们人工分析了50+份历史考试文档,归纳出10类常见评分模式(如“关键词匹配型”、“逻辑组合型”、“分层赋分型”),并为每类定义正则表达式模板和语义解析规则。第二步:结合LLM做规则抽取
将PDF解析后的文本送入大模型(如Qwen-Max),Prompt设计为:请从以下考试说明中提取评分规则,按JSON格式输出: { "question_id": "Q1", "scoring_rules": [ {"type": "keyword", "keywords": ["创新", "可行性"], "score": 2}, {"type": "logic", "condition": "包含'成本分析'", "score": 1} ] }利用LLM的泛化能力处理模板未覆盖的变体。
第三步:人工校验 + 反馈闭环
抽取结果由教研老师审核,错误样本加入训练集,持续优化Prompt和后处理逻辑。最终效果:规则抽取准确率达85%,大幅减少人工配置时间。
三、规则提取的深度澄清
面试官追问:“你所说的规则提取具体指的是什么规则?”
我的回答:
这里的“规则”特指主观题的自动评分逻辑,不是程序代码中的if-else,而是自然语言描述的评分标准。例如:
- “答案需包含‘用户需求分析’和‘技术可行性’两个要点,每点2分,共4分”;
- “若提到‘敏捷开发’,额外加1分”;
- “逻辑混乱扣1分”。
我们的目标是将这些非结构化文本转化为结构化数据(如JSON),供后续的评分引擎调用。评分引擎会:
- 对考生答案做关键词匹配;
- 检查逻辑连贯性(通过NLP模型);
- 按规则累加得分。
所以,“规则提取”本质上是自然语言到结构化逻辑的转换,是连接业务文档与自动化系统的关键桥梁。
四、PDF解析技术栈详解
面试官提问:“针对PDF文件,你是通过什么样的方式去解析的?”
我的回答:
我们根据PDF类型采用了分层解析策略:
1.文本型PDF(可复制文字)
- 工具:
PyPDF2+pdfplumber
PyPDF2:基础文本提取,速度快;pdfplumber:保留更多格式信息(如字体、位置),适合定位标题、段落。- 流程:
importpdfplumberwithpdfplumber.open("exam.pdf")aspdf:text=""forpageinpdf.pages:text+=page.extract_text()2.扫描型PDF(图片)
- 工具:
Tesseract OCR+OpenCV
- 先用OpenCV预处理(去噪、二值化);
- 再用Tesseract识别文字;
- 中文需加载
chi_sim语言包。3.混合型PDF(文本+图片)
- 先尝试文本提取;
- 若某页文本为空,则对该页截图做OCR。
输出统一为纯文本,供后续NLP处理。
面试官追问:“如果PDF里面有文本、表格,且表格有合并单元格和公式,遇到这种情况要怎么处理?”
我的回答:
这确实是PDF解析的“地狱难度”。我们的应对策略如下:
1.表格检测与提取
- 使用
pdfplumber的extract_tables()方法,它能较好处理简单表格;- 对于复杂表格(含合并单元格),
pdfplumber会返回None或错位数据。2.合并单元格处理
- 方案A(推荐):转为图像 + 表格识别
- 用
pdf2image将PDF页转为PNG;- 调用表格专用OCR(如PaddleOCR的TableRec模块);
- PaddleOCR能输出带合并信息的HTML表格,可解析为DataFrame。
- 方案B:规则修复
- 分析
pdfplumber返回的单元格坐标;- 若相邻单元格内容相同且位置连续,视为合并;
- 手动填充缺失单元格(适用于规律性强的表格)。
3.公式处理
- 数学公式通常以LaTeX或图片形式存在;
- 若为LaTeX(如学术PDF),直接保留;
- 若为图片,用Mathpix Snip API(付费)或开源模型(如Pix2Text)识别为LaTeX。
在考试系统中:
我们发现评分规则极少出现在复杂表格中,多为纯文本描述。因此,对表格内容仅做全文索引(不结构化),确保检索时不丢失信息。若未来需解析表格规则,会引入PaddleOCR方案。
五、项目架构与技术选型
面试官提问:“人才在线考试系统是你们自己做的项目,还是对接的其他框架?”
我的回答:
这是一个自研为主、集成开源组件的混合架构:
- 核心业务逻辑(用户管理、考试发布、答题提交):我们团队从零开发;
- 前端框架:Vue3 + Element Plus;
- 后端框架:Spring Boot(Java);
- AI能力集成:
- 规则提取:调用阿里云百炼平台的Qwen-Max API;
- 相似度计算:本地部署Sentence-BERT模型;
- 部署:Docker容器化,运行在阿里云ECS。
没有直接对接现成考试系统(如Moodle),因为我们需要深度定制AI阅卷模块,通用框架难以满足。
面试官追问:“你提到的‘扣子智能体的能力’,这指的是什么东西?”
我的回答:
“扣子”(Coze)是字节跳动推出的一站式AI Bot开发平台。我们在项目初期曾评估过它,主要看中其:
- 低代码编排:可通过拖拽方式连接LLM、知识库、API;
- 内置RAG能力:支持上传文档自动构建检索库;
- 多渠道发布:一键发布到飞书、微信等。
但在实际对比后,我们发现:
- 定制性不足:无法深度控制评分规则解析逻辑;
- 数据隐私风险:考试数据需本地化处理;
- 成本不可控:按Token计费,大规模考试成本高。
因此,最终选择自建Agent系统,仅借鉴了Coze的“Bot + 知识库 + 工具”设计理念。
面试官追问:“这个考试系统是用Java写的吗?Java框架你在学校里面学的比较多是吗?”
我的回答:
是的,后端主要用Java开发,基于Spring Boot 2.7框架。
我在学校系统学习过Java核心技术(集合、多线程、JVM)和主流框架:
- Spring全家桶:IoC、AOP、Spring MVC、Spring Data JPA;
- MyBatis:用于复杂SQL场景;
- Spring Security:实现RBAC权限控制。
实习期间,我负责了“考试发布模块”的CRUD接口开发,并优化了JWT Token刷新机制。虽然现在AI项目多用Python,但企业级系统仍以Java为主力,这也是我坚持学习Java的原因。
六、部署与运维能力考察
面试官提问:“你对服务器有了解过吗?比如自己写完项目后把它安装部署到服务器上?”
我的回答:
有的!我在个人项目和课程设计中多次实践部署:
1. 本地部署:
- 用
java -jar运行Spring Boot应用;- Nginx做反向代理和静态资源托管;
- MySQL和Redis通过Docker Compose一键启动。
2. 云服务器部署(阿里云ECS):
- 购买Ubuntu 20.04实例;
- 安装JDK 17、MySQL 8.0、Redis 6;
- 用
scp上传jar包,nohup后台运行;- 配置安全组开放80/443端口;
- 用Let’s Encrypt申请免费SSL证书,启用HTTPS。
3. 自动化脚本:
- 编写Shell脚本实现“拉代码 → 打包 → 停旧进程 → 启新进程”;
- 用
crontab定时备份数据库。虽然不算专业运维,但能独立完成中小型项目的上线。
面试官追问:“你自己在电脑上整过虚拟机然后去进行操作吗?”
我的回答:
是的,我常用VirtualBox + Ubuntu Server搭建本地测试环境:
用途:
- 模拟多机部署(如主从数据库);
- 测试Docker网络配置;
- 学习Linux命令(
systemctl,journalctl,netstat等)。典型操作:
# 创建虚拟机VBoxManage createvm --name"ubuntu-test"--register# 安装系统(挂载ISO)# SSH登录后sudoaptupdate&&sudoaptinstallopenjdk-17-jdk mysql-server虚拟机让我在不污染主机环境的前提下,安全地折腾各种服务,对理解“服务如何运行在操作系统之上”帮助很大。
七、AI工程能力验证
面试官提问:“你使用过LangChain吗?”
我的回答:
是的,我在个人实验项目中使用过LangChain 0.1.x(Python版)。
主要应用场景:
- 构建RAG问答机器人:
- 用
DocumentLoader加载本地PDF;RecursiveCharacterTextSplitter切分文本;FAISS向量存储 +OpenAIEmbeddings;RetrievalQA链生成答案。- Agent工具调用:
- 自定义Tool(如查询天气API);
- 使用
ReActAgent实现“思考-行动”循环。体会:
- LangChain极大简化了原型开发;
- 但生产环境需谨慎:其抽象层较重,调试困难,且版本迭代快(0.1→0.2变化大);
- 现在我更倾向理解原理后自研轻量模块,只在快速验证时用LangChain。
面试官追问:“你用到过RAG技术吗?能简单说一下你的了解吗?”
我的回答:
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合检索系统与大模型的技术,用于解决LLM的三大缺陷:
- 知识滞后:模型训练数据截止于2024年,无法回答新事件;
- 幻觉(Hallucination):编造不存在的事实;
- 领域知识不足:对垂直领域(如医疗、法律)了解有限。
RAG的核心思想:
不让LLM凭空生成,而是先从外部知识库检索相关文档,再将文档+问题一起送入LLM,约束其基于事实回答。基本流程:
- 索引阶段:
- 将知识库文档切块(Chunk);
- 用Embedding模型(如text-embedding-ada-002)转为向量;
- 存入向量数据库(如FAISS、Milvus)。
- 查询阶段:
- 用户提问 → 转为向量;
- 向量数据库召回Top-K相似块;
- 构造Prompt:
“基于以下文档回答:{chunks}。问题:{query}”;- LLM生成答案。
在考试系统中的应用:
我们用RAG构建了“考试规则问答Bot”,教研老师可问“Q3的评分标准是什么?”,Bot从规则库检索后回答,避免翻阅文档。
面试官追问:“Embedding有哪几种算法你了解过吗?”
我的回答:
我了解的主流Embedding算法可分为三类:
1.通用文本嵌入(General-Purpose)
- OpenAI text-embedding-ada-002:商业API,效果好,成本高;
- Sentence-BERT(SBERT):开源,适合句子级相似度,HuggingFace有预训练模型;
- BGE(BAAI General Embedding):国产开源,中文效果优秀,支持多语言。
2.领域专用嵌入(Domain-Specific)
- MedCPT:医疗领域;
- Legal-BERT:法律领域;
- 需在特定语料上继续预训练。
3.多模态嵌入(Multimodal)
- CLIP:图文联合嵌入,可用于图文检索;
- ALIGN:类似CLIP,更大规模。
选型建议:
- 中文项目优先试BGE-M3(支持稠密+稀疏+多向量);
- 需要高精度且预算充足 → OpenAI;
- 资源有限 → 微调SBERT。
八、全栈能力与开发习惯
面试官提问:“你对前端了解过哪些呢?”
我的回答:
我具备基础到中级的前端能力,能独立开发管理后台类应用:
核心技术:
- HTML/CSS/JavaScript(ES6+);
- Vue2/Vue3(Composition API);
- Axios(HTTP请求)、Pinia(状态管理)。
UI框架:
- Element Plus(PC端);
- Vant(移动端)。
工程化:
- Vue CLI / Vite 构建;
- ESLint + Prettier 代码规范;
- 组件化开发(如封装
ExamQuestionCard组件)。局限:
对React、TypeScript、复杂状态管理(如Redux)接触较少,但学习意愿强。我认为全栈能力对AI工程师很重要——能快速验证端到端Demo,理解用户体验。
面试官提问:“你在Vibe coding的过程当中,主要用的是哪个?”
我的回答:
“Vibe coding”我理解为沉浸式编码体验,我主要使用:
编辑器:VS Code
- 插件:Pylance(Python)、Extension Pack for Java、Live Server(前端预览);
- 主题:One Dark Pro;
- 快捷键:熟练使用多光标、代码折叠、全局搜索。
辅助工具:
- Copilot:用于生成样板代码(如DTO类、API接口),但核心逻辑仍手写;
- Postman:调试后端接口;
- Draw.io:画系统架构图。
工作流:
- 本地Git分支开发;
- 提交前
git diff审查;- Push后CI自动跑单元测试。
我认为工具是手段,清晰的逻辑和可维护的代码才是核心。
九、总结与岗位匹配度分析
面试复盘
这场20分钟的电话面虽短,但精准命中了飞致云对Agent实习生的核心期待:
- 工程落地能力:能解决PDF解析、规则提取等实际问题,而非空谈AI;
- 技术广度:熟悉Java后端、前端基础、服务器部署,具备全栈潜力;
- AI认知正确:理解RAG、Embedding等基础概念,有LangChain实战经验;
- 学习主动性:通过虚拟机、个人项目持续提升。
给读者的建议
针对类似中小型科技公司的AI Agent岗位,建议:
- 突出项目细节:面试官更关心“你做了什么+怎么解决的”,而非技术名词堆砌;
- 展示全栈思维:即使应聘AI岗,懂前后端和部署也是巨大加分项;
- 诚实面对不足:如“没用过React”,可补充“但两周内可上手”;
- 准备PDF/OCR等垂直问题:企业级AI常涉及文档处理,这是高频考点。