Kevin Hu commited on
Commit
af9653e
·
1 Parent(s): 59250e8

refactor api util (#2849)

Browse files

### What problem does this PR solve?


### Type of change

- [x] Refactoring

api/apps/api_app.py CHANGED
@@ -22,7 +22,7 @@ from api.db.services.llm_service import TenantLLMService
22
  from flask_login import login_required, current_user
23
 
24
  from api.db import FileType, LLMType, ParserType, FileSource
25
- from api.db.db_models import APIToken, API4Conversation, Task, File
26
  from api.db.services import duplicate_name
27
  from api.db.services.api_service import APITokenService, API4ConversationService
28
  from api.db.services.dialog_service import DialogService, chat
@@ -34,23 +34,18 @@ from api.db.services.task_service import queue_tasks, TaskService
34
  from api.db.services.user_service import UserTenantService
35
  from api.settings import RetCode, retrievaler
36
  from api.utils import get_uuid, current_timestamp, datetime_format
37
- from api.utils.api_utils import server_error_response, get_data_error_result, get_json_result, validate_request
38
- from itsdangerous import URLSafeTimedSerializer
39
 
40
  from api.utils.file_utils import filename_type, thumbnail
41
  from rag.nlp import keyword_extraction
42
  from rag.utils.storage_factory import STORAGE_IMPL
43
 
44
- from api.db.services.canvas_service import CanvasTemplateService, UserCanvasService
45
  from agent.canvas import Canvas
46
  from functools import partial
47
 
48
 
49
- def generate_confirmation_token(tenent_id):
50
- serializer = URLSafeTimedSerializer(tenent_id)
51
- return "ragflow-" + serializer.dumps(get_uuid(), salt=tenent_id)[2:34]
52
-
53
-
54
  @manager.route('/new_token', methods=['POST'])
55
  @login_required
56
  def new_token():
 
22
  from flask_login import login_required, current_user
23
 
24
  from api.db import FileType, LLMType, ParserType, FileSource
25
+ from api.db.db_models import APIToken, Task, File
26
  from api.db.services import duplicate_name
27
  from api.db.services.api_service import APITokenService, API4ConversationService
28
  from api.db.services.dialog_service import DialogService, chat
 
34
  from api.db.services.user_service import UserTenantService
35
  from api.settings import RetCode, retrievaler
36
  from api.utils import get_uuid, current_timestamp, datetime_format
37
+ from api.utils.api_utils import server_error_response, get_data_error_result, get_json_result, validate_request, \
38
+ generate_confirmation_token
39
 
40
  from api.utils.file_utils import filename_type, thumbnail
41
  from rag.nlp import keyword_extraction
42
  from rag.utils.storage_factory import STORAGE_IMPL
43
 
44
+ from api.db.services.canvas_service import UserCanvasService
45
  from agent.canvas import Canvas
46
  from functools import partial
47
 
48
 
 
 
 
 
 
49
  @manager.route('/new_token', methods=['POST'])
50
  @login_required
51
  def new_token():
api/apps/system_app.py CHANGED
@@ -17,16 +17,14 @@ import json
17
  from datetime import datetime
18
 
19
  from flask_login import login_required, current_user
20
-
21
- from api.apps.api_app import generate_confirmation_token
22
  from api.db.services.api_service import APITokenService
23
  from api.db.services.knowledgebase_service import KnowledgebaseService
24
  from api.db.services.user_service import UserTenantService
25
  from api.settings import DATABASE_TYPE
26
  from api.utils import current_timestamp, datetime_format
27
- from api.utils.api_utils import get_json_result, request, get_data_error_result, server_error_response
 
28
  from api.versions import get_rag_version
29
- from rag.settings import SVR_QUEUE_NAME
30
  from rag.utils.es_conn import ELASTICSEARCH
31
  from rag.utils.storage_factory import STORAGE_IMPL, STORAGE_IMPL_TYPE
32
  from timeit import default_timer as timer
 
17
  from datetime import datetime
18
 
19
  from flask_login import login_required, current_user
 
 
20
  from api.db.services.api_service import APITokenService
21
  from api.db.services.knowledgebase_service import KnowledgebaseService
22
  from api.db.services.user_service import UserTenantService
23
  from api.settings import DATABASE_TYPE
24
  from api.utils import current_timestamp, datetime_format
25
+ from api.utils.api_utils import get_json_result, get_data_error_result, server_error_response, \
26
+ generate_confirmation_token
27
  from api.versions import get_rag_version
 
28
  from rag.utils.es_conn import ELASTICSEARCH
29
  from rag.utils.storage_factory import STORAGE_IMPL, STORAGE_IMPL_TYPE
30
  from timeit import default_timer as timer
api/utils/api_utils.py CHANGED
@@ -29,6 +29,7 @@ from flask import (
29
  Response, jsonify, send_file, make_response,
30
  request as flask_request,
31
  )
 
32
  from werkzeug.http import HTTP_STATUS_CODES
33
 
34
  from api.db.db_models import APIToken
@@ -37,7 +38,7 @@ from api.settings import (
37
  stat_logger, CLIENT_AUTHENTICATION, HTTP_APP_KEY, SECRET_KEY
38
  )
39
  from api.settings import RetCode
40
- from api.utils import CustomJSONEncoder
41
  from api.utils import json_dumps
42
 
43
  requests.models.complexjson.dumps = functools.partial(
@@ -52,7 +53,7 @@ def request(**kwargs):
52
  k.replace(
53
  '_',
54
  '-').upper(): v for k,
55
- v in kwargs.get(
56
  'headers',
57
  {}).items()}
58
  prepped = requests.Request(**kwargs).prepare()
@@ -269,6 +270,7 @@ def token_required(func):
269
 
270
  return decorated_function
271
 
 
272
  def get_result(retcode=RetCode.SUCCESS, retmsg='error', data=None):
273
  if retcode == 0:
274
  if data is not None:
@@ -276,10 +278,11 @@ def get_result(retcode=RetCode.SUCCESS, retmsg='error', data=None):
276
  else:
277
  response = {"code": retcode}
278
  else:
279
- response = {"code": retcode, "message": retmsg}
280
  return jsonify(response)
281
 
282
- def get_error_data_result(retmsg='Sorry! Data missing!',retcode=RetCode.DATA_ERROR,
 
283
  ):
284
  import re
285
  result_dict = {
@@ -295,4 +298,9 @@ def get_error_data_result(retmsg='Sorry! Data missing!',retcode=RetCode.DATA_ERR
295
  continue
296
  else:
297
  response[key] = value
298
- return jsonify(response)
 
 
 
 
 
 
29
  Response, jsonify, send_file, make_response,
30
  request as flask_request,
31
  )
32
+ from itsdangerous import URLSafeTimedSerializer
33
  from werkzeug.http import HTTP_STATUS_CODES
34
 
35
  from api.db.db_models import APIToken
 
38
  stat_logger, CLIENT_AUTHENTICATION, HTTP_APP_KEY, SECRET_KEY
39
  )
40
  from api.settings import RetCode
41
+ from api.utils import CustomJSONEncoder, get_uuid
42
  from api.utils import json_dumps
43
 
44
  requests.models.complexjson.dumps = functools.partial(
 
53
  k.replace(
54
  '_',
55
  '-').upper(): v for k,
56
+ v in kwargs.get(
57
  'headers',
58
  {}).items()}
59
  prepped = requests.Request(**kwargs).prepare()
 
270
 
271
  return decorated_function
272
 
273
+
274
  def get_result(retcode=RetCode.SUCCESS, retmsg='error', data=None):
275
  if retcode == 0:
276
  if data is not None:
 
278
  else:
279
  response = {"code": retcode}
280
  else:
281
+ response = {"code": retcode, "message": retmsg}
282
  return jsonify(response)
283
 
284
+
285
+ def get_error_data_result(retmsg='Sorry! Data missing!', retcode=RetCode.DATA_ERROR,
286
  ):
287
  import re
288
  result_dict = {
 
298
  continue
299
  else:
300
  response[key] = value
301
+ return jsonify(response)
302
+
303
+
304
+ def generate_confirmation_token(tenent_id):
305
+ serializer = URLSafeTimedSerializer(tenent_id)
306
+ return "ragflow-" + serializer.dumps(get_uuid(), salt=tenent_id)[2:34]