騰訊云智后臺實習二面
1、自我介紹
答:公式背誦,多的不談
2、談談你對大模型的應用
答:早在 DeepSeek 開源前通過配置文件直接調用過星火 3.5,SpringAI 等框架發(fā)行后分別通過本地部署 DS 和調用豆包 API 的方法實操過 AI Chat 開發(fā),發(fā)現使用了這些框架后程序運行速率顯著提高。值得一提的是,我學習這些框架最早接觸的是 LangChainGo,我在沒發(fā)現這個框架有 history 包的前提下自己實現了可記憶化的 AI Chat。
3、如何自實現可記憶化 AI Chat?
答:維護一個 historyMsg 的 struct,用戶每次向 AI 聊天時,將用戶的問題與大模型的 response 去 append 到這個 struct 的后面,對于后續(xù)每一次用戶的提問,動態(tài)修改大模型的 Prompt 為 historyMsg 加上用戶最后一次提問的內容。
4、用戶向大模型聊天時,大模型如何處理用戶的信息?
答:把用戶的信息分詞做成向量,再根據自己的知識庫進行檢索。檢索方式有 RAG 與 MCP 兩種方式,RAG 是檢索自己已有知識庫的向量,MCP 是調用其他應用以獲得答案,這些應用被稱之為”工具“。例如用戶問現在的天氣怎么樣,MCP 可以使用用戶本地的天氣系統(tǒng)獲得答案。在 SpringAI 框架中,只需要靠一個 @Tool 的注解即可將某個方法定義為 MCP 的工具,非常方便。(有的是胡謅的,我自己也不知道哪句說得對,看點知識全看混了,好在面試官好像也不知道答案,懂的大佬別噴我)
5、說下你手搓 RPC 項目中的注冊中心
答:Etcd 實現,首先 Server 向 Etcd 發(fā)起服務注冊,寫入鍵值對的同時通過租約 Lease 保證它在一定時間內是有效的;Server 第二次向 Etcd 交互是每個服務向 Etcd 寫數據,把自己的前綴 prefix 和服務地址 addr 寫進去;Server 第三次與 Etcd 交互就是做一個心跳檢測,每 10s 向 Etcd 發(fā)個請求以表示自己存活,Etcd 就做一個續(xù)約處理;對于客戶端,第一次 Client 與 Etcd 交互是做一個 GET 請求,獲取到全部的服務地址,把這個做成一個列表放在本地維護;Client 第二次與 Etcd 交互是做一個雙向的 watch 監(jiān)聽,如果 Server 有的服務 down 掉了或者有的新服務上線了,Client 同步一下本地服務列表。
6、說說虛擬內存
答:通過操作系統(tǒng)的分頁與頁表實現,需要時做數據交換,很好解決物理內存不足的問題。
7、TCP 的三握四揮
答:分別說了 TCP 的三握流程、二握的前提與場景;四揮的流程、三揮的場景。四次揮手有時是三次揮手可能很多人知道,個人覺得三握到二握是一個很好的展開,具體二握的條件我在這就不寫了。
8、TCP UDP 區(qū)別
答:分別說了 TCP 優(yōu)缺、UDP 優(yōu)缺;擴展說了 TCP 粘包現象及原因、HTTP 如何解決 TCP 粘包、UDP 為啥沒有粘包、UDP 如何向 TCP 一樣保證數據有序性。這一段感覺自己自顧自講了很多,面試官也一直沒有打斷我。
9、手撕:給定二叉搜索樹的后序遍歷,輸出前、中、順序遍歷
答:其實撕得不太好。搜索樹是啥我反應了半天,其次平常寫算法題根本碰不到這類的。稀里糊涂講了思路,面試官好像覺得我講得對,我就開始寫代碼,說搜索樹就是有序的,從數組的第一個元素開始遍歷,找到第一個大于根節(jié)點值的元素,那這個元素之前的所有元素就是左子樹的后序遍歷。越到后面思路越亂,好在面試剩下時間不多了,面試官說你把 dfs 函數寫出來就行,我憑直覺瞎敲了幾行,面試官好像覺得 ok,就先到這了,開始反問。
反問
反問1:假如我有幸通過這次面試,后續(xù)的流程是怎樣的?
本人內心:剛手撕代碼已經給我腦子搞宕機了,我以為我可能過不了這輪面試,再加上反問來得太突然,一時間沒做好準備,我想問面試官您看我今天有機會嗎?想了想太直接了,就莫名其妙問了這句話,順便好奇我有沒有第三場技術面。
面試官答:只有一場 hr。
感受
感覺今天沒啥狀態(tài),手撕代碼像是在韜奮,好在面試官放過我了,我猜我今天的表現也就在及格線吧,感謝面試官放我一條出路。
#騰訊云智研發(fā)2025實習生招聘#