整合 OpenAI API
建立 /chat 對話端點
2.4_打造AI對話API/階段一_建立AI對話功能/
想像一家餐廳有不同的服務窗口:
在網頁應用中,API 端點就是這些不同的服務窗口:
/chat 端點,專門處理 AI 對話請求!
將 app.py 的內容替換為以下完整程式碼:
# 引入必要的套件 from flask import Flask, request, jsonify from openai import OpenAI from dotenv import load_dotenv import os # 載入環境變數 load_dotenv() # 建立 Flask 應用程式和 OpenAI 客戶端 app = Flask(__name__) client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))
request:取得使用者發送的資料jsonify:回傳 JSON 格式的資料OpenAI:呼叫 OpenAI API
繼續加入首頁路由和 /chat 端點:
# 首頁路由 @app.route('/') def home(): return '<h1>AI 對話 API 已啟動!</h1>' # AI 對話端點 @app.route('/chat', methods=['POST']) def chat(): try: data = request.json user_message = data.get('message', '') if not user_message: return jsonify({'error': '訊息不能是空的'}), 400
# 呼叫 OpenAI API response = client.chat.completions.create( model="gpt-5.6-terra", messages=[ {"role": "system", "content": "你是一個友善的 AI 助手"}, {"role": "user", "content": user_message} ], max_tokens=500 ) ai_message = response.choices[0].message.content return jsonify({'success': True, 'message': ai_message}) except Exception as e: return jsonify({'error': str(e)}), 500 if __name__ == '__main__': app.run(debug=True)
load_dotenv():載入 .env 檔案中的 API KeyOpenAI(api_key=...):建立 OpenAI 客戶端methods=['POST']:只接受 POST 請求request.json:取得使用者發送的 JSON 資料data.get('message'):取得 message 欄位model="gpt-5.6-terra":使用 GPT-5.6 Terra 模型max_tokens=500:限制回應長度(控制成本)存檔後,在 CMD 執行:
(venv) C:\...\ch2_local_ai_app> python app.py
* Serving Flask app 'app' * Debug mode: on * Running on http://127.0.0.1:5000
.env 檔案中有正確的 API Key/chat 端點request.json 取得資料jsonify 回傳 JSONch2_local_ai_app/ ├── venv/ ├── app.py ← 已加入 OpenAI 和 /chat 端點 ├── .env ← 包含 OPENAI_API_KEY └── .gitignore