1. 安裝 Python 套件
在專案資料夾 (cancer-dashboard) 建立一個新檔:
pip install psycopg2 pandas numpy
2. 建立 Python Script
建立 predict_and_insert.py:
import psycopg2
import pandas as pd
import numpy as np
# 連接 PostgreSQL
conn = psycopg2.connect(
host="localhost",
database="cancer_db",
user="admin",
password="admin123",
port=5432
)
cursor = conn.cursor()
# 讀取最新的病人數據
cursor.execute("""
SELECT patient_id, record_date, afp, alt
FROM cancer_patients
ORDER BY record_date DESC
LIMIT 1;
""")
latest = cursor.fetchone()
patient_id, record_date, afp, alt = latest
print(f"最新數據:{patient_id}, 日期: {record_date}, AFP={afp}, ALT={alt}")
# 模擬 AI 預測(這裡先用簡單公式代替)
afp_pred = int(afp * np.random.uniform(1.05, 1.15)) # 模擬未來 AFP 成長
alt_pred = int(alt * np.random.uniform(1.02, 1.10)) # 模擬未來 ALT 上升
print(f"AI 預測結果:AFP={afp_pred}, ALT={alt_pred}")
# 更新到資料庫(寫入對應的日期紀錄)
cursor.execute("""
UPDATE cancer_patients
SET afp_pred = %s, alt_pred = %s
WHERE patient_id = %s AND record_date = %s;
""", (afp_pred, alt_pred, patient_id, record_date))
conn.commit()
cursor.close()
conn.close()
print("✅ AI 預測結果已寫入資料庫!")
3. 執行程式
python predict_and_insert.py
執行後應該會看到:
最新數據:001, 日期: 2025-08-30, AFP=500, ALT=90
AI 預測結果:AFP=540, ALT=95
✅ AI 預測結果已寫入資料庫!
4. 檢查結果
進入 PostgreSQL:
SELECT * FROM cancer_patients WHERE patient_id='001';
會看到最新一筆數據的 afp_pred、alt_pred 已經被更新。
**5. 成果 **
● 我們不再手動輸入預測數據
● AI 預測程式能自動產生數據並寫入資料庫
● Grafana 可以即時顯示「實際 vs AI 預測」