# coding=utf-8 """ @project: maxkb @Author:虎 @file: provide_api.py @date:2023/11/2 14:25 @desc: """ from drf_yasg import openapi from common.mixins.api_mixin import ApiMixin class ModelQueryApi(ApiMixin): @staticmethod def get_request_params_api(): return [openapi.Parameter(name='name', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=False, description='模型名称'), openapi.Parameter(name='model_type', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=False, description='模型类型'), openapi.Parameter(name='model_name', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=False, description='基础模型名称'), openapi.Parameter(name='provider', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=False, description='供应名称') ] class ModelEditApi(ApiMixin): @staticmethod def get_request_body_api(): return openapi.Schema(type=openapi.TYPE_OBJECT, title="调用函数所需要的参数", description="调用函数所需要的参数", required=['provide', 'model_info'], properties={ 'name': openapi.Schema(type=openapi.TYPE_STRING, title="模型名称", description="模型名称"), 'model_type': openapi.Schema(type=openapi.TYPE_STRING, title="供应商", description="供应商"), 'model_name': openapi.Schema(type=openapi.TYPE_STRING, title="供应商", description="供应商"), 'credential': openapi.Schema(type=openapi.TYPE_OBJECT, title="模型证书信息", description="模型证书信息") } ) class ModelCreateApi(ApiMixin): @staticmethod def get_request_body_api(): return openapi.Schema(type=openapi.TYPE_OBJECT, title="调用函数所需要的参数", description="调用函数所需要的参数", required=['provide', 'model_info'], properties={ 'name': openapi.Schema(type=openapi.TYPE_STRING, title="模型名称", description="模型名称"), 'provider': openapi.Schema(type=openapi.TYPE_STRING, title="供应商", description="供应商"), 'model_type': openapi.Schema(type=openapi.TYPE_STRING, title="供应商", description="供应商"), 'model_name': openapi.Schema(type=openapi.TYPE_STRING, title="供应商", description="供应商"), 'credential': openapi.Schema(type=openapi.TYPE_OBJECT, title="模型证书信息", description="模型证书信息") } ) class ProvideApi(ApiMixin): class ModelTypeList(ApiMixin): @staticmethod def get_request_params_api(): return [openapi.Parameter(name='provider', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=True, description='供应名称'), ] @staticmethod def get_response_body_api(): return openapi.Schema( type=openapi.TYPE_OBJECT, required=['key', 'value'], properties={ 'key': openapi.Schema(type=openapi.TYPE_STRING, title="模型类型描述", description="模型类型描述", default="大语言模型"), 'value': openapi.Schema(type=openapi.TYPE_STRING, title="模型类型值", description="模型类型值", default="LLM"), } ) class ModelList(ApiMixin): @staticmethod def get_request_params_api(): return [openapi.Parameter(name='provider', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=True, description='供应名称'), openapi.Parameter(name='model_type', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=True, description='模型类型'), ] @staticmethod def get_response_body_api(): return openapi.Schema( type=openapi.TYPE_OBJECT, required=['name', 'desc', 'model_type'], properties={ 'name': openapi.Schema(type=openapi.TYPE_STRING, title="模型名称", description="模型名称", default="模型名称"), 'desc': openapi.Schema(type=openapi.TYPE_STRING, title="模型描述", description="模型描述", default="xxx模型"), 'model_type': openapi.Schema(type=openapi.TYPE_STRING, title="模型类型值", description="模型类型值", default="LLM"), } ) class ModelForm(ApiMixin): @staticmethod def get_request_params_api(): return [openapi.Parameter(name='provider', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=True, description='供应名称'), openapi.Parameter(name='model_type', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=True, description='模型类型'), openapi.Parameter(name='model_name', in_=openapi.IN_QUERY, type=openapi.TYPE_STRING, required=True, description='模型名称'), ] @staticmethod def get_request_params_api(): return [openapi.Parameter(name='provider', in_=openapi.IN_PATH, type=openapi.TYPE_STRING, required=True, description='供应商'), openapi.Parameter(name='method', in_=openapi.IN_PATH, type=openapi.TYPE_STRING, required=True, description='需要执行的函数'), ] @staticmethod def get_request_body_api(): return openapi.Schema(type=openapi.TYPE_OBJECT, title="调用函数所需要的参数", description="调用函数所需要的参数", )