AI 協作打造幕僚團隊:RAG 夢酒館品牌大使
好久沒有發部落格了,從上次回金門之後,一直還沒有調整好在台北的生活節奏。
為什麼要做這個專案?
最近又到了補助案的產季,開始趕工各種提案。去年因為感覺自己沒有什麼特別新的想法,又不想只是為了寫而寫,最後只寫了幾個比較大的地方創生補助(可惜最後一個都沒拿到QQ)。
今年開始接觸 AI 後,發現 AI 其實很適合用來解決地方品牌在人力資源和知識管理上的挑戰,特別是在面臨人力成本上升、青壯年人口外流、知識工作者不足的情況下。於是開始思考很多實際的 AI 應用方案,期待透過 AI 協助地方品牌克服這些困境。
寫補助案最痛苦的部分,就是資料總是散落各處,每個補助案所需的方向又都不太一樣,導致趕完案子後,版本愈來愈多,資料越來越難找。剛好研究所課程出了一個作業,要做一個 Retrieval-Augmented Generation(RAG)聊天機器人。所以就趁這個機會,把四散的品牌資料整理成一個隨時能回答品牌相關問題的知識庫。
理想上最後會是一個可以有後台維護的系統,可以有方便的介面做日常操作,最終變成一個夢酒館的 AI 大腦,只要是內部 + 電腦可以做的工作,都可以交給他處理。
雖然這不是第一次做 RAG,之前也曾用 vibe coding 和 Cursor 很快完成了一個 demo,儘管成功跑起來,卻只停留在「知道怎麼用」的階段,對程式內部邏輯其實並不理解。這次為了課程作業,我強迫自己手寫主要邏輯,讓 AI 只扮演問答助教的角色,才真正理解了整個 RAG 在做什麼,也更明確知道自己還有哪裡需要再深入研究。
專案架構與我的解題過程
在成為完整的 AI 大腦之前,要先有基本的問答能力,為了讓朋友們試用,所以把語氣調整成對外的口吻。這次的目標,是打造一個能用自然語言回答問題的「夢酒館品牌大使」。整個系統最終的設計如下:
1. 資料準備與向量化
- 整理補助最常用到的,品牌介紹、酒單故事、媒體報導三大類資料
- 用 HuggingFace 的 E5 模型生成文本向量(embedding)
- 用 FAISS 建立向量資料庫
2. 處理複合式問句
- RAG 最怕複合句,例如:「我喜歡清爽的調酒,可以推薦一杯嗎?順便問一下,夢酒館有上過什麼國際媒體?」因為他是把一整段話一起向量化,再去找最接近的,想像是取兩句話的平均值(我的猜測),所以反而可能兩個問題都回答不到。
- 解法是設計一個語意拆解模組,先用 LLM 將問題拆解為獨立的子問題,再各自檢索資料,最後重新組裝成完整回答。
3. 生成回答
- 主問題與檢索結果會一起送入 LLM,主問題讓回答保有原始語境、語氣與情緒,RAG 檢索結果當成客觀事實資料補齊。
4. 介面實作
- 重點在 RAG 的邏輯上,因此這次不用 Flask,介面使用 Gradio 包成簡易的 chatbot 介面,讓朋友們可以直接體驗,收集真實回饋。
遇到的挑戰與目前解法
複合式問句的檢索錯亂
- 初期複合句經常導致回覆混亂,因此透過 AI 設計語意拆解模組,先將複合問句拆解為單一問題,分別檢索再整合回答。
調酒名稱與描述錯配
- 例如詢問「水鬼上岸」時,卻得到「純愛古崗」的描述。
- 暫時未能解決,保留未來尋找解法。
語氣不符品牌風格
- 一開始回答太過生硬,不符合夢酒館的溫暖、親切調性。
- 原因在於初期的複合式問句回覆,僅使用檢索結果直接生成回答,後來調整為使用原始問句與 LLM 對話,檢索結果作為輔助資料,成功解決語氣問題,也提升了答案的正確性。
AI 怎麼幫上忙?
從一開始的邏輯討論(「先 A 再 B 再 C,可以解決我的問題嗎?有沒有更簡潔的做法?」),到後來的 debug 階段(「這段為什麼出錯?」),AI 都扮演著很棒的「協作夥伴」。我不只是出嘴給 Agent 寫,而是和 AI 共同設計、討論、修正。雖然進度慢了很多,可是對於自己寫出來的東西也更了解,同時也更知道接下來的優化方向。
真正用上的成果與未來展望
目前這個聊天機器人已經能輕鬆回答大部分夢酒館的問題,雖然是品牌大使語氣,但是可以快速協助我把補助案要寫的內容補上,有些錯誤配對雖然還沒有被解決,但因為主要是幫我檢索資料,暫時不影響我使用。
下一版的時候,嘗試改用
我希望這個品牌大使可以:
- 擴展資料庫:加入補助範本、品牌規劃、自傳故事
- 增加使用紀錄、推薦機制、報表生成
- 成為寫計畫書、補助案、商業提案時的 AI 助手
這次經驗讓我體會到,AI 不是要取代我做所有事情,而是能讓我更有效率、更有策略地使用自己的知識與故事。品牌也從單向的資料庫,轉化成可即時互動、即時理解的敘事體驗。
如果你也有散落各處的品牌故事,不妨試試看這種方式,用 AI 讓你的品牌真正「說」出屬於自己的話。
希望你也會動手試試,然後告訴我你玩出什麼有趣的東西!
文末附上 Github 連結,歡迎大家試玩!