Python 中的 Flask 正在将我的所有列表转换为字符串。这是我的代码:
class OpenAI(Resource):
# methods go here
def post(self):
parser = reqparse.RequestParser() # initialize
parser.add_argument('model', type=str, required=True) # add arguments
parser.add_argument('conversation', type=list, required=True)
parser.add_argument('functions', type=list, required=False)
parser.add_argument('settings', type=dict, required=False)
args = parser.parse_args() # parse arguments to dictionary
print(args)
resp, tokencost = bare_api.Chat.OpenAI(args['model'], args['conversation'], functions=args.get("functions"), settings=args.get("settings"))
resp["tokencost"] = tokencost
if resp.get("error"):
return resp, 400
else:
return resp, 200
api.add_resource(OpenAI, '/chat/openai') # '/chat' is our entry point
if __name__ == '__main__':
app.run() # run our Flask app
这是我以 JSON 形式发送到端点的内容:
{
"model": "gpt-3.5-turbo-0613",
"conversation": [
{
"role": "user",
"content": "ho"
},
{
"role": "assistant",
"content": "hi"
}
]
}
这就是
parser.parse_args()
给我的:
{'model': 'gpt-3.5-turbo-0613', 'conversation': ['role', 'content'], 'functions': None, 'settings': None}
, 而不是我真正想要的,这是 Python 字典形式的邮递员 JSON。
我该如何解决这个问题?
因为您将其指定为
list
parser.add_argument('conversation', type=list, required=True)
尝试:
parser.add_argument('conversation', type=dict, required=True)
我想通了!我需要使用
request.json
而不是 flask_restful
中的解析器。