当前位置: 首页 > news >正文

flask_restx 定义任意类型参数

之前定义的content只是string,现在需要支持即可以string也可以list

from flask_restx import fields

class 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 fields

class AnyField(fields.Raw):
    def format(self, value):
        return value

    @property
    def __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))
    @inject
    def post(self):
        data = api.payload
        ...

 

http://www.dtcms.com/a/61344.html

相关文章:

  • MySQL主从延迟分析
  • JVM、MySQL常见面试题(尽力局)
  • 蓝桥杯P19718-回文字符串 题解
  • 从头开始开发基于虹软SDK的人脸识别考勤系统(python+RTSP开源)(二)
  • 【HarmonyOS Next】鸿蒙应用加载SVG文件显示图标
  • ArcGIS Pro字段编号相关代码
  • Kafka常用指令(详细)
  • 2025华为OD机试真题最新题库 (B+C+D+E卷) + 在线OJ在线刷题使用说明(C++、Java、Python合集)(正在更新E卷,目前已收录581道)
  • 【时序图】1.StarUML绿化
  • Scala编程_实现Rational的基本操作
  • 远程监控项目描述以及总体框架
  • C# 泛型中的协变、抗变和裂变:概念与应用
  • SSM框架
  • NLP常见任务专题介绍(1)-关系抽取(Relation Extraction, RE)任务训练模板
  • SSH可以连接成功,但VSCode连接不成功的问题
  • 【GPT入门】第6课 openai接口介绍与参数说明
  • 【09】单片机编程核心技巧:变量赋值,从定义到存储的底层逻辑
  • blender学习25.3.11
  • visual studio 2022最常用的快捷键
  • 小程序实现存储用户注册信息功能 前后端+数据库联调
  • 《 C++ 点滴漫谈: 三十 》高手写 C++,参数这样传才高效!你真的用对了吗?
  • 分而治之:用于 RGB-T 显著目标检测的 Confluent Triple-Flow 网络
  • Elasticsearch Java API Client [8.17] 使用
  • bug小记
  • git合并分支回滚的方法
  • Docker篇
  • ACE学习2——write transaction
  • 【Linux docker】关于docker启动出错的解决方法。
  • AWS DynamoDB深度解析:高并发场景下的NoSQL数据库设计与优化实践
  • python基础-字符串速查笔记