腾讯AI应用开发一面,我懵了
面试官是个看起来挺随和的大哥,但问的问题一个比一个刁。面完我坐在工位上发了十分钟呆,脑子里全是刚才那些没答好的点。趁热乎劲儿,我把整场面经撸下来,你们当故事看也行,当避坑指南也行。
1. 如果让你设计普罗米修斯的监控指标,会涉及哪些?考虑业务层吗?应用层指标呢?
说实话我之前对监控的理解停留在“能跑就行”。他这么一问,我才意识到监控水很深。
我回答的思路是:先分两层,一层是应用层,一层是业务层。应用层指标就是那些通用的,比如请求延迟、错误率、吞吐量、CPU/内存占用、队列积压量。业务层就要看具体场景了,比如AI应用里,token消耗速率、模型调用成功率、RAG召回命中率、意图识别准确率这些。
他追问业务层具体怎么定义“成功”。我说比如一次对话,如果用户点了“不满意”或者重复提问三次以上,就算业务失败,可以打点上报。他点了点头,但我心里没底。
2. 为什么要把Prompts、MCP等调用模块抽象出来?有什么作用,解决了什么问题
这个问题我答得还行,因为之前项目里踩过坑。如果不抽象,每个业务逻辑里散落着各种prompt拼接、工具调用代码,一旦要换模型或者调整工具,改起来跟拆炸弹似的。
抽象出来之后,核心价值就两点:一是可维护性,prompt模板统一管理,MCP工具调用统一封装;二是可扩展性,比如后面要支持多模型、多工具链,只要实现同一个接口就行,业务代码不用动。说白了就是把变化隔离起来。
他接着问那你抽象成什么样了。我说我们搞了个PromptManager和ToolInvoker,业务侧只传上下文和意图,具体拼装交给它们。他问有没有考虑过配置化,我说有,prompt都放配置中心,动态加载,不用重启服务。他表情放松了点。
3. 在实际使用中,你觉得换新模型需要更换提示词吗?
这个问题太真实了。我之前从GPT-3.5切到GPT-4o,同样的提示词效果直接掉了10%的准确率。因为不同模型对指令的敏感点不一样,有的模型对“你是一个XX专家”这种角色设定很吃,有的模型更看重few-shot样例格式。
所以我的回答是:大概率要换。至少要做A/B测试,不能直接平迁。而且有些模型对分隔符、特殊标记的容忍度不同,比如Claude对XML标签友好,有的模型就乱掉。经验上,换模型后起码要重新调一版prompt,除非是同一系列的小版本升级。
他追问有没有自动化方法。我说可以用提示词优化器,比如DSPy那种思路,把prompt当成可优化参数,根据评估指标自动调,但现阶段还是人肉调居多。
4. 在加载预设提示词过程中你可能会遇到什么问题?比如提示词超长怎么办?如何检测过敏词?
加载预设提示词的时候,最容易出问题的就是长度。模型上下文窗口有限,系统prompt加上历史对话、RAG召回文档,很容易撑爆。我们现在的做法是动态裁剪,保留最相关的历史轮次,用滑动窗口;对于超长文档,先做chunk,再按相关性取top-k,而不是全塞进去。
过敏词检测这块,我们接了一个内部的内容安全服务,在用户输入和模型输出两端都做过滤。但这里有个坑:如果检测太严,很多正常问题也会被拦,比如医疗咨询里的症状词。所以加了一层白名单机制,对特定领域的术语放行。他问我怎么处理误杀,我说可以给用户返回一个模糊话术,比如“这个问题我还没学会”,而不是直接报敏感词,体验会好一点。
5. 使用大模型时会考虑哪些因素?什么是最重要的
我第一反应是效果,但马上改口说成本。因为在实际业务里,效果是基本要求,成本才是能不能上线的关键。如果每次调用要花几毛钱,用户量一大就烧不起了。
所以我会综合看:响应延迟、吞吐量、成本、效果、稳定性。其中成本控制最重要,因为可以通过缓存、精调小模型、语义路由把高频简单问题用便宜模型解决,复杂问题才用贵模型。
他问你怎么衡量效果,我说业务指标,比如任务完成率、用户留存,而不是只看BLEU这类自动指标。他嗯了一声,没再追问。
6. 提示词也分情况对吧,系统预设提示词、用户输入提示词,切分超长提示词导致语义不完整怎么办?
对,系统提示词是骨架,用户提示词是血肉。切分的时候如果粗暴按token数截断,很容易把用户问题里的关键实体切断,比如一个长名词被劈成两半。
我们的处理方法是:在切分前先做语义边界检测,用句号、换行等自然分隔点切,尽量不破坏完整性。如果实在超长,就压缩历史对话,保留最近几轮,而不是截断当前用户输入。对于系统提示词,可以提前做摘要压缩,把冗长的角色描述精简。
他问压缩会不会丢信息,我说会,但相比截断造成的语义断裂,压缩更可控。我们还试过用一个小模型先对长文本做摘要,再塞进prompt,效果还行。
7. RAG原理是什么?和模糊搜索有什么区别?或者说对比,一定会比模糊搜索高效吗?怎么提高他的召回率
RAG就是检索增强生成,先从一个知识库里找到相关文档片段,然后把片段和问题一起喂给大模型,让它基于这些材料回答。和模糊搜索比,模糊搜索只返回文档列表,RAG多了一步生成,能直接给答案。
但RAG不一定比模糊搜索高效,因为多了生成环节,延迟高很多。如果只是找文档,模糊搜索就够。RAG的价值在于需要综合、推理的场景。
提高召回率的方法:文档切分粒度要合理,不能太大也不能太小;embedding模型要选领域适配的;可以加多路召回,比如关键词召回+向量召回融合;还可以做query扩展,把用户问题改写几个变体去检索,取并集。
他问有没有试过HyDE,我说试过,用模型生成一个假设答案再去检索,有时能提升召回,但太慢,线上没敢用。
8. 你对于上下文是怎么理解的,范畴,边界是什么?工具算不算
上下文不只是对话历史,它应该包括当前会话的所有可用信息:系统设定、历史消息、用户画像、外部知识(RAG结果)、工具调用结果。工具调用结果当然算上下文,因为它会影响模型下一步的决策。
边界在于模型的上下文窗口限制,以及哪些信息对当前任务真正有用。不是所有历史消息都要保留,有些闲聊轮次可以摘要或丢弃。我一般会维护一个结构化的上下文对象,里面分几个区:系统区、用户画像区、关键事实区、近期对话区、工具返回区。每次调用前按优先级填充,超了就按规则裁剪。
他问工具返回结果很大怎么办,我说可以只保留摘要或关键字段,比如搜索工具返回的网页摘要,而不是全文。
9. 意图识别
意图识别我们是用一个专门的小模型做的,把用户输入分类到预设的意图类别里,比如“查询订单”、“闲聊”、“投诉”等。小模型延迟低,成本也低。
难点在于多意图和模糊意图。比如用户说“我这个订单怎么还没到,你们也太慢了吧”,既有查询意图又有投诉情绪。我们的做法是支持多标签分类,然后下游策略引擎根据意图组合决定行为。模糊意图就用主动澄清,反问用户。
他问小模型怎么训练,我说用大模型蒸馏,先让GPT-4标一批种子数据,然后人工修正,再训一个BERT级别的分类器。上线后持续收集badcase回流训练。
10. SSE协议是什么?
SSE就是Server-Sent Events,服务端向客户端单向推送事件的协议。在AI应用里,我们用它做流式输出,因为大模型生成token是一个一个出的,用SSE可以边生成边推给前端,用户体验好。
和WebSocket比,SSE更轻量,基于HTTP,天然支持断线重连,但只能服务端推客户端。如果不需要双向通信,SSE足够了。
他问有没有遇到过问题,我说有些代理会缓冲SSE流,导致前端收不到实时数据,需要在响应头里加X-Accel-Buffering: no,或者用HTTP/2。
11. 如何做的RAG?是从0开始吗?
不是从0,我们是基于LangChain搭的,然后做了很多定制。文档先经过解析、清洗、分块,然后用bge-large-zh做embedding,存到Milvus向量库。检索时先做query embedding,搜top10,再用一个重排序模型(bge-reranker)精排,取top3。最后拼到prompt里。
我们踩的坑主要是文档解析,PDF里的表格、图片里的文字很难搞,后来接了个OCR服务。还有增量更新,文档改了向量库要同步,我们搞了个定时任务对比哈希。
他问为什么用Milvus,我说主要是性能,十亿级向量检索延迟也能控制在毫秒级,而且支持混合查询。
12. 用过什么AI工具?如何理解记忆?怎么去设计记忆模块?应该给记忆分哪些模块?此处深聊
我用过ChatGPT、Copilot、Notion AI这些。关于记忆,我认为它不只是存对话历史,而是要能提取和更新关于用户的事实、偏好、任务进度。
设计记忆模块的话,我分三层:
- 短期记忆:当前会话的上下文,用滑动窗口管理,保留最近N轮。
- 长期记忆:跨会话的用户画像和关键事实,存在数据库里,用向量+结构化字段。
- 工作记忆:当前任务的临时状态,比如多步推理的中间结果、工具调用栈,任务结束就清掉。
更新长期记忆不能每次对话都全量写,太费资源。我们会用一个异步任务,在对话结束后让模型判断有没有值得记住的新信息,有的话就抽取成结构化记录upsert进去。
他问怎么处理记忆冲突,比如用户说“我住在北京”,下次又说“我刚从上海搬来”。我说用时间戳+置信度,新信息覆盖旧信息,但保留历史版本可追溯。还可以用模型判断是否真的冲突,有时候只是补充。
13. 谈谈对OpenClaw的理解
OpenClaw我没深入用过,只知道它是一个开源的多模态AI代理框架,主打设备操控,能模拟点击、输入,把GUI自动化和大模型结合。我理解它的核心是把屏幕理解、任务规划和动作执行串起来,有点像Adept的实验方向。
面试官说他们内部有类似的项目,问我怎么看可靠性。我说这种框架最大的挑战是容错,点错一个按钮整个流程就崩了,需要加校验步骤和回退机制。另外隐私安全也是大问题,毕竟要读屏幕内容。
面完最大的感受就是,现在大模型岗位早就不只是调API了,对工程落地、业务理解的要求越来越高。平时得多动手,光看论文不够。
如果你也在准备类似的面试,建议把上面这些问题自己答一遍,别光看,说出来才知道哪里卡壳。
觉得有用的话,转发给一起备战的朋友吧,少踩一个坑是一个坑。
写在最后
有读者问过我:“这些面经真的是学员复盘的吗?”
是的。每一篇都是真实面试后的复盘,信息源可追溯。
我能做的,就是把那些“面试官问了什么、学员怎么答的、为什么这么答能过”的逻辑拆解清楚,让更多人有章可循。
至于你能不能看懂、能不能内化成自己的东西,那就看你自己了。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~