iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0

每天的專案會同步到 GitLab 上,可以前往 GitLab 查看,有興趣的朋友歡迎留言 or 來信討論,我的信箱是 nickchen1998@gmail.com

今天我們要來快速的設計一下我們的站台,下面分成三個區塊進行說明,分別是頁面呈現、系統架構以及資料表設計

頁面呈現

首先來看一下頁面設計的部分,我們主要分成兩個區塊,分別是 SideBar 和 QA:

頁面設計

首先看一下 SideBar 的部分,一共有三個功能:

  • 選擇資料集:依照目標網站上的分類,提供使用者選擇資料集的功能,。
  • OpenAI Key:由於最後會將站台部署上網路,為了避免資源消耗過大,因此需要請使用者自行填入 OpenAI Key,在這邊我們不會儲存使用者的 Key,請放心使用。
  • 輸出問答紀錄:提供使用者輸出對話紀錄,方便使用者查看,目前預計會輸出 JSON 以及 CSV。

接著是問答頁面的部分,分成三個區塊做解釋:

  • 標題與警語:警語的部分尤為重要,必須強調僅供參考,並非任何醫療建議,避免觸犯法律以及造成誤會。
  • 對話紀錄:目前資料表不設計儲存對話紀錄,因此使用者一但重新整理後對話紀錄就會消失,但仍可以讓使用者在當前網頁中查看以及使用對話紀錄功能對話。
  • 問題輸入:使用者可以在這邊輸入問題,並且點擊送出按鈕,就會將問題送到後端進行處理,並且將回答顯示在對話紀錄中。

系統架構

系統架構的部分,我們主要分成四個部分,分別是前端、爬蟲、資料庫以及 OpenAI API:

系統架構

前台以及 OpenAI API 的部分在前面幾天的文章當中都有說明過了,這邊就不再贅述,我們直接針對爬蟲及資料庫做說明:

  • 爬蟲:目前暫定會使用 Selenium 來進行爬蟲,因為目標網站是動態網站,因此需要使用 Selenium 來模擬瀏覽器行為,目標網站則是 衛生福利部 台灣 e 院
  • 資料庫:這邊選擇使用 MongoDB 作為資料的儲存,原因是他有免費的線上資源,並且可以發現我們沒有特別拉出向量資料庫的部分,是因為 MongoDB 有協助將向量索引整合進他們的 Atlas 的服務當中,有興趣的朋友可以看一下 這篇文章

再三強調,爬蟲目的僅為學習研究,請勿濫用腳本進行攻擊行為或將資料用於商業用途

資料表設計

最後是資料表設計的部分,基本上可以看到都是對著網頁上的資料設計的,不過下面列出幾點比較需要解釋的部分:

  • 不儲存發問者年齡及名字,避免觸犯個資法,僅儲存性別。
  • refactor_question 以及 refactor_answer 是為了避免文章過於複雜,我們會使用 LLM 協助重構內文。
  • 我們會針對 refactor_question 計算 embedding 並儲存在 refactor_question_embeddings 這個欄位當中,可以看到這是個 list 型態的欄位,計算完成後會透過 MongoDB 建立向量索引。

資料表

內容預告

今天我們快速說明了一下我們的站台架構,明天我們會開始進行爬蟲的部分,並且將資料存入 MongoDB 中。


上一篇
Day 21 - Streamlit 快速入門
下一篇
Day 23 - 使用 Selenium 進行動態網頁資料擷取
系列文
初探 Langchain 與 LLM:打造簡易問診機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言