Chat / server.py
Apex123's picture
Update server.py
756e5a7 verified
from flask import Flask, request, jsonify
from flask_cors import CORS
import time
from openai import OpenAI
import os
app = Flask(__name__)
CORS(app) # 讓 Open WebUI 可跨域存取
openaikey = os.getenv("openaikey") # 或從 .env 載入
client = OpenAI(api_key=openaikey)
@app.route('/')
def home():
return "✅ Flask API is running!"
@app.route('/v1/chat/completions', methods=['POST'])
def chat():
data = request.get_json(force=True)
messages = data.get("messages", [])
model = data.get("model", "gpt-3.5-turbo")
try:
response = client.chat.completions.create(
model=model,
messages=messages
)
reply = response.choices[0].message.content
except Exception as e:
reply = f"⚠️ OpenAI API 錯誤:{str(e)}"
print(reply)
# 回傳格式符合 OpenAI Chat API 格式
return jsonify({
"id": "chatcmpl-xyz",
"object": "chat.completion",
"created": int(time.time()),
"model": "local-flask-test-001",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": reply
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 10,
"total_tokens": 20
}
})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=7860)