AI 应用开发工程师一面面经
完整信息
本篇目录
基本信息
- 面试岗位:AI应用开发实习生
- 面试时间:2026年9月7日
- 面试时长:约46分钟
个人背景
- 学校专业:广东工业大学 计算机科学(28届)
- 实习经历:两段实习经历 某公司网站后端开发(未写入简历)某科技公司AI开发实习生(简历项目)
技术问题汇总
Q1:TikTok账号的私信/评论如何做托管?
- 接入第三方平台(ZERNIO)进行账号托管
Q2:如何过滤广告/系统消息等垃圾信息?
- AI意图识别:大模型对接收消息进行识别,垃圾信息直接拦截不回复
Q3:意图识别有误时有什么逻辑兜底?
- 所有收到的消息都会留档,操作者可查看拦截标记
Q4:消息落库成功但第三方发送失败,如何保证最终一致性?
- 事务机制:先落库,事务外调用SDK发送
- 维护消息状态(发送中/发送失败)
- 基于状态进行重试,重试次数为3次,3次均失败则判为失败
- 前台对用户标识“发送失败”
Q5:消息/评论数据回拉使用Webhook,大面积回调堆积处理不过来怎么办?
- 目前客户只有几十家,暂未考虑大规模场景,后续规模上去后再扩展
Q6:请讲一下Webhook的三重保障
第一重 - 安全保障:
- 平台方首次建立连接时发送密钥,每次Webhook回调将请求体+密钥计算signature
- 本地用同样方式计算比对,防止攻击者篡改body内容
第二重 - 幂等保障:
- 数据库设置唯一键,防止平台方因网络波动重复回调导致重复插入
- 捕获重复键异常,处理为已成功插入
第三重 - 兜底保障:
- 定时任务(每天)主动向平台方拉取本地未完成任务的状态
- 更新本地状态,防止一直收不到回调
Q7:20万行Excel数据怎么解析?
- 当前项目未上线,数据量仅几千行,暂未考虑大数量场景
- 思路:分块导入,按批次插入,而非一次性全量插入
- 若单表存不下,可考虑分表
Q8:PDF转写从31分钟优化到2.5分钟,怎么做的?
- 使用豆包2.0 Pro多模态模型
- 发现默认开启思考模式(纯色图片也会输出几百个token)
- 关闭思考模式后,转写质量不下降,性能大幅提升
Q9:为什么给AI回复做30秒防抖?
- 防止客户连续短句发送时AI频繁回复,显得啰嗦
- 每30秒窗口聚合回复一次
Q10:线程池的核心参数有哪些?
- 核心线程数(corePoolSize)
- 最大线程数(maximumPoolSize)
- 工作队列(workQueue)
- 拒绝策略(RejectedExecutionHandler)
- 线程空闲存活时间(keepAliveTime)
- 时间单位(unit)
- 线程工厂(threadFactory)
Q11:如何设计提示词让AI讲产品卖点?
- 使用占位符动态注入产品名和产品描述
- 支持配置客服性格(活泼/冷静/专业等)
- 约束安全性:不泄露公司信息、不暴露AI身份、防提示词注入攻击
- 攻击防护除提示词约束外,不给AI修改/读取工具权限
Q12:多轮对话中上下文带脏数据干扰提示词判断,如何兜底?
- 将修改权限(如写入数据库)交给用户而非模型
- 维护白名单,只给模型读取特定数据库/SQL的权限,不授予修改工具
七、RAG与多语言
Q13:文档格式参差不齐(PDF/Word/PPT,图片型PDF等)怎么处理?
- 多模态VLM转写:图片内容用多模态模型描述后入库
- 双轨策略:文字和图片转写文字同时入库
Q14:多语言语境问题(同一词在不同语言文化中含义不同)怎么处理?
- 面试时坦诚当时未考虑此问题
- 推测思路:语义相近的向量相似度应相近,召回时语义相近
Q15:平时用什么AI编码工具?
- Cursor用得较多
- 字节的Trae
- 阿里的qoder
- claude code(接DeepSeek)
Q16:如何让AI写业务代码?
- 从高级开发/产品经理处接需求
- 将需求写入对话框,配合Skills(如Grill-me),它会针对需求中每个不确定点逐一询问
- 经十几二十轮对话确认全部需求后,让AI生成plan
- 核对plan无误后让AI开工写代码
- 让AI跑编译和单元测试验证
- 忙时可让AI用Browser Use/Playwright脚本点击前端界面验证功能
Q17:AI重复造轮子怎么约束?
- 在system prompt中约束不要重复造轮子
Q18:Skill的渐进式披露概念了解吗?
- 了解:Skills不会一次性加载全部内容
- 先加载skill名称+简短描述
- 大模型判断需要调用时才读取完整内容
- 目的:节省上下文token占用
Q19:口语练习产品如何做AI赋能?(从原有功能接入AI)
- 候选人以电话客服场景为例分享经验: 实时录音 → 第三方流式转写 → 每隔几秒将转写内容发给大模型 → 实时生成建议展示给客服可将此模式应用到口语练习场景
Q20:系统提示词和用户提示词如何设计?
- 不能设计太长,考虑token消耗和响应速度(实时场景)
- 多场景各自配置专属提示词
- 面试官建议:提示词存数据库,场景切换时动态加载
Q21:WebSocket和SSE的区别?
- SSE:HTTP延伸,单向通信(服务端→客户端)
- WebSocket:独立于HTTP,全双工双向通信
Q22:Redis缓存用来做什么业务?
- 双Token鉴权方案:Access Token(JWT,30分钟过期)+ Refresh Token(7天过期)Access Token存租户ID,用于查Redis中租户的菜单权限权限数据存Redis而非DB,提升实时查询效率防止前端越权访问
面试官评价与建议
正面评价:
- 作为大三学生,实际项目底子不错
- 项目经历丰富,细节问题回答得都挺OK
改进建议:
- 加强AI赋能整个开发链路(设计→开发→测试)的思考
- 不要只拿通用Skill,可以根据项目特点和个人开发习惯沉淀专属Skill
反问环节
- 后续安排:有二面,也是技术面,共两面
- 面试评价:面试官给出上述正面评价与改进建议
- 公司业务: 维护系统自研平台“机械星球”AI应用(Agent平台、口语练习等),做自有生态闭环,To B方向
- 薪资:需与HR沟通,技术面不负责
本篇目录
当前问题0122
- 01
技术问题汇总Q1:TikTok账号的私信/评论如何做托管?
- 02
如何过滤广告/系统消息等垃圾信息?
- 03
意图识别有误时有什么逻辑兜底?
- 04
消息落库成功但第三方发送失败,如何保证最终一致性?
- 05
消息/评论数据回拉使用Webhook,大面积回调堆积处理不过来怎么办?
- 06
请讲一下Webhook的三重保障
- 07
20万行Excel数据怎么解析?
- 08
PDF转写从31分钟优化到2.5分钟,怎么做的?
- 09
为什么给AI回复做30秒防抖?
- 10
线程池的核心参数有哪些?
- 11
如何设计提示词让AI讲产品卖点?
- 12
多轮对话中上下文带脏数据干扰提示词判断,如何兜底?
- 13
RAG与多语言Q13:文档格式参差不齐(PDF/Word/PPT,图片型PDF等)怎么处理?
- 14
多语言语境问题(同一词在不同语言文化中含义不同)怎么处理?
- 15
平时用什么AI编码工具?
- 16
如何让AI写业务代码?
- 17
AI重复造轮子怎么约束?
- 18
Skill的渐进式披露概念了解吗?
- 19
口语练习产品如何做AI赋能?(从原有功能接入AI)
- 20
系统提示词和用户提示词如何设计?
- 21
WebSocket和SSE的区别?
- 22
Redis缓存用来做什么业务?
