iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
生成式 AI

一起來打造 PTT 文章智慧問答系統!系列 第 1

【Day 01】一起來打造 PTT 文章智慧問答系統!

  • 分享至 

  • xImage
  •  

Hi大家好,
這是我參加 iT 邦幫忙鐵人賽的第 1 次挑戰,這次的主題聚焦在結合 Python 爬蟲、RAG(檢索增強生成)與 AI,打造一套 PTT 文章智慧問答系統。在過程中,我會依照每天進度上傳程式碼到 GitHub ,方便大家參考學習。也歡迎留言或來信討論,我的信箱是 gerryearth@gmail.com


在這個資訊爆炸的時代,我們每天接觸到的文章與內容數量龐大,但要從中快速找到自己需要的資訊,卻往往不容易。能不能打造一個智慧系統,幫我們自動蒐集資料、整理內容,並且用自然語言回應問題呢?

本系列文章將帶你 從零開始實作一個「PTT 文章智慧問答系統」。過程中我們會一步步學習並整合爬蟲、資料庫、API 開發、向量檢索 (Pinecone) 與生成式 AI (Gemini),最後再透過 Docker 完成整套部署。

不需要高深的 AI 理論,只要你有 Python 的基礎,就能跟著每天的教學,從 爬文章 → 存資料 → 做檢索 → 自然語言回答,逐步打造屬於自己的智慧問答機器人。


適合對象

  • 具有 Python 的學習基礎
  • 想了解從 0 到 1 實作 RAG 問答系統的開發者
  • 想學 Django + API 開發與部署的工程師
  • 想深入理解爬蟲、語意搜尋、生成式 AI 整合流程的學習者

系列文章標題與簡介

天數 主題 簡述
Day 01 一起來打造 PTT 文章智慧問答系統! 說明專案目標、技術堆疊與開發流程
Day 02 環境建置與必要工具安裝(上) 介紹與安裝 PyCharm、Django
Day 03 環境建置與必要工具安裝(下) 介紹與安裝 MariaDB
Day 04 Docker 環境建置(上) 建立可攜式開發與執行環境
Day 05 Docker 環境建置(下) 完整部署到 Docker 的容器
Day 06 探索 PTT 結構與版面資料抓取 擷取文章內容、發文者與時間資訊
Day 07 建立基本爬蟲抓取文章列表與內容 寫出完整爬蟲程式
Day 08 設計 Django Model 並連接資料庫 定義資料結構與模型
Day 09 認識 Celery & Redis 認識、安裝與設定 Celery 與 Redis
Day 10 使用 Celery + Redis 建立非同步排程(上) 實作排程與背景任務執行
Day 11 使用 Celery + Redis 建立非同步排程(下) 實作 Celery Beat
Day 12 監控與除錯 記錄爬蟲執行 Log 並儲存至資料庫
Day 13 Django REST Framework 入門介紹 打造高彈性 RESTful API 的利器
Day 14 實作 Django REST Framework API(上) 建立文章 API:列表、篩選、查詢
Day 15 實作 Django REST Framework API(下) 建立文章 API:單篇內容與統計資料
Day 16 認識 RAG 與 向量資料庫 整合 RAG 與 Pinecone 的運作流程
Day 17 建立向量資料庫基礎 Gemini Embedding 與 Pinecone 初步串接
Day 18 Pinecone 整合實戰 從資料向量化到自動任務串接
Day 19 PTT 文章智慧問答系統 整合 Gemini LLM 回答語意查詢問題
Day 20 封裝語意查詢流程 讓程式碼更乾淨且可維護
Day 21 RAG 的文章切割策略(上) 切割長度應該如何決定
Day 22 RAG 的文章切割策略(下) 決定 PTT 文章切割長度
Day 23 語意檢索與關鍵字檢索 深入認識檢索方式
Day 24 Embedding 模型比較 選擇最適合專案的模型
Day 25 如何降低向量資料庫的成本 最佳化策略分享
Day 26 LLM 回答品質優化技巧 Prompt Engineering 實戰
Day 27 系統監控與日誌分析 追蹤系統的健康狀態
Day 28 系統效能壓測與瓶頸分析 找到成本與效能的平衡點
Day 29 使用者體驗與回饋機制 改善用戶體驗
Day 30 回顧與未來展望 總結學習成果與延伸應用方向建議

本系列目標

利用 PTT 網頁文章 作為資料來源,建立一個可定時抓文、儲存、檢索並生成自然語言回答的系統,讓您從實作中了解以下技術與工具如何使用:

  • 爬蟲技術與排程任務(Celery)
  • 資料儲存(MariaDB + Django ORM)
  • API 設計(Django REST Framework)
  • 向量檢索(Pinecone + LangChain)
  • 自然語言生成(Gemini API)
  • 全系統 Docker 容器化部署

專案簡介

本專案整合下列技術模組:

模組 功能
PTT 爬蟲 定時抓取特定看板最新文章
RAG 架構 結合檢索 + 生成提升問答準確率
Celery + Redis 實現爬蟲排程與非同步處理
MariaDB 儲存爬取文章與紀錄任務 log
DRF 提供 REST API 查詢與問答
Pinecone 向量儲存與語意搜尋
Gemini API 以上下文生成自然語言回答
Docker 開發與部署一鍵完成

系統架構圖

系統架構圖


接下來我們會每天實作系統中的一個部份,從開發、測試到部署,歡迎每天跟著我一起打造屬於你自己的智慧問答機器人!

明天 【Day02】環境建置與必要工具安裝,我們將開始實作第一步!


下一篇
【Day 02】環境建置與必要工具安裝 - PyCharm、Django
系列文
一起來打造 PTT 文章智慧問答系統!30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Wolke
iT邦研究生 4 級 ‧ 2025-10-10 16:12:58

Hi 作者您好,

恭喜您首次參賽就挑戰這麼有深度且實用的主題!看到您將 Python 爬蟲、RAG 與 AI 結合,並以 PTT 文章問答系統作為實作目標,真的非常吸引人。

從 Day 01 到 Day 30 的詳細規劃,涵蓋了爬蟲、資料庫(MariaDB)、API 開發(Django REST Framework)、向量檢索(Pinecone)、生成式 AI(Gemini)乃至於 Docker 部署,內容廣度與深度兼具,對於想從零開始打造 RAG 系統的開發者來說,絕對是非常寶貴的學習資源。特別是您強調「不需要高深的 AI 理論,只要有 Python 基礎」就能跟上,這點更是讓入門者信心大增。期待您的系列文章!

也歡迎版主有空參考我的系列文「南桃AI重生記」:
https://ithelp.ithome.com.tw/users/20046160/ironman/8311

我要留言

立即登入留言