要务科技 · 机械星球 AI 应用(Agent 平台、口语练习)

AI 应用开发工程师一面面经

完整信息

22 条问法 · 21 道题

本篇目录

基本信息

  • 面试岗位: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:线程池的核心参数有哪些?

  1. 核心线程数(corePoolSize)
  2. 最大线程数(maximumPoolSize)
  3. 工作队列(workQueue)
  4. 拒绝策略(RejectedExecutionHandler)
  5. 线程空闲存活时间(keepAliveTime)
  6. 时间单位(unit)
  7. 线程工厂(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写业务代码?

  1. 从高级开发/产品经理处接需求
  2. 将需求写入对话框,配合Skills(如Grill-me),它会针对需求中每个不确定点逐一询问
  3. 经十几二十轮对话确认全部需求后,让AI生成plan
  4. 核对plan无误后让AI开工写代码
  5. 让AI跑编译和单元测试验证
  6. 忙时可让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

反问环节

  1. 后续安排:有二面,也是技术面,共两面
  2. 面试评价:面试官给出上述正面评价与改进建议
  3. 公司业务: 维护系统自研平台“机械星球”AI应用(Agent平台、口语练习等),做自有生态闭环,To B方向
  4. 薪资:需与HR沟通,技术面不负责
本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22

相关公司