之前定义的content只是string,现在需要支持即可以string也可以list
from flask_restx import fieldsclass Messages:def get_model(api):return api.model("Message",{"role": fields.String(required=True, description="The role of message"),"content": fields.String(required=True, description="The content of message"),},)
一开始使用LLM查询,发现都是说定义成fields.Raw就行,但是定义成这个之后只要不是json格式就都会报错。
所以只好自己重写一个类,继承Raw然后重写他的schema方法
from flask_restx import fieldsclass AnyField(fields.Raw):def format(self, value):return value@propertydef __schema__(self):# 返回空字典,不对数据类型进行约束return {}class Messages:def get_model(api):return api.model("Message",{"role": fields.String(required=True, description="The role of message"),"content": AnyField(required=True, description="The content of message"),},)
用的时候一样就行:
from flask_restx import Namespace, Resource
api = Namespace('aggeragator', description='aggeragator endpoints')@api.route('/completion')
class Completion(Resource):@api.doc('Interacting with specific models')@api.expect(Messages.get_model(api))@injectdef post(self):data = api.payload...