這篇文章解決一個問題:讓你的電腦在幾分鐘內具備「用指令呼叫 LLM API」的能力。你會依序完成:安裝 Python、建立虛擬環境、取得 API key、用環境變數安全地保存它,最後用一條 curl 指令驗證整條鏈路是通的。macOS 與 Windows 的操作都會給。全程不需要寫程式基礎,照著指令貼上即可。
開始前先理解你要準備的四樣東西,這樣每一步在做什麼你都不會糊塗:
| 東西 | 是什麼 | 為什麼需要 |
|---|---|---|
| Python | 直譯式程式語言的執行環境 | 後面所有程式範例都用它 |
| openai SDK | 一個 Python 套件(SDK 是「幫你把呼叫細節打包好的工具包」) | 用程式呼叫 LLM API 最通用的方式 |
| API key | 供應商發給你的一串秘密字串 | 你的通行證與計費憑證,等同密碼 |
| 編輯器 | 寫程式的軟體,本文用 VS Code | 可有可無,但早點裝好省事 |
第一步:安裝 Python
macOS
macOS 通常已內建 Python 3。打開「終端機」(Terminal,在應用程式 → 工具程式裡,或用 Spotlight 搜 Terminal),輸入:
python3 --version
看到類似 Python 3.x.x 的版本號就可以往下走。如果系統提示需要先安裝命令列開發者工具,照著裝即可(等同執行 xcode-select --install)。想要更新版的 Python,用 Homebrew 安裝:brew install python。
一個習慣要養成:在 macOS 上打 python3,不要打 python——後者在某些系統上不存在或指向舊版本,會造成「為什麼我的指令沒反應」的困惑。
Windows
到 python.org 下載官方安裝程式。安裝畫面的第一頁有一個勾選框:Add python.exe to PATH,務必勾選再按安裝。這是最多人漏掉的一步,漏掉的症狀是之後在終端機打任何 python 指令都顯示「不是內部或外部命令」。
安裝完,打開 PowerShell(開始功能表搜 PowerShell),驗證:
py --version
看到版本號即成功。Windows 上習慣用 py 這個啟動器指令。
版本方面:openai SDK 對 Python 版本有最低要求,以它的官方 GitHub 頁面(github.com/openai/openai-python)為準;實務上直接裝官網最新的穩定版就不會遇到問題。
第二步:虛擬環境與相依套件
虛擬環境(virtual environment)一句話解釋:給這個專案一個獨立的 Python 空間,裝的套件只屬於它,不會跟其他專案互相污染。這是 Python 社群的標準做法,跳過它遲早會遇到「A 專案裝的套件版本把 B 專案弄壞」。
先建一個專案資料夾並進入:
mkdir llm-demo
cd llm-demo
建立並啟用虛擬環境:
# macOS / Linux
python3 -m venv .venv
source .venv/bin/activate
# Windows (PowerShell)
py -m venv .venv
.venv\Scripts\Activate.ps1
啟用成功後,命令提示字元前面會出現 (.venv) 字樣。Windows 若出現「無法載入,因為系統停用指令碼執行」的錯誤,先執行下面這行再重試激活:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
然後安裝本篇與後續文章需要的兩個套件:
pip install openai python-dotenv
openai 是呼叫 API 用的 SDK,python-dotenv 是稍後讀取環境變數檔案用的。
第三步:API key 與環境變數
取得 API key
本文以 DeepSeek 為例(中文支援好、門檻低),OpenAI 相容端點的做法完全相同:
- 到 DeepSeek 開放平台(platform.deepseek.com)註冊帳號。
- 進入 API Keys 頁面,建立一組新的 API key。
- key 的完整內容通常只在建立當下顯示一次,立刻複製存到安全的地方。
若要用 OpenAI,則到 platform.openai.com 建立 API key。兩家的計費方式與單價各不相同,充值門檻與價格一律以各自官網的控制台為準,本文不列金額——價格會變,文章會過時,官網不會騙你。
為什麼要用環境變數,而不是寫進程式碼
環境變數(environment variable)是作業系統層級的「名字 → 值」設定,程式執行時可以讀取。把 API key 放進環境變數而不是寫死在程式碼裡,原因只有一個但足夠致命:程式碼會被分享、上傳、commit 進 git,環境變數不會。
這不是理論風險。GitHub 上有自動化程式日夜掃描公開倉庫裡洩漏的 API key,撿到就拿去挖礦或轉賣算力,帳單寄給你自己。任何一家供應商的文件都會叫你別把 key 寫進程式碼,原因就在這裡。
方法 A:專案內的 .env 檔案(推薦)
在專案資料夾建立 .env 檔案(前面的點是檔案名稱的一部分),內容一行:
DEEPSEEK_API_KEY=sk-你複製過來的金鑰
同一資料夾建立 .gitignore,把 .env 列進去,讓 git 永遠不要追蹤它:
.env
.venv/
再建立一個 .env.example 作為給別人看的範本(只有變數名、沒有值,這個可以進 git):
DEEPSEEK_API_KEY=sk-your-key-here
之後 Python 程式用剛裝好的 python-dotenv 讀取:
from dotenv import load_dotenv
load_dotenv() # 把 .env 的內容載入成環境變數
方法 B:寫進 shell 設定(全域生效)
如果你希望電腦上所有終端機都能直接用,macOS 把它寫進 ~/.zshrc:
echo 'export DEEPSEEK_API_KEY="sk-你的金鑰"' >> ~/.zshrc
source ~/.zshrc # 讓當前終端機立即生效
Windows PowerShell 用 setx:
setx DEEPSEEK_API_KEY "sk-你的金鑰"
注意:setx 只對「之後新開的」終端機視窗生效,當前視窗讀不到,這是很常見的困惑來源。
驗證
# macOS / Linux
echo $DEEPSEEK_API_KEY
# Windows PowerShell
echo $env:DEEPSEEK_API_KEY
印得出金鑰就成功了。
第四步:編輯器與第一個測試指令
安裝 VS Code
到 code.visualstudio.com 下載安裝,打開後用它「開啟資料夾」功能打開你的 llm-demo 資料夾,再安裝左側擴充功能面板裡的 Python 擴充(搜尋 Python,安裝微軟官方那個)。最後按 Cmd+Shift+P(Windows 是 Ctrl+Shift+P)叫出命令面板,輸入 Python: Select Interpreter,選擇 .venv 裡的那個——這一步讓 VS Code 的終端機與除錯都用你的虛擬環境。
第一個測試:curl
curl 是一個「用指令發 HTTP 請求」的工具,macOS 與 Windows 10 以後都內建。用它繞過所有程式碼,直接驗證「key 有效、端點可達、模型有回應」:
# macOS / Linux
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "user", "content": "你好,請用一句話回覆,證明連線成功。"}
]
}'
Windows 的 PowerShell 中,curl 是另一個指令的別名,必須打完整的 curl.exe,而且引號跳脫規則很折磨人。務實做法是把請求內容先存成檔案:
# 先建立 body.json(用記事本或 VS Code 存檔即可)
# 內容:{"model":"deepseek-chat","messages":[{"role":"user","content":"你好,請用一句話回覆。"}]}
curl.exe https://api.deepseek.com/chat/completions `
-H "Content-Type: application/json" `
-H "Authorization: Bearer $env:DEEPSEEK_API_KEY" `
-d "@body.json"
成功的話你會收到一大段 JSON 回應,其中三個欄位值得看懂:
choices[0].message.content:模型的回覆文字。usage:這次請求消耗的 token 數(token 是 LLM 計費與長度的單位,下一篇會詳細講)。model:實際處理請求的模型名稱。
要改呼叫 OpenAI 官方端點,把網址換成 https://api.openai.com/v1/chat/completions、金鑰換成 OpenAI 的 key、model 換成該平台目前提供的模型名(以官網清單為準)即可——這就是「OpenAI 相容端點」的意思:同一套請求格式,多家供應商通用。
常見錯誤與踩坑
一、把 .env commit 進 git。 最嚴重也最常見的錯誤。預防:.gitignore 先於 .env 建立。若已經 commit:光刪檔沒用——git 歷史裡還留著。正確處置是立刻到供應商控制台撤銷那把 key、換發新的,再把舊的從歷史清除。把「撤銷重發」當成唯一可靠的補救。
二、Windows PowerShell 的 curl 不是 curl。 打 curl 會呼叫 Invoke-WebRequest,參數完全不相容,錯誤訊息讓人一頭霧水。記住打 curl.exe。
三、setx 之後當前視窗讀不到變數。 setx 寫入的是登錄值,只影響新開的視窗。重開一個 PowerShell 再試。
四、401 / Authorization 錯誤。 通常是:key 複製時前後帶了空格或換行、用了 A 家的 key 打 B 家的端點、或帳號尚未開通 API 權限。逐一排查。
五、ModuleNotFoundError: No module named 'openai'。 十有八九是虛擬環境沒激活——看提示字元前面有沒有 (.venv)。激活後重裝即可。
六、把 curl 指令裡的金鑰直接寫成字面值。 教學截圖、分享指令給同事時,-H "Authorization: Bearer sk-abc123..." 這種寫法等於當眾洩漏。永遠用 $DEEPSEEK_API_KEY 這類變數引用。
下一步
- 環境通了,下一篇 第一次呼叫 LLM API:Token、計費與常見錯誤 用 Python 正式寫程式呼叫,並把 token 與計費的概念講清楚。
- 還不清楚這一切是為了做什麼?回頭看 AI Agent 是什麼。
- 不想用雲端 API、想在自己電腦跑模型:用 Ollama 在本機跑 LLM 與 LM Studio 指南 是兩條本地路線。