面灵AI→

帆软终面面经:全程被打断的压力面

轮次
终面
时间
2026-09
来源
牛客网

《面试题目》

  1. 你怎么理解这个岗位?
  2. 挑一个你实习项目里提到的技术名词,讲讲它具体是怎么工作的、工作流怎么跑起来。
  3. Dify 是你自学的,还是学校课程教的?
  4. 为什么做 RAG,不直接微调?
  5. 你做过最难的事是什么?
  6. 最失败的事是什么?
  7. 压力最大的事是什么?

原帖末尾是反问环节:问了公司业务(知识库、AI 客服、数据看板),以及「到岗前对产品场景和业务方向有什么可以提前了解的」。

《参考解析》

为什么用 RAG 而不是直接微调

这是整场面试里唯一一道真技术题,值得答满。核心逻辑是:RAG 改的是「模型能看到什么」,微调改的是「模型怎么说话」,两者解决的不是同一个问题。

  • 知识时效性:业务知识库每天都在变(客服话术、产品文档、工单)。RAG 只要更新向量库,分钟级生效;微调要重跑训练、重新评测、重新发布,成本是小时到天级。
  • 事实归因与溯源:客服、审计这类场景要求答案可追溯。RAG 能把命中的原文片段一起返回,用户能点开看;微调把知识揉进权重里,说不清依据,出了问题无法定位。
  • 成本与门槛:RAG 不需要标注几万条高质量问答对,也不需要 GPU 训练资源;微调一次的数据清洗 + 训练 + 评测链路就要人力和算力,迭代一轮的成本远高于换 embedding 模型或调分块参数。
  • 知识的权限与隔离:RAG 可以在检索层按租户/角色过滤,同一套模型服务多个客户;微调做不到「同一份权重里按用户切知识」。
  • 幻觉与遗忘:微调在小样本上容易过拟合,还会带来灾难性遗忘,把通用能力带坏;RAG 的错答更多是「检索没召回」,好定位也好修。

反过来也要说清楚什么场景该微调,这样才不像背答案:需要固定输出风格/格式(比如严格 JSON、特定话术模板)、需要领域黑话和简写(模型不认识的自造词)、需要把大模型蒸馏成小模型降本降延迟、或者任务本身是分类/抽取这类判别式任务。工程上常见的是两者结合:先用 LoRA 把格式和领域语感调稳,再用 RAG 补事实。

Dify 的工作流到底怎么跑起来的

Dify 是 LLM 应用编排平台,工作流(Workflow / Chatflow)本质是一张 DAG,运行时按节点依赖依次执行。讲清这条链路就够了:

  1. 开始节点声明输入变量(用户问题、会话变量、上传文件)。
  2. 参数提取 / 问题改写节点把用户口语化的问题整理成检索 query(多轮对话里还要做指代消解)。
  3. 知识库检索节点:chunk 文本 → embedding → 向量检索 top-k → 可选 rerank 重排 → 拼进上下文。这一步决定了答案上限,分块大小、重叠长度、top-k、相似度阈值都是要调的参数。
  4. LLM 节点:prompt 模板里注入 {{context}} 和 {{query}},把检索结果和系统提示一起发给模型;可以配 temperature、最大输出长度、是否结构化输出。
  5. 条件分支 / 迭代 / 代码 / HTTP 请求节点:做意图路由(FAQ 直答 vs 走大模型)、批量处理、调外部接口。
  6. 结束节点输出最终回答,并把引用来源一并返回。

运行时层面,节点之间靠变量池传值,会话变量在同一个 session 内持久化;一次请求会落一条 workflow run 记录,每个节点的输入输出都能回放,这就是它做调试和可观测的方式。部署形态一般是 API 服务 + 异步任务队列 + 关系库 + 缓存 + 向量库,长任务走队列异步执行。

「最难 / 最失败 / 压力最大」这三题怎么答

原帖里这三题的答法是被面试官逐条打回的:「做工作流重做了很多版方案」被打回「这不是很正常吗」,答「时间长、成本高、效果差」又被回「还是没理解」。问题不在事实,在缺了你的判断和归因。这种题的标准结构是:

  • 背景与目标(一句话,带量级):要解决什么问题,成功标准是什么。
  • 你面对的真实约束:时间、人力、上下游依赖、技术不确定性。约束越具体,「难」才成立。
  • 你的决策点:为什么选 A 不选 B,当时放弃了什么。这是面试官最想听的部分。
  • 结果与代价:量化结果(上线时间、效果指标、返工次数)。
  • 复盘:如果重来一次你会怎么做(提前对齐需求、先做技术验证、把方案评审前置)。复盘才是「失败」题真正的得分点——把它说成「正常流程」等于告诉面试官你没反思。

被频繁打断时怎么不崩

这类面试官的打法是不断打断、质疑、让你「再练练」。可操作的三条:

  1. 先给结论,再给论据。被打断往往是因为铺垫太长。用「结论 + 三条原因」的结构,三十秒讲完主干,对方有兴趣再展开。
  2. 答反问时不要反向质问。被质疑「没感觉哪里压力大」时,正确动作是换一个更具体、更可验证的例子(具体到某天、某个阻塞、你做了什么动作),而不是去论证对方「不理解业务所以没感觉」。
  3. 提前设一个止损点。如果对方全程不给展开空间、明显不打算了解业务背景,这场面试的信息量已经拿够了,把反问环节用来确认关键事实(业务方向、团队规模、岗位职责),别浪费在情绪上。

反问环节怎么问

原帖的反问是「到岗前对产品场景和业务方向有什么可以提前了解的」,得到的是「没什么需要了解的,面试通过以后我再告诉你」——这类问题把主动权完全交给了对方,得到的也常是敷衍。更有效的问法是把问题落到可验证的事实上:这个岗位入职后前三个月负责什么模块、团队现在多少人、业务是自研还是交付项目、有没有正在推进的技术改造。这些问题对方很难用一句话打发,你也能真的判断要不要去。