摘要:由于 AI 的流行,很多公司开始搞起了 AI 相关的业务,或者给老项目加个 AI 相关的功能。
大家好,我是程序员鱼皮。
由于 AI 的流行,很多公司开始搞起了 AI 相关的业务,或者给老项目加个 AI 相关的功能。
这也给开发方向的程序员们提供了一个新的垂直岗位 —— AI 应用开发。
但有朋友可能会觉得:“AI 应用开发?不就是调个接口么?有什么难的?”
还真的是应了那句话 —— 你知道的越少,以为自己知道的越多。
就好比有人问:电商系统是怎么把你喜欢的商品推送到主页的?
有同学秒答:不就是 推荐算法 么?
的确是这样,但就是这 4 个字,可能是很多精英们日以继夜地研究、不断地优化,才呈现出给用户看到的效果。
AI 应用开发也是一样的,调个接口的确可以实现一些需求,但深入到具体业务场景和解决方案中,还是有很多值得学习的知识和经验。
这不,前段时间我直播面试了一位工作 3 年的 Java 后端开发老哥,目标是 AI 应用开发岗。下面分享下面试过程,看完你就知道,AI 开发绝不只是调个接口这么简单。
⭐️ 推荐观看视频版:https://bilibili.com/video/BV1qgHezFEaR
小王 2022 年毕业,有 3 年多的 Java 后端开发经验。在上家公司负责电子签合同云平台的建设,包括账号系统、权限系统、消息系统等核心模块。
除了传统 Java 业务,他还自学了半年多的 AI 技术,做过电子合同 AI 智能助手(RAG 系统)和模拟面试官 Agent 应用。技术栈涵盖 Spring Boot、MySQL、Redis、RabbitMQ 等,AI 方面熟悉提示词工程、工具调用、Agent 等。
目标薪资:20K
面试官:跟我讲一下提示词工程吧,最好能结合你做过的项目举例,有哪些优化提示词的技巧?
小王的回答:
角色设定:给大模型设定系统提示词,包含角色说明、任务和约束条件小样本提示:给模型一些输入输出示例,让它仿照执行思维链:让大模型先思考再输出答案,分为零样本思维链和小样本思维链在实际开发中,提示词需要不断迭代优化,可以通过阿里云百炼等平台做 A/B 测试。
面试官追问:少样本和零样本你在实际项目中怎么选择?什么情况下用少样本?
小王:小样本适合想让模型输出贴合我们规范的场景,不想让它输出多余内容,通过示例让模型遵循固定格式要求。
点评:这个回答还算全面,但缺乏深度。真正的提示词工程远不止这些基础技巧。
面试官:你觉得开发 AI 项目时有哪些注意事项?你会更关注哪些点?
业务理解:深入了解业务,抽象成工作流或 Agent工程化优化:缓存高频问题,命中缓存时直接返回流式输出和异步处理提高响应速度不同任务场景用不同模型,简单任务用小模型节省成本面试官追问:你提到批处理能节省成本,能举个例子说服我吗?
小王:emmmm。。。这个方法我确实没用过。
面试官继续追问:你做项目时不关注 AI 的可观测性吗?不关注 AI 的准确度和幻觉问题吗?
小王:准确度方面可以通过提示词和 RAG 优化。。。
点评:这里暴露了一个问题,只知道怎么做,但缺乏生产级别的工程实践经验。
面试官:你在开发 AI 应用时,怎么尽可能消除 AI 调用的幻觉?
提示词优化:更明确的角色定位,加限制条件RAG 系统:外挂知识库,让 AI 基于知识库内容回答模型微调:针对特定领域进行微调训练面试官:还有别的吗?你做过工具调用,怎么消除工具调用的幻觉?
小王:工具调用幻觉具体指什么?
面试官:比如 AI 调用了系统中不存在的工具,怎么消除这种情况?
小王:可以用 RAG 方式把工具信息放到知识库。。。
面试官:这个方案是不是有点绕?考虑考虑工程层面的解决方案?
小王:。。。(沉默是今晚的康桥)
点评:实际上,工程层面有很多方法可以处理工具调用幻觉,比如添加幻觉处理策略、大模型参数调整、提示词优化、异常捕获等等。
面试官:你平时开发 AI 应用用什么框架?
小王:Spring AI
面试官:Spring AI 有哪些特性?
小王的回答:
Advisor 机制:相当于拦截器,可以在调用大模型前后进行拦截对话记忆:提供多种内置对话记忆实现向量存储:内置向量存储,也可以自定义实现ChatClient:和大模型交互的客户端工具调用:通过注解将 Java API 转换为工具结构化输出:指定返回 JSON 格式输出虽然看起来小王回答的不少,但回答速度很慢,而且还有很多特性没有回答出来。
所以这里鱼皮扶了一下:MCP 用过吗?
小王:用过。
面试官:按理来说你用过的话应该很快就能答出来,感觉不太熟练的样子。
面试官:你做过电子合同 AI 智能助手,使用 Elasticsearch 进行向量存储,介绍一下混合检索策略的实现?
小王的回答:用户输入问题后,先进行 embedding 向量化,然后并行调用 KNN 和 BM25 进行语义检索和关键词匹配,使用 RRF 算法重新评分排序,最后取 TOP 5 文档给到大模型。
面试官:为什么取 TOP 5?(这个问题其实是诈一下)
小王:数量太少会导致上下文信息不足,太多会导致上下文污染,5 是测试下来的准确度和多样性平衡点。
面试官:怎么尽可能保证 AI 搜集到足够多的信息?
小王:通过工具调用联网搜索,加上本地知识库。。。
面试官:还能想到更多方法吗?
小王:。。。(汗流浃背了)
面试官:提示词本身是不是可以改一改?你可以告诉 AI 要尽可能获取足够多信息;还可以使用多关键词搜索、查询优化和扩展等等。用过 Cursor 等工具的话应该会有点印象。
点评:这个问题考查的是信息检索的深度优化,小王的回答比较浅显。
从面试结果来看,小王的优势在于:
有实际的 AI 应用开发经验基础概念掌握还可以不足:
表达节奏慢:回答问题需要面试官一步步引导,缺乏主动性缺乏生产级实践:只知道怎么做,但不知道怎么优化工程化能力不足:对 AI 应用的监控、可观测性、异常处理等认识不够最终我觉得小王拿 20K 月薪是有希望的,但不稳,还需要在工程实践和表达能力上继续提升。到了这个薪资水平,做项目不能只满足于 “完成” 了,而是要尽量把每一个核心功能点都做到最好,多学习和尝试不同的方案。
通过这场面试,大家应该也能感受到,AI 应用开发绝不只是简单的调接口。
一个合格的 AI 应用开发者需要掌握:
1)提示词工程
角色设定、小样本学习、思维链提示词优化和 A/B 测试针对不同场景的提示词策略2)AI 工程化能力
性能优化(缓存、流式输出、异步处理)成本控制(模型选择、批处理、负载均衡)可观测性(监控、日志、指标统计)异常处理和容错机制3)核心技术栈
RAG 系统设计与优化向量数据库使用混合检索策略模型微调和评估4)框架和工具
Spring AI、LangChain 等开发框架MCP 模型上下文协议各种 AI 开发工具和平台5)业务理解能力
将复杂业务抽象为 AI 工作流Agent 设计和多工具协调用户体验优化完整的 AI 大模型应用开发学习路线我也帮大家整理了,可以 在编程导航获取:
2)重视工程化实践
要学会使用 AI 开发框架,而不是只会裸写 HTTP 请求。还要了解 AI 应用的监控和可观测性、掌握成本优化和性能调优技巧、学会处理 AI 应用的各种异常情况。
3)深入理解核心概念
比如提示词工程,不只是写几个示例那么简单。还有 RAG 系统,涉及信息检索、向量数据库、重排序等多个环节,每个环节都有很多优化技巧。
不过我觉得最复杂的还是 Agent 的设计,需要考虑工具选择、任务分解、结果整合、多智能体协作模式等等。当时火出圈的 Manus,其实也是在 Agent 的设计上 “讨了个巧”。
4)多做项目,多总结
这句就纯正确的废话了,大家都知道得多做项目才能积累经验。尤其是 AI 应用开发,不同的业务场景都需要对 AI 生成的效果进行定制的优化,不是背个方法论就能解决所有问题。
我自己开源了不少 AI 应用开发项目,甚至还写过几套体系化的实战教程,分享给大家:
AI 应用生成平台:https://github.com/liyupi/yu-ai-code-motherAI 超级智能体:https://github.com/liyupi/yu-ai-agentAI 文献阅读助手:https://github.com/liyupi/literature-assistantAI 知识库:https://github.com/liyupi/ai-guideAI 技术发展日新月异,对程序员的要求也在不断提高。AI 相关知识不再只是算法工程师需要了解,而是每个程序员都必须掌握的基本技能。
无论你是前端、后端还是全栈开发者,都需要了解 AI 应用开发的基本概念和实践方法。
因为未来的软件开发,AI 将无处不在。
编程学习交流:编程导航:https://www.codefather.cn/
简历快速制作:老鱼简历:https://laoyujianli.com
面试刷题神器:面试鸭:https://mianshiya.com
AI 学习指南:AI知识库:https://ai.codefather.cn/
来源:程序员鱼皮