Skip to content
··閱讀時間2分鐘

我點樣喺零 Coding 經驗嘅情況下砌咗自己嘅 Chatbot:學到嘅嘢

我用 GPT API 同 ChatGPT 4 嘅幫助,喺 5 個月內從零 coding 知識砌咗一個可以運作嘅 chatbot——以下係我作為完全初學者嘅經歷同學到嘅嘢。

更新(2026): 呢個 chatbot 進化成咗 Sydney!經過好多次迭代,Sydney 而家住喺 /ask/,專注於 blog 內容同產品。


自從 ChatGPT 上年推出以嚟,我一直對 generative AI 着迷,想用現有嘅 API 探索砌自己嘅 chatbot。作為一個完全冇程式設計經驗嘅初學者,呢個係一個好有野心嘅目標。不過我下定決心要迫自己去獲得同 AI 系統合作嘅實際經驗。我嘅動力係超越單純使用呢啲工具,開始更深入了解佢哋係點樣建造嘅。我決定利用我現有嘅內容,建一個可以回答關於我 blog 文章問題嘅 chatbot。從零開始砌呢個 chatbot 係一個超寶貴嘅學習經驗,雖然佢仲有好長嘅路要行。呢篇文章我會分享作為 coding 新手,喺呢段旅程中學到嘅一啲關鍵課堂。

咁我嘅挑戰係乜?

  • 首先,我唔識程式設計。我基本唔識(如果有的話)HTML(除咗用 <h1><h2>),更唔使講 Python 或任何其他程式語言。
  • 當然,我唔識 deploy 一個應用到 cloud 上面,從未聽過 Docker、Cloud Run 等⋯⋯
    • 我連將呢個網站從 Bluehost 搬去 GCP 都搞唔掂,因為我唔識 MySQL、virtual instance 等⋯⋯
  • 我唔知 SSH、public key、private key 或者任何相關嘢 T.T
  • 我亦都冇 machine learning 或高等數學嘅背景。
  • 而且我唔後生 :| 我 40 歲,有全職工作。

但大約 5 個月之後,呢個就係我用 OpenAI GPT API 同大量 ChatGPT 4 嘅幫助砌嘅 chatbot version 0.1。我話 version 0.1 唔係講笑㗎因為佢仲距離我嘅期望好遠(好遠),但起碼佢「可以用」(某程度上)。佢可以做到:

  • 如果你問 chatbot 關於我之前寫過嘅題目,chatbot 可以綜合多篇文章嘅內容畀你一個回覆。
    • 呢一點對我好重要,因為之前我寫過用現成方案嘅經歷,但常見問題係嗰啲 chatbot 唔會綜合多篇文章嘅內容。個 chatbot「感覺」更似一個搜索功能多過 chatbot。
  • 佢設計嚟只答關於我 blog 文章嘅問題,所以如果你問其他話題,佢好大可能會話唔到。
  • 佢嘅知識包括我過去 17 年發表嘅所有文章,直到 2023 年 9 月底。大約 500 篇文章

Chatbot 仲有好多嘢做唔到,例如:

  • 佢唔可以準確回憶我文章入面嘅特定數字。
  • 佢唔可以準確回答關於發佈日期嘅問題。
  • 我肯定佢有好多安全問題 T.T(傷心傷心傷心嘅樣)
  • 仲有好多⋯⋯

2024年2月更新:

Chatbot version 2.1 已經可以用,你可以睇關於佢嘅文章「Chatbot v2.10 Unveiled:提升用戶體驗嘅速度、可擴展性同簡潔度」。

咁我喺呢段旅程嘅第一階段學到咗乜?

1. ChatGPT 4 可以完成大部分基本/中級 coding 任務

只要你知道你搵緊乜,同埋 prompt/context 夠具體。

關鍵係知道要叫部機做乜。只要任務夠具體,佢可以完成「幾乎所有」嘅 coding 任務。我講「幾乎所有」係有原因嘅,因為佢反覆冇辦法跟住某啲 example。

ChatGPT 4 生成嘅 code 通常夠模組化可以之後重用。部機經常喺成份 code 入面加入具體嘅 comment。

2. 上基礎 coding/IT 課程

如果你喺我嘅位置,你唔會知道要問你唔知嘅嘢。幾個克服方法:

3. 完成呢啲免費嘅 Building Systems with the ChatGPT API 短課程

兩個關於 ChatGPT API 嘅課程會幫你慳好多時間:

雖然呢啲課程係為初學者而設,我幾個月前第一次見到嗰陣,我冇足夠嘅基礎知識去跟。所以大約 10 分鐘後就停咗。之後我試用 OpenAI API 同唔同嘅 prompt 一段時間,遇到樽頸然後記起呢啲課程。基本上佢哋畀咗我所有需要嘅答案去砌呢個 version 0.1。

Prompt engineering 課程特別有用,因為佢教我點樣指示 ChatGPT 以某種方式輸出。例如,冇睇呢個課程我唔會諗到呢種 system message:

Make sure to ask the user relevant follow-up questions."

HTML-compatible bullet point 格式同換行令 chatbot 嘅答案變長嗰陣,用戶更容易閱讀。

4. 自己睇 OpenAI 文檔

我比較懶 (:D) 所以一開始我冇 bother 去睇 OpenAI 嘅文檔。我只係 copy and paste 文檔畀 ChatGPT 然後叫佢當參考來源,用實際 code 指導我。呢個做法唔太成功,我浪費咗好多時間,最後先決定自己睇文檔,然後畀 ChatGPT 更有針對性嘅請求。

5. ChatGPT 喺對話太長或者你停咗幾個鐘之後容易迷失

我估我唔應該驚訝,因為同人一樣,ChatGPT 喺對話太長嗰陣容易迷失。我講嘅係:

  • 佢開始推薦冇 sense 嘅 code
  • 或者記唔起佢最近畀我嘅另一段 code/建議

同埋當你停咗幾個鐘(或過夜)然後返嚟,就算叫咗 ChatGPT 讀晒成個對話記錄同確認佢做咗之後,同人一樣,我要再提供好多最近嘅 context 同 code base。否則佢似乎完全「忘記」咗好多之前同我講過嘅細節。

6. GPT 4 API 用嚟好貴所以盡量用 GPT 3.5

例如,我浪費咗 $20 用 GPT 4 API 做 summarization 任務,但 GPT 3.5 其實做得到。仲有確保你先用幾個 file 測試 code,之後先「放佢出嚟」跑幾百個 file,因為 GPT API 費用可以好快升。

7. OpenAI Cookbook 係你嘅朋友

同樣,我犯咗唔 bother(或者更準確咁講係唔知道)去睇 OpenAI sample cookbook 嘅錯誤。喺嗰度你可以搵到:

8. Context window length 對初學者嚟講好難搞

唔同嘅 GPT 模型有唔同嘅 max token 限制,修改 code 確保你喺 token 限制之內對新手(好似我)嚟講唔容易。我喺呢部分花咗好多時間因為我有好多篇好長好長嘅 blog post。

同埋對於 chatbot,我想佢喺畀答案之前綜合多篇文章嘅內容,所以我經常遇到 token limit。

9. Version control、version control 同 version control

呢個對專家嚟講可能超直觀,但對 coding 新手好似我,我要 the hard way 學。而且我仲要搵到適合呢個項目嘅 git commit 頻率,因為我係唯一嘅 contributor/coder。

結論

總結嚟講,作為初學者砌 chatbot 嘅旅程教識我基礎知識嘅重要性、善用 ChatGPT 做針對性任務、研讀 API 文檔、同使用 version control。雖然仲有好大改進空間,但我而家有一個基本 prototype 可以綜合我 blog 文章嘅資訊去答問題。之後我嘅優先事項係擴展 chatbot 嘅知識庫去覆蓋新內容、改善佢從文章提取精確細節嘅能力、同優化回覆以保持喺 token 限制內。我亦計劃繼續提升喺 prompt engineering 同 cloud deployment 方面嘅技能。

我就講到呢度。我會繼續更新學到嘅嘢,同喺新版本可用嗰陣分享。

你有冇試過作為非開發者用 OpenAI API 砌嘢?好想聽吓乜嘢最令你跌倒——對我嚟講肯定係 context window 限制同 version control :P

一個禮拜之後

經過一個禮拜嘅 sprint,我完成咗 chatbot 嘅額外更新。想睇更多去「進化我嘅 Chatbot:一個禮拜 Sprint 去更聰明嘅互動」。

祝好,

Chandler

繼續閱讀

我嘅旅程
聯繫
語言
偏好設定