
整合大型語言模型 - Clean Architecture in TypeScript
我們現在已經可以將假的對話資料傳到前端呈現出來,接下來我們繼續讓前端的對話可以實際使用 LLM(大型語言模型)產生的訊息,因此我們需要先加入一個新的 API 端點以及更新介面將對話發送到後端。
我們現在已經可以將假的對話資料傳到前端呈現出來,接下來我們繼續讓前端的對話可以實際使用 LLM(大型語言模型)產生的訊息,因此我們需要先加入一個新的 API 端點以及更新介面將對話發送到後端。
經過將對話紀錄從前端移動到後端,我們需要再更近一步將這個行為抽離成商業邏輯,基本上跟傳統開發模式沒有太大差異,主要的變化是我們將這些任務交接給 Agent(代理)來處理,人類則負責設計跟提示。
透過 AI 協力開發,我們可以節省許多以往需要花費力氣的時間。不過開發的流程並不會有太大的變化,這次我們會採用可以馬上確認成果的方式進行開發,因此會從前端的介面開始著手。
今年(2025 年) ThroughWorks 的 Technology Radar 中提及了 AI-friendly code design 的概念,討論以往軟體開發的優良實踐,也能夠對 AI 協力開發產生幫助,因此列入的評估的範圍中,在為來可能會成為採用的選項之一。
即使我們仍不確定未來會如何變化,但是在良好的軟體架構跟實踐為基礎,仍可以幫助我們更好地應用 AI 來進行開發。
這一次會有前端跟後端的實作,雖然都會透過 AI 來輔助開發,但我們仍需要對功能的規劃和需求有一定理解,因此我們需要先針對介面做簡單的規劃,用於後續開發時使用。
這一系列會預設在 Cloudflare 相容的環境下運行,在前端開發的部分會以 Vite 搭配 Hono 來使用,這幾個工具有很不錯的相容性,很適合在這次的情境中使用。
tsyringe 是微軟維護的一款輕量依賴注入(DI,Dependency Injection)容器,可以幫助我們很輕鬆的管理物件的依賴注入,在 Clean Architecture 的實踐中我們會將許多物件細分職責,此時有依賴注入的機制可以幫助我們在測試、開發上更加順手。
這一系列我們會使用 Hono 這一個近幾年才出現的框架,跟 Node 生態系常使用的 Express 框架不同,Hono 最初是以 Cloudflare Worker 環境運行設計,後來逐漸發展成適合 Serverless 環境的框架。