AI 應(yīng)用開發(fā),不就是調(diào)個接口么?
大家好,我是程序員魚皮。
由于 AI 的流行,很多公司開始搞起了 AI 相關(guān)的業(yè)務(wù),或者給老項目加個 AI 相關(guān)的功能。
這也給開發(fā)方向的程序員們提供了一個新的垂直崗位 —— AI 應(yīng)用開發(fā)。
但有朋友可能會覺得:“AI 應(yīng)用開發(fā)?不就是調(diào)個接口么?有什么難的?”

還真的是應(yīng)了那句話 —— 你知道的越少,以為自己知道的越多。

就好比有人問:電商系統(tǒng)是怎么把你喜歡的商品推送到主頁的?
有同學(xué)秒答:不就是 推薦算法 么?
的確是這樣,但就是這 4 個字,可能是很多精英們?nèi)找岳^夜地研究、不斷地優(yōu)化,才呈現(xiàn)出給用戶看到的效果。
AI 應(yīng)用開發(fā)也是一樣的,調(diào)個接口的確可以實現(xiàn)一些需求,但深入到具體業(yè)務(wù)場景和解決方案中,還是有很多值得學(xué)習(xí)的知識和經(jīng)驗。
這不,前段時間我直播面試了一位工作 3 年的 Java 后端開發(fā)老哥,目標(biāo)是 AI 應(yīng)用開發(fā)崗。下面分享下面試過程,看完你就知道,AI 開發(fā)絕不只是調(diào)個接口這么簡單。
?? 推薦觀看視頻版:https://bilibili.com/video/BV1qgHezFEaR

Java & AI 應(yīng)用開發(fā)面試
候選人背景
小王 2022 年畢業(yè),有 3 年多的 Java 后端開發(fā)經(jīng)驗。在上家公司負(fù)責(zé)電子簽合同云平臺的建設(shè),包括賬號系統(tǒng)、權(quán)限系統(tǒng)、消息系統(tǒng)等核心模塊。
除了傳統(tǒng) Java 業(yè)務(wù),他還自學(xué)了半年多的 AI 技術(shù),做過電子合同 AI 智能助手(RAG 系統(tǒng))和模擬面試官 Agent 應(yīng)用。技術(shù)棧涵蓋 Spring Boot、MySQL、Redis、RabbitMQ 等,AI 方面熟悉提示詞工程、工具調(diào)用、Agent 等。
目標(biāo)薪資:20K
看起來背景還不錯吧,那我們來看看面試都問了什么~
第一輪:提示詞工程
面試官:跟我講一下提示詞工程吧,最好能結(jié)合你做過的項目舉例,有哪些優(yōu)化提示詞的技巧?
小王的回答:
提示詞工程是提高大模型輸出質(zhì)量的重要技術(shù),常用技巧包括:
-
角色設(shè)定:給大模型設(shè)定系統(tǒng)提示詞,包含角色說明、任務(wù)和約束條件
-
小樣本提示:給模型一些輸入輸出示例,讓它仿照執(zhí)行
-
思維鏈:讓大模型先思考再輸出答案,分為零樣本思維鏈和小樣本思維鏈
在實際開發(fā)中,提示詞需要不斷迭代優(yōu)化,可以通過阿里云百煉等平臺做 A/B 測試。
面試官追問:少樣本和零樣本你在實際項目中怎么選擇?什么情況下用少樣本?
小王:小樣本適合想讓模型輸出貼合我們規(guī)范的場景,不想讓它輸出多余內(nèi)容,通過示例讓模型遵循固定格式要求。
點評:這個回答還算全面,但缺乏深度。真正的提示詞工程遠(yuǎn)不止這些基礎(chǔ)技巧。
第二輪:AI 應(yīng)用開發(fā)關(guān)注點
面試官:你覺得開發(fā) AI 項目時有哪些注意事項?你會更關(guān)注哪些點?
小王的回答:
-
業(yè)務(wù)理解:深入了解業(yè)務(wù),抽象成工作流或 Agent
-
工程化優(yōu)化:
-
緩存高頻問題,命中緩存時直接返回
-
流式輸出和異步處理提高響應(yīng)速度
-
不同任務(wù)場景用不同模型,簡單任務(wù)用小模型節(jié)省成本
-
面試官追問:你提到批處理能節(jié)省成本,能舉個例子說服我嗎?
小王:emmmm。。。這個方法我確實沒用過。

面試官繼續(xù)追問:你做項目時不關(guān)注 AI 的可觀測性嗎?不關(guān)注 AI 的準(zhǔn)確度和幻覺問題嗎?
小王:準(zhǔn)確度方面可以通過提示詞和 RAG 優(yōu)化。。。
點評:這里暴露了一個問題,只知道怎么做,但缺乏生產(chǎn)級別的工程實踐經(jīng)驗。
第三輪:消除 AI 幻覺
面試官:你在開發(fā) AI 應(yīng)用時,怎么盡可能消除 AI 調(diào)用的幻覺?
小王的回答:
-
提示詞優(yōu)化:更明確的角色定位,加限制條件
-
RAG 系統(tǒng):外掛知識庫,讓 AI 基于知識庫內(nèi)容回答
-
模型微調(diào):針對特定領(lǐng)域進(jìn)行微調(diào)訓(xùn)練
面試官:還有別的嗎?你做過工具調(diào)用,怎么消除工具調(diào)用的幻覺?
小王:工具調(diào)用幻覺具體指什么?
面試官:比如 AI 調(diào)用了系統(tǒng)中不存在的工具,怎么消除這種情況?
小王:可以用 RAG 方式把工具信息放到知識庫。。。
面試官:這個方案是不是有點繞?考慮考慮工程層面的解決方案?
小王:。。。(沉默是今晚的康橋)

點評:實際上,工程層面有很多方法可以處理工具調(diào)用幻覺,比如添加幻覺處理策略、大模型參數(shù)調(diào)整、提示詞優(yōu)化、異常捕獲等等。
第四輪:技術(shù)框架深度
面試官:你平時開發(fā) AI 應(yīng)用用什么框架?
小王:Spring AI
面試官:Spring AI 有哪些特性?
小王的回答:
-
Advisor 機制:相當(dāng)于攔截器,可以在調(diào)用大模型前后進(jìn)行攔截
-
對話記憶:提供多種內(nèi)置對話記憶實現(xiàn)
-
向量存儲:內(nèi)置向量存儲,也可以自定義實現(xiàn)
-
ChatClient:和大模型交互的客戶端
-
工具調(diào)用:通過注解將 Java API 轉(zhuǎn)換為工具
-
結(jié)構(gòu)化輸出:指定返回 JSON 格式輸出
雖然看起來小王回答的不少,但回答速度很慢,而且還有很多特性沒有回答出來。
所以這里魚皮扶了一下:MCP 用過嗎?
小王:用過。
面試官:按理來說你用過的話應(yīng)該很快就能答出來,感覺不太熟練的樣子。
第五輪:項目深度
面試官:你做過電子合同 AI 智能助手,使用 Elasticsearch 進(jìn)行向量存儲,介紹一下混合檢索策略的實現(xiàn)?
小王的回答:用戶輸入問題后,先進(jìn)行 embedding 向量化,然后并行調(diào)用 KNN 和 BM25 進(jìn)行語義檢索和關(guān)鍵詞匹配,使用 RRF 算法重新評分排序,最后取 TOP 5 文檔給到大模型。
面試官:為什么取 TOP 5?(這個問題其實是詐一下)
小王:數(shù)量太少會導(dǎo)致上下文信息不足,太多會導(dǎo)致上下文污染,5 是測試下來的準(zhǔn)確度和多樣性平衡點。
面試官:怎么盡可能保證 AI 搜集到足夠多的信息?
小王:通過工具調(diào)用聯(lián)網(wǎng)搜索,加上本地知識庫。。。
面試官:還能想到更多方法嗎?
小王:。。。(汗流浹背了)

面試官:提示詞本身是不是可以改一改?你可以告訴 AI 要盡可能獲取足夠多信息;還可以使用多關(guān)鍵詞搜索、查詢優(yōu)化和擴(kuò)展等等。用過 Cursor 等工具的話應(yīng)該會有點印象。
點評:這個問題考查的是信息檢索的深度優(yōu)化,小王的回答比較淺顯。
面試結(jié)果與總結(jié)
從面試結(jié)果來看,小王的優(yōu)勢在于:
-
有實際的 AI 應(yīng)用開發(fā)經(jīng)驗
-
基礎(chǔ)概念掌握還可以
不足:
-
表達(dá)節(jié)奏慢:回答問題需要面試官一步步引導(dǎo),缺乏主動性
-
缺乏生產(chǎn)級實踐:只知道怎么做,但不知道怎么優(yōu)化
-
工程化能力不足:對 AI 應(yīng)用的監(jiān)控、可觀測性、異常處理等認(rèn)識不夠
最終我覺得小王拿 20K 月薪是有希望的,但不穩(wěn),還需要在工程實踐和表達(dá)能力上繼續(xù)提升。到了這個薪資水平,做項目不能只滿足于 “完成” 了,而是要盡量把每一個核心功能點都做到最好,多學(xué)習(xí)和嘗試不同的方案。
AI 開發(fā)真的只是調(diào)接口嗎?
通過這場面試,大家應(yīng)該也能感受到,AI 應(yīng)用開發(fā)絕不只是簡單的調(diào)接口。
一個合格的 AI 應(yīng)用開發(fā)者需要掌握:
1)提示詞工程
-
角色設(shè)定、小樣本學(xué)習(xí)、思維鏈
-
提示詞優(yōu)化和 A/B 測試
-
針對不同場景的提示詞策略
2)AI 工程化能力
-
性能優(yōu)化(緩存、流式輸出、異步處理)
-
成本控制(模型選擇、批處理、負(fù)載均衡)
-
可觀測性(監(jiān)控、日志、指標(biāo)統(tǒng)計)
-
異常處理和容錯機制
3)核心技術(shù)棧
-
RAG 系統(tǒng)設(shè)計與優(yōu)化
-
向量數(shù)據(jù)庫使用
-
混合檢索策略
-
模型微調(diào)和評估
4)框架和工具
-
Spring AI、LangChain 等開發(fā)框架
-
MCP 模型上下文協(xié)議
-
各種 AI 開發(fā)工具和平臺
5)業(yè)務(wù)理解能力
-
將復(fù)雜業(yè)務(wù)抽象為 AI 工作流
-
Agent 設(shè)計和多工具協(xié)調(diào)
-
用戶體驗優(yōu)化
完整的 AI 大模型應(yīng)用開發(fā)學(xué)習(xí)路線我也幫大家整理了,可以
https://www.codefather.cn/course/1789189862986850306/section/1912024009574629377

學(xué)習(xí)建議
最后也給想轉(zhuǎn)型 AI 應(yīng)用開發(fā)的同學(xué)幾個建議:
1)不要只停留在 “能用” 層面
很多朋友學(xué)會了調(diào)用 OpenAI 的 API,就覺得自己會 AI 開發(fā)了。但真正的 AI 應(yīng)用開發(fā),需要考慮的是如何用 更低的成本 讓應(yīng)用 穩(wěn)定、高效、準(zhǔn)確 地運行在生產(chǎn)環(huán)境中。
2)重視工程化實踐
要學(xué)會使用 AI 開發(fā)框架,而不是只會裸寫 HTTP 請求。還要了解 AI 應(yīng)用的監(jiān)控和可觀測性、掌握成本優(yōu)化和性能調(diào)優(yōu)技巧、學(xué)會處理 AI 應(yīng)用的各種異常情況。
3)深入理解核心概念
比如提示詞工程,不只是寫幾個示例那么簡單。還有 RAG 系統(tǒng),涉及信息檢索、向量數(shù)據(jù)庫、重排序等多個環(huán)節(jié),每個環(huán)節(jié)都有很多優(yōu)化技巧。
不過我覺得最復(fù)雜的還是 Agent 的設(shè)計,需要考慮工具選擇、任務(wù)分解、結(jié)果整合、多智能體協(xié)作模式等等。當(dāng)時火出圈的 Manus,其實也是在 Agent 的設(shè)計上 “討了個巧”。
4)多做項目,多總結(jié)
這句就純正確的廢話了,大家都知道得多做項目才能積累經(jīng)驗。尤其是 AI 應(yīng)用開發(fā),不同的業(yè)務(wù)場景都需要對 AI 生成的效果進(jìn)行定制的優(yōu)化,不是背個方法論就能解決所有問題。
我自己開源了不少 AI 應(yīng)用開發(fā)項目,甚至還寫過幾套體系化的實戰(zhàn)教程,分享給大家:
-
AI 應(yīng)用生成平臺:https://github.com/liyupi/yu-ai-code-mother
-
AI 文獻(xiàn)閱讀助手:https://github.com/liyupi/literature-assistant

最后
AI 技術(shù)發(fā)展日新月異,對程序員的要求也在不斷提高。AI 相關(guān)知識不再只是算法工程師需要了解,而是每個程序員都必須掌握的基本技能。
無論你是前端、后端還是全棧開發(fā)者,都需要了解 AI 應(yīng)用開發(fā)的基本概念和實踐方法。
因為未來的軟件開發(fā),AI 將無處不在。


AI 技術(shù)發(fā)展日新月異,對程序員的要求也在不斷提高。**AI 相關(guān)知識不再只是算法工程師需要了解,而是每個程序員都必須掌握的基本技能**。
浙公網(wǎng)安備 33010602011771號