進化我嘅 Chatbot:一個禮拜 Sprint 做到更聰明嘅互動
我用一個禮拜重建咗我嘅 chatbot,從基本嘅文章摘要升級到全文搜索,加入 chunking、安全措施同 metadata——以下係我學到關於 AI 威力同成本之間嘅平衡。
更新(2026): 呢個 chatbot 進化成咗 Sydney!經過好多次迭代,Sydney 而家住喺 /ask/,專注於 blog 內容同產品。
上個禮拜我推出 DIY chatbot 嘅 version 0.1 嗰陣,我嘅目標係建一個可以綜合我 blog 文章嘅資訊去答問題嘅對話 agent。雖然 v0.1 作為 coding 新手係一大步,但佢有好多限制。知識庫只包括我文章嘅摘要,chatbot 喺提取特定細節(好似數字或日期)方面表現得唔好。我嘅動力係通過動手學習去逐步改善 chatbot 嘅功能。呢篇文章係一個禮拜優化之後嘅更新。我嘅重點係擴展知識庫去包括完整嘅文章內容、加強安全措施、同優化 AI 模型嘅成本效益。雖然個 chatbot 仲有好長嘅路要行,呢啲初始升級代表住令人鼓舞嘅進展。
以下係自上個版本以嚟做咗嘅嘢:
1. 功能
Chatbot 包括到 2023 年 10 月底嘅所有最新文章
我喺十月發表咗六篇 blog post,全部而家都包括喺 chatbot 嘅知識庫入面。例如你可以問:「Tell me the key insights about Coursera that Chandler wrote」,chatbot 可以根據我 2023 年 10 月寫嘅文章提供答案。
知識庫包括完整 blog post 而唔只係摘要
第一個版本因為我唔夠經驗處理 OpenAI API 嘅 context window length 限制,我要先生成每篇 blog post 嘅摘要再用 OpenAI 嘅 embedding API endpoint 做 embed。我唔知點樣將完整文章 chunk 成較細嘅部分並且 embed 每一段同時保持 context(即 metadata、URL、標題等⋯⋯)。
呢個禮拜完成咗第一次 chunking 迭代。Chatbot 嘅知識庫而家有完整嘅 blog post 而唔只係摘要。仲有改進空間因為我繼續優化長文章嘅理想 chunking 限制同方法。而家我將長文章分成唔超過 800 token 嘅較細部分,用「段落」作為自然斷點。
咁下一個版本就可以更容易回答關於文章入面特定數字嘅問題。
Blog post 嘅發佈日期、標題同 URL 包括在內
用戶輸入問題之後,喺檢索過程中,blog post 嘅標題、發佈日期同 URL 都會提供畀 chatbot。所以 chatbot 而家可以喺被問到嗰陣提供特定 URL 或發佈日期畀用戶。
呢個有助於驗證,以防用戶想 double-check 或者讀成篇 blog post。
2. 安全
實施咗超基本嘅安全措施,例如:
- 喺發送畀 API 之前驗證 input
- 基本嘅 rate limiter function,即每分鐘你可以問 chatbot 幾多條問題
- 查詢同 chatbot 嘅回覆通過 OpenAI moderation API 驗證
3. GPT-4 vs GPT-3.5
我會繼續用 GPT-3.5 模型因為成本問題。GPT-4 嘅答案比 GPT-3.5 好好多。不過因為我仲未搵到最好嘅方法處理 context window length 同保持對話記錄,對於 chatbot 需要翻查多篇文章嘅複雜問題,每個答案嘅成本好高,例如 GPT-4 每個答案要 $0.15 或 $0.2。我而家負擔唔到呢個 pet project 嘅費用。T.T
暫時就咁。如果你想試個 chatbot,喺呢度。呢個係我上一篇關於 chatbot 嘅文章嘅 link。祝你有個好週末。
如果你砌過自己嘅 chatbot 或者做過 embedding 同 chunking,我好好奇——咩 chunk 大小同方法對你最有效?我仲喺實驗緊 :)
Chatbot 旅程嘅下一步: 幾個月之後,我用 LangChain 同 FAISS 從頭重建咗成個 chatbot——我點樣從 Coding 泥沼中出嚟,靠嘅係一個 AI Agent。
祝好,
Chandler
P.S.:Andrew Ng 新嘅 Generative AI for Everyone 課程冇令人失望。係一個免費課程,畀你 generative AI 嘅一般知識,典型嘅 Gen AI 軟件或 web 應用點樣建造等⋯⋯幾短嘅所以你一個週末就睇得完所有影片。





