怎樣用程式呼叫 LLM?
你平常在 ChatGPT / Claude 網頁上打字聊天,背後其實就是一個程式在呼叫 LLM 的 API。我們今天要學的,就是怎樣自己寫程式來呼叫 LLM——跳過聊天介面,直接用 Python 控制 AI 做事。
核心概念很簡單:你送一段文字(prompt)給 API,API 回傳 AI 的回答。就這樣。
最簡單的 LLM 呼叫
# 三行就能呼叫 LLM
from google import genai
client = genai.Client(api_key="你的API_KEY")
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="用一句話解釋什麼是心電圖"
)
print(response.text)
就這麼簡單。contents 就是你的 prompt,response.text 就是 AI 的回答。接下來我們把它包進 Streamlit,加上檔案上傳,就變成實用的工具。
單檔 LLM 程式
一個 Python 檔案 + 一個 API Key,就能做出有用的 AI 工具。不需要資料庫,不需要複雜的後端架構,不需要前端框架。今天我們用 Streamlit 做 UI,用 Gemini 3.5 Flash 做 LLM 後端,兩者搭配起來,幾分鐘就能做出一個完整的 AI 應用。
接下來用兩個實際例子示範:讀論文(送 PDF 給 LLM 分析)和讀圖片(送圖片給 LLM 描述),讓你看到 prompt 怎樣決定 AI 的行為。
實作一:讀論文程式
用 Gemini 3.5 Flash 自動分析 PDF 論文,產生結構化摘要。
建立專案
建立一個新的專案資料夾,啟動 conda 環境,安裝需要的套件。
$ mkdir gemini-apps
$ cd gemini-apps
$ conda activate bioagent
$ pip install streamlit google-genai
設定 API Key
將你的 Gemini API Key 設定為環境變數,讓程式可以讀取。
$ export GEMINI_API_KEY="你的API Key"
用 LLM 建立讀論文程式
打開 LLM,給它以下 prompt,讓它幫你生成完整的讀論文應用程式。
幫我寫一個 Streamlit 應用程式 paper_reader.py:
功能:
1. 使用者可以上傳 PDF 論文
2. 用 Gemini 3.5 Flash 分析論文內容
3. 自動產生:論文摘要、研究方法、主要發現、限制與未來方向
4. 顯示結果在漂亮的 Streamlit UI 上
技術要求:
- 使用 google-genai SDK
- Model: gemini-3.5-flash
- API Key 從環境變數 GEMINI_API_KEY 讀取
- 上傳的 PDF 用 Gemini 的 File API 處理
啟動並測試
用 Streamlit 啟動應用程式,然後在瀏覽器中測試。
$ streamlit run paper_reader.py
- 上傳一篇 PDF 論文測試
- 觀察 Gemini 的分析結果
實作二:讀圖片程式
用 Gemini 3.5 Flash 分析圖片內容,支援多輪對話提問。
用 LLM 建立讀圖片程式
打開 LLM,給它以下 prompt,讓它幫你生成圖片分析應用程式。
幫我寫一個 Streamlit 應用程式 image_reader.py:
功能:
1. 使用者可以上傳圖片(JPG, PNG)
2. 用 Gemini 3.5 Flash 分析圖片內容
3. 可以對圖片提問(例如「這張圖裡有什麼?」「請描述這張醫學影像」)
4. 支援多輪對話,可以追問
技術要求:
- 使用 google-genai SDK
- Model: gemini-3.5-flash
- API Key 從環境變數 GEMINI_API_KEY 讀取
- 圖片直接用 PIL 讀取後傳給 Gemini
啟動並測試
用 Streamlit 啟動應用程式,在瀏覽器中測試各種圖片分析情境。
$ streamlit run image_reader.py
- 上傳一張圖片測試
- 試著對圖片提問
- 試著上傳一張醫學影像(X-ray、CT scan 等),看 Gemini 的分析能力
觀察重點
注意你給 LLM 的 prompt 如何影響產出的程式品質。prompt 寫得越具體、越結構化,產出的程式就越完整、越好用。試著修改 prompt 的措辭,觀察產出的差異。
比較不同 prompt 寫法產出的程式差異。例如:只寫「幫我做一個讀論文的程式」vs 上面那樣列出完整的功能需求和技術要求,產出的品質會天差地別。
整個應用只有一個 Python 檔案,但功能已經很完整。不需要前後端分離、不需要資料庫、不需要複雜的部署流程。這就是「單檔 LLM 程式」的威力。
Gemini 3.5 Flash 速度快、便宜,非常適合 prototype。回應速度快意味著開發迭代快,價格便宜意味著可以大量測試,不用擔心成本。
這就是「單檔 LLM 程式」的威力:快速驗證想法,不需要複雜架構。從想法到可用的 prototype,可能只需要十分鐘。先做出來、先驗證,再決定要不要投入更多資源開發完整產品。
推到 GitHub
把你的 Gemini Streamlit 應用推上 GitHub,完成本次實作。
初始化 Git 並提交
初始化 Git repo,建立 .env 和 .gitignore,確保 API Key 不會被提交。
$ git init
$ echo "GEMINI_API_KEY=你的key" > .env
$ echo ".env" > .gitignore
$ git add paper_reader.py image_reader.py .gitignore
$ git commit -m "Add Gemini Streamlit apps"
IMPORTANT
千萬不要把 API Key commit 到 git!用 .env 檔案存放,並加到 .gitignore。API Key 一旦洩漏,別人就可以用你的額度呼叫 API,造成不必要的費用。