Skip to content

Commit 847755b

Browse files
committed
feat: add response body schemas for various API endpoints
1 parent b57455d commit 847755b

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():
@@ -367,6 +428,56 @@ def get_request_body_api():
367428
}
368429
)
369430

431+
@staticmethod
432+
def get_response_body_api():
433+
return openapi.Schema(
434+
type=openapi.TYPE_OBJECT,
435+
required=['id', 'name', 'desc', 'model_id', 'dialogue_number', 'dataset_setting', 'model_setting',
436+
'problem_optimization', 'stt_model_enable', 'stt_model_enable', 'tts_type',
437+
'work_flow'],
438+
properties={
439+
'id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Primary key id"),
440+
description=_("Primary key id")),
441+
'name': openapi.Schema(type=openapi.TYPE_STRING, title=_("Application Name"),
442+
description=_("Application Name")),
443+
'desc': openapi.Schema(type=openapi.TYPE_STRING, title=_("Application Description"),
444+
description=_("Application Description")),
445+
'model_id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Model id"),
446+
description=_("Model id")),
447+
"dialogue_number": openapi.Schema(type=openapi.TYPE_NUMBER,
448+
title=_("Number of multi-round conversations"),
449+
description=_("Number of multi-round conversations")),
450+
'prologue': openapi.Schema(type=openapi.TYPE_STRING, title=_("Opening remarks"),
451+
description=_("Opening remarks")),
452+
'dataset_id_list': openapi.Schema(type=openapi.TYPE_ARRAY,
453+
items=openapi.Schema(type=openapi.TYPE_STRING),
454+
title=_("List of associated knowledge base IDs"),
455+
description=_("List of associated knowledge base IDs")),
456+
'dataset_setting': ApplicationApi.DatasetSetting.get_request_body_api(),
457+
'model_setting': ApplicationApi.ModelSetting.get_request_body_api(),
458+
'problem_optimization': openapi.Schema(type=openapi.TYPE_BOOLEAN, title=_("Problem Optimization"),
459+
description=_("Problem Optimization"), default=True),
460+
'type': openapi.Schema(type=openapi.TYPE_STRING, title=_("Application Type"),
461+
description=_("Application Type SIMPLE | WORK_FLOW")),
462+
'problem_optimization_prompt': openapi.Schema(type=openapi.TYPE_STRING,
463+
title=_('Question optimization tips'),
464+
description=_("Question optimization tips"),
465+
default=_(
466+
"() 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")),
467+
'tts_model_id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Text-to-speech model ID"),
468+
description=_("Text-to-speech model ID")),
469+
'stt_model_id': openapi.Schema(type=openapi.TYPE_STRING, title=_("Speech-to-text model id"),
470+
description=_("Speech-to-text model id")),
471+
'stt_model_enable': openapi.Schema(type=openapi.TYPE_STRING, title=_("Is speech-to-text enabled"),
472+
description=_("Is speech-to-text enabled")),
473+
'tts_model_enable': openapi.Schema(type=openapi.TYPE_STRING, title=_("Is text-to-speech enabled"),
474+
description=_("Is text-to-speech enabled")),
475+
'tts_type': openapi.Schema(type=openapi.TYPE_STRING, title=_("Text-to-speech type"),
476+
description=_("Text-to-speech type")),
477+
'work_flow': ApplicationApi.WorkFlow.get_request_body_api(),
478+
}
479+
)
480+
370481
class Query(ApiMixin):
371482
@staticmethod
372483
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
@@ -373,7 +373,8 @@ class Operate(APIView):
373373
operation_id=_("Modify application API_KEY"),
374374
tags=[_('Application/API_KEY')],
375375
manual_parameters=ApplicationApi.ApiKey.Operate.get_request_params_api(),
376-
request_body=ApplicationApi.ApiKey.Operate.get_request_body_api())
376+
request_body=ApplicationApi.ApiKey.Operate.get_request_body_api(),
377+
responses=result.get_api_response(ApplicationApi.ApiKey.Operate.get_response_body_api()))
377378
@has_permissions(ViewPermission(
378379
[RoleConstants.ADMIN, RoleConstants.USER],
379380
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
@@ -415,7 +416,8 @@ class AccessToken(APIView):
415416
operation_id=_("Modify Application AccessToken"),
416417
tags=[_('Application/Public Access')],
417418
manual_parameters=ApplicationApi.AccessToken.get_request_params_api(),
418-
request_body=ApplicationApi.AccessToken.get_request_body_api())
419+
request_body=ApplicationApi.AccessToken.get_request_body_api(),
420+
responses=result.get_api_response(ApplicationApi.AccessToken.get_response_body_api()))
419421
@has_permissions(ViewPermission(
420422
[RoleConstants.ADMIN, RoleConstants.USER],
421423
[lambda r, keywords: Permission(group=Group.APPLICATION, operate=Operate.MANAGE,
@@ -455,6 +457,7 @@ def options(self, request, *args, **kwargs):
455457
@swagger_auto_schema(operation_summary=_("Application Certification"),
456458
operation_id=_("Application Certification"),
457459
request_body=ApplicationApi.Authentication.get_request_body_api(),
460+
responses=result.get_api_response(ApplicationApi.Authentication.get_response_body_api()),
458461
tags=[_("Application/Certification")],
459462
security=[])
460463
def post(self, request: Request):
@@ -472,6 +475,7 @@ def post(self, request: Request):
472475
@swagger_auto_schema(operation_summary=_("Create an application"),
473476
operation_id=_("Create an application"),
474477
request_body=ApplicationApi.Create.get_request_body_api(),
478+
responses=result.get_api_response(ApplicationApi.Create.get_response_body_api()),
475479
tags=[_('Application')])
476480
@has_permissions(PermissionConstants.APPLICATION_CREATE, compare=CompareConstants.AND)
477481
@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, RoleConstants.ADMIN, RoleConstants.USER],
@@ -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)