Skip to content

Commit ded6d6f

Browse files
committed
feat: add response body schemas for various API endpoints
(cherry picked from commit 847755b)
1 parent 959187b commit ded6d6f

File tree

12 files changed

+216
-9
lines changed

12 files changed

+216
-9
lines changed

apps/application/swagger_api/application_api.py

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ def get_request_body_api():
3838
}
3939
)
4040

41+
@staticmethod
42+
def get_response_body_api():
43+
return openapi.Schema(
44+
type=openapi.TYPE_STRING,
45+
title=_("Application authentication token"),
46+
description=_("Application authentication token"),
47+
default="token"
48+
)
49+
4150
@staticmethod
4251
def get_response_body_api():
4352
return openapi.Schema(
@@ -133,6 +142,27 @@ def get_request_body_api():
133142
}
134143
)
135144

145+
@staticmethod
146+
def get_response_body_api():
147+
return openapi.Schema(
148+
type=openapi.TYPE_OBJECT,
149+
properties={
150+
'id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Primary key id"),
151+
description=_("Primary key id")),
152+
'secret_key': openapi.Schema(type=openapi.TYPE_STRING, title=_("Secret key"),
153+
description=_("Secret key")),
154+
'is_active': openapi.Schema(type=openapi.TYPE_BOOLEAN, title=_("Is activation"),
155+
description=_("Is activation")),
156+
'application_id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Application ID"),
157+
description=_("Application ID")),
158+
'allow_cross_domain': openapi.Schema(type=openapi.TYPE_BOOLEAN,
159+
title=_("Is cross-domain allowed"),
160+
description=_("Is cross-domain allowed")),
161+
'cross_domain_list': openapi.Schema(type=openapi.TYPE_ARRAY, title=_('Cross-domain list'),
162+
items=openapi.Schema(type=openapi.TYPE_STRING))
163+
}
164+
)
165+
136166
class AccessToken(ApiMixin):
137167
@staticmethod
138168
def get_request_params_api():
@@ -171,6 +201,37 @@ def get_request_body_api():
171201
}
172202
)
173203

204+
@staticmethod
205+
def get_response_body_api():
206+
return openapi.Schema(
207+
type=openapi.TYPE_OBJECT,
208+
required=[],
209+
properties={
210+
'id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Primary key id"),
211+
description=_("Primary key id")),
212+
'access_token': openapi.Schema(type=openapi.TYPE_STRING, title=_("Access Token"),
213+
description=_("Access Token")),
214+
'access_token_reset': openapi.Schema(type=openapi.TYPE_BOOLEAN, title=_("Reset Token"),
215+
description=_("Reset Token")),
216+
217+
'is_active': openapi.Schema(type=openapi.TYPE_BOOLEAN, title=_("Is activation"),
218+
description=_("Is activation")),
219+
'access_num': openapi.Schema(type=openapi.TYPE_NUMBER, title=_("Number of visits"),
220+
description=_("Number of visits")),
221+
'white_active': openapi.Schema(type=openapi.TYPE_BOOLEAN, title=_("Whether to enable whitelist"),
222+
description=_("Whether to enable whitelist")),
223+
'white_list': openapi.Schema(type=openapi.TYPE_ARRAY,
224+
items=openapi.Schema(type=openapi.TYPE_STRING), title=_("Whitelist"),
225+
description=_("Whitelist")),
226+
'show_source': openapi.Schema(type=openapi.TYPE_BOOLEAN,
227+
title=_("Whether to display knowledge sources"),
228+
description=_("Whether to display knowledge sources")),
229+
'language': openapi.Schema(type=openapi.TYPE_STRING,
230+
title=_("language"),
231+
description=_("language"))
232+
}
233+
)
234+
174235
class Edit(ApiMixin):
175236
@staticmethod
176237
def get_request_body_api():
@@ -379,6 +440,56 @@ def get_request_body_api():
379440
}
380441
)
381442

443+
@staticmethod
444+
def get_response_body_api():
445+
return openapi.Schema(
446+
type=openapi.TYPE_OBJECT,
447+
required=['id', 'name', 'desc', 'model_id', 'dialogue_number', 'dataset_setting', 'model_setting',
448+
'problem_optimization', 'stt_model_enable', 'stt_model_enable', 'tts_type',
449+
'work_flow'],
450+
properties={
451+
'id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Primary key id"),
452+
description=_("Primary key id")),
453+
'name': openapi.Schema(type=openapi.TYPE_STRING, title=_("Application Name"),
454+
description=_("Application Name")),
455+
'desc': openapi.Schema(type=openapi.TYPE_STRING, title=_("Application Description"),
456+
description=_("Application Description")),
457+
'model_id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Model id"),
458+
description=_("Model id")),
459+
"dialogue_number": openapi.Schema(type=openapi.TYPE_NUMBER,
460+
title=_("Number of multi-round conversations"),
461+
description=_("Number of multi-round conversations")),
462+
'prologue': openapi.Schema(type=openapi.TYPE_STRING, title=_("Opening remarks"),
463+
description=_("Opening remarks")),
464+
'dataset_id_list': openapi.Schema(type=openapi.TYPE_ARRAY,
465+
items=openapi.Schema(type=openapi.TYPE_STRING),
466+
title=_("List of associated knowledge base IDs"),
467+
description=_("List of associated knowledge base IDs")),
468+
'dataset_setting': ApplicationApi.DatasetSetting.get_request_body_api(),
469+
'model_setting': ApplicationApi.ModelSetting.get_request_body_api(),
470+
'problem_optimization': openapi.Schema(type=openapi.TYPE_BOOLEAN, title=_("Problem Optimization"),
471+
description=_("Problem Optimization"), default=True),
472+
'type': openapi.Schema(type=openapi.TYPE_STRING, title=_("Application Type"),
473+
description=_("Application Type SIMPLE | WORK_FLOW")),
474+
'problem_optimization_prompt': openapi.Schema(type=openapi.TYPE_STRING,
475+
title=_('Question optimization tips'),
476+
description=_("Question optimization tips"),
477+
default=_(
478+
"() contains the user's question. Answer the guessed user's question based on the context ({question}) Requirement: Output a complete question and put it in the <data></data> tag")),
479+
'tts_model_id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Text-to-speech model ID"),
480+
description=_("Text-to-speech model ID")),
481+
'stt_model_id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Speech-to-text model id"),
482+
description=_("Speech-to-text model id")),
483+
'stt_model_enable': openapi.Schema(type=openapi.TYPE_STRING, title=_("Is speech-to-text enabled"),
484+
description=_("Is speech-to-text enabled")),
485+
'tts_model_enable': openapi.Schema(type=openapi.TYPE_STRING, title=_("Is text-to-speech enabled"),
486+
description=_("Is text-to-speech enabled")),
487+
'tts_type': openapi.Schema(type=openapi.TYPE_STRING, title=_("Text-to-speech type"),
488+
description=_("Text-to-speech type")),
489+
'work_flow': ApplicationApi.WorkFlow.get_request_body_api(),
490+
}
491+
)
492+
382493
class Query(ApiMixin):
383494
@staticmethod
384495
def get_request_params_api():

apps/application/swagger_api/chat_api.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,15 @@ def get_request_body_api():
319319
}
320320
)
321321

322+
@staticmethod
323+
def get_response_body_api():
324+
return openapi.Schema(
325+
type=openapi.TYPE_STRING,
326+
title=_("Conversation ID"),
327+
description=_("Conversation ID"),
328+
default="chat_id"
329+
)
330+
322331
@staticmethod
323332
def get_request_params_api():
324333
return [openapi.Parameter(name='application_id',

apps/application/views/application_views.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,8 @@ class Operate(APIView):
371371
operation_id=_("Modify application API_KEY"),
372372
tags=[_('Application/API_KEY')],
373373
manual_parameters=ApplicationApi.ApiKey.Operate.get_request_params_api(),
374-
request_body=ApplicationApi.ApiKey.Operate.get_request_body_api())
374+
request_body=ApplicationApi.ApiKey.Operate.get_request_body_api(),
375+
responses=result.get_api_response(ApplicationApi.ApiKey.Operate.get_response_body_api()))
375376
@has_permissions(ViewPermission(
376377
[RoleConstants.ADMIN, RoleConstants.USER],
377378
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
@@ -413,7 +414,8 @@ class AccessToken(APIView):
413414
operation_id=_("Modify Application AccessToken"),
414415
tags=[_('Application/Public Access')],
415416
manual_parameters=ApplicationApi.AccessToken.get_request_params_api(),
416-
request_body=ApplicationApi.AccessToken.get_request_body_api())
417+
request_body=ApplicationApi.AccessToken.get_request_body_api(),
418+
responses=result.get_api_response(ApplicationApi.AccessToken.get_response_body_api()))
417419
@has_permissions(ViewPermission(
418420
[RoleConstants.ADMIN, RoleConstants.USER],
419421
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
@@ -453,6 +455,7 @@ def options(self, request, *args, **kwargs):
453455
@swagger_auto_schema(operation_summary=_("Application Certification"),
454456
operation_id=_("Application Certification"),
455457
request_body=ApplicationApi.Authentication.get_request_body_api(),
458+
responses=result.get_api_response(ApplicationApi.Authentication.get_response_body_api()),
456459
tags=[_("Application/Certification")],
457460
security=[])
458461
def post(self, request: Request):
@@ -470,6 +473,7 @@ def post(self, request: Request):
470473
@swagger_auto_schema(operation_summary=_("Create an application"),
471474
operation_id=_("Create an application"),
472475
request_body=ApplicationApi.Create.get_request_body_api(),
476+
responses=result.get_api_response(ApplicationApi.Create.get_response_body_api()),
473477
tags=[_('Application')])
474478
@has_permissions(PermissionConstants.APPLICATION_CREATE, compare=CompareConstants.AND)
475479
@log(menu='Application', operate="Create an application",

apps/application/views/chat_views.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class OpenWorkFlowTemp(APIView):
9494
@swagger_auto_schema(operation_summary=_("Get the workflow temporary session id"),
9595
operation_id=_("Get the workflow temporary session id"),
9696
request_body=ChatApi.OpenWorkFlowTemp.get_request_body_api(),
97+
responses=result.get_api_response(ChatApi.OpenTempChat.get_response_body_api()),
9798
tags=[_("Application/Chat")])
9899
def post(self, request: Request):
99100
return result.success(ChatSerializers.OpenWorkFlowChat(
@@ -106,6 +107,7 @@ class OpenTemp(APIView):
106107
@swagger_auto_schema(operation_summary=_("Get a temporary session id"),
107108
operation_id=_("Get a temporary session id"),
108109
request_body=ChatApi.OpenTempChat.get_request_body_api(),
110+
responses=result.get_api_response(ChatApi.OpenTempChat.get_response_body_api()),
109111
tags=[_("Application/Chat")])
110112
@has_permissions(RoleConstants.ADMIN, RoleConstants.USER)
111113
def post(self, request: Request):
@@ -239,6 +241,7 @@ def delete(self, request: Request, application_id: str, chat_id: str):
239241
@swagger_auto_schema(operation_summary=_("Client modifies dialogue summary"),
240242
operation_id=_("Client modifies dialogue summary"),
241243
request_body=ChatClientHistoryApi.Operate.ReAbstract.get_request_body_api(),
244+
responses=result.get_default_response(),
242245
tags=[_("Application/Conversation Log")])
243246
@has_permissions(ViewPermission(
244247
[RoleConstants.APPLICATION_ACCESS_TOKEN],
@@ -418,6 +421,7 @@ def put(self, request: Request, application_id: str, chat_id: str, chat_record_i
418421
operation_id=_("Add to Knowledge Base"),
419422
manual_parameters=ImproveApi.get_request_params_api_post(),
420423
request_body=ImproveApi.get_request_body_api_post(),
424+
responses=result.get_default_response(),
421425
tags=[_("Application/Conversation Log/Add to Knowledge Base")]
422426
)
423427
@has_permissions(

apps/dataset/views/dataset.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ class GenerateRelated(APIView):
181181
@swagger_auto_schema(operation_summary=_('Generate related'), operation_id=_('Generate related'),
182182
manual_parameters=DataSetSerializers.Operate.get_request_params_api(),
183183
request_body=GenerateRelatedSerializer.get_request_body_api(),
184+
responses=result.get_default_response(),
184185
tags=[_('Knowledge Base')]
185186
)
186187
@log(menu='document', operate="Generate related documents",

apps/function_lib/swagger_api/function_lib_api.py

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,53 @@ def get_request_body_api():
195195
}
196196
)
197197

198+
@staticmethod
199+
def get_response_body_api():
200+
return openapi.Schema(
201+
type=openapi.TYPE_OBJECT,
202+
required=['id', 'name', 'code', 'input_field_list', 'permission_type'],
203+
properties={
204+
'id': openapi.Schema(type=openapi.TYPE_STRING, title="", description=_('ID')),
205+
206+
'name': openapi.Schema(type=openapi.TYPE_STRING, title=_('function name'),
207+
description=_('function name')),
208+
'desc': openapi.Schema(type=openapi.TYPE_STRING, title=_('function description'),
209+
description=_('function description')),
210+
'code': openapi.Schema(type=openapi.TYPE_STRING, title=_('function content'),
211+
description=_('function content')),
212+
'permission_type': openapi.Schema(type=openapi.TYPE_STRING, title=_('permission'),
213+
description=_('permission')),
214+
'is_active': openapi.Schema(type=openapi.TYPE_BOOLEAN, title=_('Is active'),
215+
description=_('Is active')),
216+
'input_field_list': openapi.Schema(type=openapi.TYPE_ARRAY,
217+
description=_('Input variable list'),
218+
items=openapi.Schema(type=openapi.TYPE_OBJECT,
219+
required=['name', 'is_required', 'source'],
220+
properties={
221+
'name': openapi.Schema(
222+
type=openapi.TYPE_STRING,
223+
title=_('variable name'),
224+
description=_('variable name')),
225+
'is_required': openapi.Schema(
226+
type=openapi.TYPE_BOOLEAN,
227+
title=_('required'),
228+
description=_('required')),
229+
'type': openapi.Schema(
230+
type=openapi.TYPE_STRING,
231+
title=_('type'),
232+
description=_(
233+
'Field type string|int|dict|array|float')
234+
),
235+
'source': openapi.Schema(
236+
type=openapi.TYPE_STRING,
237+
title=_('source'),
238+
description=_(
239+
'The source only supports custom|reference')),
240+
241+
}))
242+
}
243+
)
244+
198245
class Export(ApiMixin):
199246
@staticmethod
200247
def get_request_params_api():
@@ -214,4 +261,4 @@ def get_request_params_api():
214261
type=openapi.TYPE_FILE,
215262
required=True,
216263
description=_('Upload image files'))
217-
]
264+
]

0 commit comments

Comments
 (0)