到目前為止,我們的 AI 已經能寫報告、畫圖,甚至用語音播報。
但你可能會發現: 這些功能都還是被動的,必須要「我們去問 AI」,它才會給答案。
那如果反過來呢?
👉 讓 AI 主動通知我們:
當股價突破某個區間
當新聞出現重大關鍵字(例如「財報」、「降息」、「裁員」)
當技術指標出現買進/賣出訊號
這樣一來,AI 才真正成為「投資助理」,而不只是「查詢工具」。
股價漲跌超過 5%
新聞情緒轉為「恐慌」
技術指標 RSI < 30(超賣區)
LINE / Telegram
簡單版:Google Colab 上即時提醒
python
!pip install yfinance smtplib
python
import yfinance as yf
import smtplib
from email.mime.text import MIMEText
import google.generativeai as genai
# 設定 Gemini
genai.configure(api_key="YOUR_GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-2.5-flash")
# 設定股票 & 門檻
stock = "AAPL"
threshold = 5 # 漲跌幅百分比
# 取得股價
data = yf.Ticker(stock).history(period="5d")
yesterday = data["Close"][-2]
today = data["Close"][-1]
pct_change = (today - yesterday) / yesterday * 100
# 讓 AI 幫我們生成提醒內容
# 這裡無論變動大小都會生成內容
ai_msg = model.generate_content(
f"蘋果股價今日變動 {pct_change:.2f}%,請用簡單 2 句話寫提醒給投資人"
).text
# 發送 Email
sender = "YOUR_GMAIL@gmail.com"
receiver = "YOUR_GMAIL@gmail.com"
msg = MIMEText(ai_msg, "plain", "utf-8")
msg["Subject"] = f"[投資提醒] {stock} 股價變動 {pct_change:.2f}%"
msg["From"] = sender
msg["To"] = receiver
try:
with smtplib.SMTP("smtp.gmail.com", 587) as server:
server.starttls()
server.login(sender, "ebvxmvsbqatckppr")
server.sendmail(sender, receiver, msg.as_string())
print("✅ 投資提醒已寄出:", ai_msg)
except Exception as e:
print(f"❌ 寄信失敗,請檢查設定:{e}")
執行完後就會顯示出已寄出,如果失敗的話可能就是各個細項沒有填寫正確,或是伺服器暫時無法處理請求,換個環境或是等一下再執行一次即可。
接著就可以在信箱收到新的信件
如果想要更即時、手機隨時可收,可以用 LINE Messaging API。
申請 LINE 官方帳號:你需要一個 LINE 官方帳號來作為發送訊息的主體。
建立 Messaging API 通道:在 LINE Developers 後台,為你的官方帳號建立一個 Messaging API 通道。
取得通道存取權杖 (Channel Access Token):這是你用來呼叫 API 的金鑰,類似於 LINE Notify 的權杖。
!pip install line-bot-sdk
import requests
from linebot import LineBotApi
from linebot.models import TextSendMessage
# 你的 LINE Messaging API 設定
# 這些資訊需要從 LINE Developers 後台取得
channel_access_token = "YOUR_CHANNEL_ACCESS_TOKEN" # 你的通道存取權杖
user_id = "YOUR_USER_ID" # 你的 LINE 使用者 ID (通常在 Messaging API 文件中有說明如何取得)
# 初始化 LINE Bot API
line_bot_api = LineBotApi(channel_access_token)
# 設定要發送的訊息
message = "🚨 投資提醒:AAPL 今日股價大漲 5%,AI 建議觀察市場情緒"
# 建立要發送的訊息物件
text_message = TextSendMessage(text=message)
# 發送訊息
try:
line_bot_api.push_message(user_id, text_message)
print("✅ LINE 訊息已成功發送!")
except Exception as e:
print(f"❌ 發送失敗,請檢查設定:{e}")
這樣一來,你的 LINE 就能收到 AI 發來的投資快訊。
接著就可以去 Line 確認有沒有收到訊息。
python
import google.generativeai as genai
from linebot import LineBotApi
from linebot.models import TextSendMessage
import os
import requests
# --- 核心解決方案:清除代理設定並強制忽略 ---
# 這是為了避免 Colab 偶爾出現的連線問題
if 'HTTP_PROXY' in os.environ:
del os.environ['HTTP_PROXY']
if 'HTTPS_PROXY' in os.environ:
del os.environ['HTTPS_PROXY']
if 'http_proxy' in os.environ:
del os.environ['http_proxy']
if 'https_proxy' in os.environ:
del os.environ['https_proxy']
requests.utils.get_environ_proxies = lambda: {}
# --- 步驟一:設定 API 金鑰與 LINE 資訊 ---
# 請將 YOUR_... 替換成你的真實金鑰與 ID
GEMINI_API_KEY = "YOUR_GEMINI_API_KEY"
LINE_CHANNEL_ACCESS_TOKEN = "YOUR_LINE_CHANNEL_ACCESS_TOKEN"
LINE_USER_ID = "YOUR_LINE_USER_ID"
# 設定 Gemini
genai.configure(api_key=GEMINI_API_KEY)
model = genai.GenerativeModel("gemini-2.5-flash")
# 初始化 LINE Bot API
line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
# --- 步驟二:AI 生成待辦清單 ---
tasks = []
prompt = "請幫我生成一個投資待辦清單,根據以下情境:蘋果股價下跌 6%,新聞傳出供應鏈有問題。請用條列式清單呈現,例如:1. 檢查... 2. 分析..."
try:
print("正在呼叫 Gemini API,生成待辦清單...")
ai_reminder = model.generate_content(
prompt,
request_options={'timeout': 30}
).text
# 將 AI 生成的內容加入清單
tasks.append(ai_reminder)
print("📌 今日投資待辦:")
print(tasks[-1])
except Exception as e:
print(f"❌ Gemini API 連線失敗,無法生成清單:{e}")
tasks.append("無法取得 AI 待辦清單,請手動檢查投資組合。")
# --- 步驟三:發送 LINE 訊息 ---
# 將待辦清單內容作為訊息發送
message_to_send = f"今日投資待辦清單:\n\n{tasks[-1]}"
text_message = TextSendMessage(text=message_to_send)
try:
print("\n正在透過 LINE Messaging API 推送待辦清單...")
line_bot_api.push_message(LINE_USER_ID, text_message)
print("✅ LINE 訊息已成功發送!")
except Exception as e:
print(f"❌ LINE 訊息發送失敗,請檢查設定:{e}")
今天我們讓 AI 從「被動回答」升級成「主動提醒」,這才是真正的投資助理!無論是股價異動、新聞快訊,甚至轉成待辦清單,AI 都能幫我們減少遺漏重要資訊的風險。
👉 明天(Day 26),明天我們要進一步提升 Demo 展示館,幫你自動產生投資待辦清單 ✅