面灵AI→

小厂智能体应用开发面经:PDF 切块、大模型 JSON 输出与 NL2SQL

结果
凉经
时间
2026-10
来源
牛客网

《面试题目》

  1. 请做一下自我介绍。
  2. 请介绍你的项目,并接受面试官对项目细节的连续追问。
  3. PDF 文档是怎么切块的?
  4. PDF 里的图片、数学公式是怎么处理的?
  5. 大模型输出的 JSON 格式不规范,你会怎么处理?
  6. Jev 模型是用来做什么的?
  7. 记忆和知识库是怎么做测评的?
  8. NL2SQL 项目里,检索内容超出上下文限制怎么办?
  9. 最近在学习什么新技术?
  10. 你还有什么想问我的吗?(反问环节)

《参考解析》

PDF 解析与切块:切的是语义单元,不是字数。 切块没有标准答案,先给判断依据再给参数:按文档的语义结构切——标题层级、段落、列表、表格边界——比按固定字数硬切更能保住上下文;chunk 太大检索噪声高、太小上下文断掉,实践中常在几百 token 一档并留 10%~20% 重叠,具体数值要用你自己的评测集调出来而不是背一个。表格要单独成块并保留表头(把表头拼进每一行),跨页表格先合并再切,否则检索回来的是没有列名的数字。图片一般先做版面分析拿到图注、图号与所在章节,再用 OCR 或多模态模型生成描述,把它当成一段可检索的文本,同时留好图与正文的引用关系(页码、图号作为元数据),这样生成答案时才能指回原图。数学公式直接用纯文本会丢掉结构,常见做法是转成 LaTeX(公式识别模型或专门工具),公式作为独立块并带上所属小节的标题,检索时既可以用 LaTeX 原文嵌入,也可以配一句自然语言说明再嵌入。这里的取舍很清楚:版面分析加 OCR 比纯文本抽取贵得多、也更容易出错,值不值得取决于你的文档里图表公式占多大比例——答这一问时把「我的文档长什么样、因此选了哪条路、代价是什么」讲出来,比罗列工具名有效。

结构化输出:别指望 prompt 把格式约束死,做三层兜底。 生成侧优先用模型厂商的结构化输出 / 函数调用能力,把 JSON Schema 直接给模型,能上约束解码(受语法约束的生成)就上,同时降低温度、给一两个正例;这是最稳的一层,但并非所有厂商和模型都支持,支持了有时也会限制模型发挥。解析侧要假设输出一定会脏:剥掉 Markdown 代码围栏和多余解释文字、只截取第一个 { 到最后一个 }、容忍尾随逗号与中文引号,增量流式返回时还要能在边界处做不完整解析,别等整段结束才处理。校验侧用 JSON Schema 或 pydantic 逐字段校验,失败时把具体的校验报错回灌给模型,只让它修格式、不动内容,重试一到两次仍失败就走兜底分支。兜底的口径要看场景:能默认的给默认值并记日志,关键字段缺失宁可挂起让人确认,也不要静默填一个看起来合理的值——模型幻觉最难查的就是这种被悄悄补上的字段。

长上下文与测评:先算预算,再谈裁剪。 超出上下文时先做预算——模型窗口减去 prompt 模板和输出预留,剩下的才是检索可用额度;然后按优先级裁:多路召回后过一层重排模型(cross-encoder 之类)再取 top-k,对命中片段做压缩或摘要,或者分段抽取后再聚合。NL2SQL 有个特殊点:schema 本身就很占额度,所以要先把「检索」用在 schema 上——按问题召回相关的表、列和示例值,只喂相关 DDL 和少量样例数据,而不是整库建表语句全塞进去;再不行就按「先逐段抽出与问题相关的表列与过滤条件,再合成 SQL」的两段式来,截断始终是最后手段且要显式标注被截断。记忆与知识库的测评要分层:检索层看召回率、命中率、MRR 这类指标,靠一份带标注的问题—片段对;生成层看忠实度(答案是否有检索内容支撑、有没有编)、答案相关性和引用是否正确,可以 LLM 打分加人工抽样校准;端到端看任务成功率,并且每个坏例都要归因到「没召回 / 召回了没用对 / 模型本身答错」,否则你不知道该改切块、嵌入、重排还是 prompt。这套集子要能重复跑,任何一次改动都回测一遍。

项目深挖、新技术与反问:这场面试真正的失分点。 「拷打项目」考的是「你做的」和「团队做的」的边界,准备时每个项目都过一遍:背景与目标、你的角色、技术选型与替代方案、可量化的结果、最难的一个问题怎么定位、如果重来会改什么;细节答不上来比答错更伤。被问到不熟的东西(比如公司自研或内部代号的模型,像帖里的 Jev 模型)就照实说没用过,再说清你在同类模型上的使用经验和你会怎么快速上手,硬编最危险。「最近在学什么新技术」不是报菜名,讲一个真用过的场景:解决什么问题、效果如何、哪里不行。反问环节提前备两三个问题,问团队业务、当前技术栈与迭代方式、这个岗位最看重的能力。作者这场不到十分钟被问了十个问题、自述紧张到没有逻辑、第八题直接没答上——这种密集快问筛的是基础广度和抗压,遇到不会的题,把「这部分我不熟」和你的思路或查证路径一起讲出来,比沉默和绕圈都好;回答被打断时先给三十秒结论,面试官想深挖自然会追问。