JSON转Python函数参数方法及Flask调用OpenAI API报错排查
问题解决:OpenAI ChatCompletion 提示缺少model参数
错误原因
你的Flask代码对请求体做了重复解析:request.get_json(force=True)已经将POST请求体解析为Python字典,额外调用json.loads()会导致传递给openai.ChatCompletion.create()的参数格式异常,OpenAI API无法正确识别model参数。
修正后的代码
from flask import Flask, request import openai, json openai.api_key = API_KEY app = Flask(__name__) @app.route('/v1/chat/completions', methods=["POST"]) def index(): # 直接使用request.get_json解析后的字典,无需再次json.loads response = openai.ChatCompletion.create(**request.get_json(force=True)) # 将OpenAI响应转为JSON格式返回,确保Flask能正确处理 return json.dumps(response), 200, {'Content-Type': 'application/json'} app.run(debug=True, port=8080)
关键修正点:
- 移除多余的
json.loads(),用**将字典参数解包传递给create方法 - OpenAI返回的是对象,需用
json.dumps()转为JSON字符串,同时设置正确的响应头
请求体格式验证
确保实际发送的请求体是标准JSON格式(使用双引号),示例如下:
{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "What is 2 + 2?"}], "temperature": 0}
内容的提问来源于stack exchange,提问作者Ender Bender
相关产品推荐
相关产品推荐

