iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
生成式 AI

AI 藥師助手:打造人人都看得懂的藥品查詢系統系列 第 16

Day 16:爬蟲 + AI 整合 做智慧藥品資料庫

  • 分享至 

  • xImage
  •  

前言

到目前為止,我已經完成了幾個關鍵功能:

  • 用爬蟲抓取官方藥品資料(Day 9)。

  • 用 AI 把專業資訊轉成白話解釋(Day 10、Day 11)。

  • 建立 SQLite 資料庫儲存藥品資料(Day 14)。

  • 用 Streamlit 做查詢介面(Day 15)。

但這些功能目前是分散的:爬蟲一個程式、AI 一個 API 呼叫、資料庫一個獨立檔案。今天的挑戰就是把它們整合起來,未來只要輸入藥品名稱,就能:

  • 自動查詢官方資料(如果沒資料就用爬蟲補)。

  • 自動生成白話說明(透過 AI API)。

  • 把結果存進 SQLite,方便之後快速查詢。

這樣一來,整個系統會更完整,未來也能加上搜尋、多語言、FAQ 自動生成等功能。

實作步驟

今天的程式分成三大部分:
1.爬蟲模組:輸入藥品名稱,回傳官方資料(成分、副作用、注意事項)。

2.AI 模組:把專業資訊丟進 API,回傳白話解釋。

3.資料庫模組:檢查是否已有資料,若沒有就新增。
核心程式流程就像這樣(簡化版示例):

def get_medicine_info(name):
    # 1. 先查資料庫
    data = query_db(name)
    if data:
        return data
    
    # 2. 沒有就爬蟲抓取
    official_data = crawl_official(name)
    
    # 3. 丟給 AI 做白話翻譯
    ai_explain = call_ai_api(official_data)
    
    # 4. 存進資料庫
    save_to_db(name, official_data, ai_explain)
    
    return {
        "official": official_data,
        "ai": ai_explain
    }

測試案例

用普拿疼來測試:

  • SQLite 一開始沒有資料 → 程式會自動去爬。

  • 爬到官方資訊後,AI 幫忙生成白話說明。

  • 第二次查詢「普拿疼」時,就會直接從 SQLite 撈出來,速度非常快。

心得

整合的過程讓我覺得很像在拼拼圖:之前做的每個小功能都只是單一塊,今天開始把它們組合起來,才真正有了系統的感覺。

最大的收穫是理解到:

  • 資料庫的重要性:沒有資料庫,AI 和爬蟲就會被重複呼叫,效率差又花錢。

  • AI 的角色:不是取代官方資料,而是當翻譯員和解釋員,讓資訊更親民。

  • 可擴充性:未來要加 FAQ、翻譯多語言、甚至自動比對藥品差異,都能在這個架構上繼續擴展。

這一天算是專案的一個小里程碑,因為它正式升級成了一個智慧藥品資料庫,不再只是分散的工具。


上一篇
Day 15:查詢介面 – 用 Streamlit 做藥品查詢小工具
系列文
AI 藥師助手:打造人人都看得懂的藥品查詢系統16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言