You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 01:49:58