### What problem does this PR solve? ### Type of change - [x] Refactoringtags/v0.13.0
| @@ -22,7 +22,7 @@ from api.db.services.llm_service import TenantLLMService | |||
| from flask_login import login_required, current_user | |||
| from api.db import FileType, LLMType, ParserType, FileSource | |||
| from api.db.db_models import APIToken, API4Conversation, Task, File | |||
| from api.db.db_models import APIToken, Task, File | |||
| from api.db.services import duplicate_name | |||
| from api.db.services.api_service import APITokenService, API4ConversationService | |||
| from api.db.services.dialog_service import DialogService, chat | |||
| @@ -34,23 +34,18 @@ from api.db.services.task_service import queue_tasks, TaskService | |||
| from api.db.services.user_service import UserTenantService | |||
| from api.settings import RetCode, retrievaler | |||
| from api.utils import get_uuid, current_timestamp, datetime_format | |||
| from api.utils.api_utils import server_error_response, get_data_error_result, get_json_result, validate_request | |||
| from itsdangerous import URLSafeTimedSerializer | |||
| from api.utils.api_utils import server_error_response, get_data_error_result, get_json_result, validate_request, \ | |||
| generate_confirmation_token | |||
| from api.utils.file_utils import filename_type, thumbnail | |||
| from rag.nlp import keyword_extraction | |||
| from rag.utils.storage_factory import STORAGE_IMPL | |||
| from api.db.services.canvas_service import CanvasTemplateService, UserCanvasService | |||
| from api.db.services.canvas_service import UserCanvasService | |||
| from agent.canvas import Canvas | |||
| from functools import partial | |||
| def generate_confirmation_token(tenent_id): | |||
| serializer = URLSafeTimedSerializer(tenent_id) | |||
| return "ragflow-" + serializer.dumps(get_uuid(), salt=tenent_id)[2:34] | |||
| @manager.route('/new_token', methods=['POST']) | |||
| @login_required | |||
| def new_token(): | |||
| @@ -17,16 +17,14 @@ import json | |||
| from datetime import datetime | |||
| from flask_login import login_required, current_user | |||
| from api.apps.api_app import generate_confirmation_token | |||
| from api.db.services.api_service import APITokenService | |||
| from api.db.services.knowledgebase_service import KnowledgebaseService | |||
| from api.db.services.user_service import UserTenantService | |||
| from api.settings import DATABASE_TYPE | |||
| from api.utils import current_timestamp, datetime_format | |||
| from api.utils.api_utils import get_json_result, request, get_data_error_result, server_error_response | |||
| from api.utils.api_utils import get_json_result, get_data_error_result, server_error_response, \ | |||
| generate_confirmation_token | |||
| from api.versions import get_rag_version | |||
| from rag.settings import SVR_QUEUE_NAME | |||
| from rag.utils.es_conn import ELASTICSEARCH | |||
| from rag.utils.storage_factory import STORAGE_IMPL, STORAGE_IMPL_TYPE | |||
| from timeit import default_timer as timer | |||
| @@ -29,6 +29,7 @@ from flask import ( | |||
| Response, jsonify, send_file, make_response, | |||
| request as flask_request, | |||
| ) | |||
| from itsdangerous import URLSafeTimedSerializer | |||
| from werkzeug.http import HTTP_STATUS_CODES | |||
| from api.db.db_models import APIToken | |||
| @@ -37,7 +38,7 @@ from api.settings import ( | |||
| stat_logger, CLIENT_AUTHENTICATION, HTTP_APP_KEY, SECRET_KEY | |||
| ) | |||
| from api.settings import RetCode | |||
| from api.utils import CustomJSONEncoder | |||
| from api.utils import CustomJSONEncoder, get_uuid | |||
| from api.utils import json_dumps | |||
| requests.models.complexjson.dumps = functools.partial( | |||
| @@ -52,7 +53,7 @@ def request(**kwargs): | |||
| k.replace( | |||
| '_', | |||
| '-').upper(): v for k, | |||
| v in kwargs.get( | |||
| v in kwargs.get( | |||
| 'headers', | |||
| {}).items()} | |||
| prepped = requests.Request(**kwargs).prepare() | |||
| @@ -269,6 +270,7 @@ def token_required(func): | |||
| return decorated_function | |||
| def get_result(retcode=RetCode.SUCCESS, retmsg='error', data=None): | |||
| if retcode == 0: | |||
| if data is not None: | |||
| @@ -276,10 +278,11 @@ def get_result(retcode=RetCode.SUCCESS, retmsg='error', data=None): | |||
| else: | |||
| response = {"code": retcode} | |||
| else: | |||
| response = {"code": retcode, "message": retmsg} | |||
| response = {"code": retcode, "message": retmsg} | |||
| return jsonify(response) | |||
| def get_error_data_result(retmsg='Sorry! Data missing!',retcode=RetCode.DATA_ERROR, | |||
| def get_error_data_result(retmsg='Sorry! Data missing!', retcode=RetCode.DATA_ERROR, | |||
| ): | |||
| import re | |||
| result_dict = { | |||
| @@ -295,4 +298,9 @@ def get_error_data_result(retmsg='Sorry! Data missing!',retcode=RetCode.DATA_ERR | |||
| continue | |||
| else: | |||
| response[key] = value | |||
| return jsonify(response) | |||
| return jsonify(response) | |||
| def generate_confirmation_token(tenent_id): | |||
| serializer = URLSafeTimedSerializer(tenent_id) | |||
| return "ragflow-" + serializer.dumps(get_uuid(), salt=tenent_id)[2:34] | |||