diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9eb2e3071..2613255c1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -49,6 +49,12 @@ jobs: fetch-depth: 0 fetch-tags: true + # https://github.com/astral-sh/ruff-action + - name: Static check with Ruff + uses: astral-sh/ruff-action@v2 + with: + version: ">=0.8.2" + - name: Build ragflow:dev-slim run: | RUNNER_WORKSPACE_PREFIX=${RUNNER_WORKSPACE_PREFIX:-$HOME} diff --git a/api/apps/api_app.py b/api/apps/api_app.py index 3f9793b10..b38c62f88 100644 --- a/api/apps/api_app.py +++ b/api/apps/api_app.py @@ -45,7 +45,7 @@ from agent.canvas import Canvas from functools import partial -@manager.route('/new_token', methods=['POST']) +@manager.route('/new_token', methods=['POST']) # noqa: F821 @login_required def new_token(): req = request.json @@ -75,7 +75,7 @@ def new_token(): return server_error_response(e) -@manager.route('/token_list', methods=['GET']) +@manager.route('/token_list', methods=['GET']) # noqa: F821 @login_required def token_list(): try: @@ -90,7 +90,7 @@ def token_list(): return server_error_response(e) -@manager.route('/rm', methods=['POST']) +@manager.route('/rm', methods=['POST']) # noqa: F821 @validate_request("tokens", "tenant_id") @login_required def rm(): @@ -104,7 +104,7 @@ def rm(): return server_error_response(e) -@manager.route('/stats', methods=['GET']) +@manager.route('/stats', methods=['GET']) # noqa: F821 @login_required def stats(): try: @@ -135,7 +135,7 @@ def stats(): return server_error_response(e) -@manager.route('/new_conversation', methods=['GET']) +@manager.route('/new_conversation', methods=['GET']) # noqa: F821 def set_conversation(): token = request.headers.get('Authorization').split()[1] objs = APIToken.query(token=token) @@ -175,7 +175,7 @@ def set_conversation(): return server_error_response(e) -@manager.route('/completion', methods=['POST']) +@manager.route('/completion', methods=['POST']) # noqa: F821 @validate_request("conversation_id", "messages") def completion(): token = request.headers.get('Authorization').split()[1] @@ -341,7 +341,7 @@ def completion(): return server_error_response(e) -@manager.route('/conversation/', methods=['GET']) +@manager.route('/conversation/', methods=['GET']) # noqa: F821 # @login_required def get(conversation_id): token = request.headers.get('Authorization').split()[1] @@ -372,7 +372,7 @@ def get(conversation_id): return server_error_response(e) -@manager.route('/document/upload', methods=['POST']) +@manager.route('/document/upload', methods=['POST']) # noqa: F821 @validate_request("kb_name") def upload(): token = request.headers.get('Authorization').split()[1] @@ -484,7 +484,7 @@ def upload(): return get_json_result(data=doc_result.to_json()) -@manager.route('/document/upload_and_parse', methods=['POST']) +@manager.route('/document/upload_and_parse', methods=['POST']) # noqa: F821 @validate_request("conversation_id") def upload_parse(): token = request.headers.get('Authorization').split()[1] @@ -507,7 +507,7 @@ def upload_parse(): return get_json_result(data=doc_ids) -@manager.route('/list_chunks', methods=['POST']) +@manager.route('/list_chunks', methods=['POST']) # noqa: F821 # @login_required def list_chunks(): token = request.headers.get('Authorization').split()[1] @@ -547,7 +547,7 @@ def list_chunks(): return get_json_result(data=res) -@manager.route('/list_kb_docs', methods=['POST']) +@manager.route('/list_kb_docs', methods=['POST']) # noqa: F821 # @login_required def list_kb_docs(): token = request.headers.get('Authorization').split()[1] @@ -587,7 +587,7 @@ def list_kb_docs(): return server_error_response(e) -@manager.route('/document/infos', methods=['POST']) +@manager.route('/document/infos', methods=['POST']) # noqa: F821 @validate_request("doc_ids") def docinfos(): token = request.headers.get('Authorization').split()[1] @@ -601,7 +601,7 @@ def docinfos(): return get_json_result(data=list(docs.dicts())) -@manager.route('/document', methods=['DELETE']) +@manager.route('/document', methods=['DELETE']) # noqa: F821 # @login_required def document_rm(): token = request.headers.get('Authorization').split()[1] @@ -660,7 +660,7 @@ def document_rm(): return get_json_result(data=True) -@manager.route('/completion_aibotk', methods=['POST']) +@manager.route('/completion_aibotk', methods=['POST']) # noqa: F821 @validate_request("Authorization", "conversation_id", "word") def completion_faq(): import base64 @@ -802,7 +802,7 @@ def completion_faq(): return server_error_response(e) -@manager.route('/retrieval', methods=['POST']) +@manager.route('/retrieval', methods=['POST']) # noqa: F821 @validate_request("kb_id", "question") def retrieval(): token = request.headers.get('Authorization').split()[1] diff --git a/api/apps/canvas_app.py b/api/apps/canvas_app.py index 0d307ed49..679947476 100644 --- a/api/apps/canvas_app.py +++ b/api/apps/canvas_app.py @@ -25,13 +25,13 @@ from agent.canvas import Canvas from peewee import MySQLDatabase, PostgresqlDatabase -@manager.route('/templates', methods=['GET']) +@manager.route('/templates', methods=['GET']) # noqa: F821 @login_required def templates(): return get_json_result(data=[c.to_dict() for c in CanvasTemplateService.get_all()]) -@manager.route('/list', methods=['GET']) +@manager.route('/list', methods=['GET']) # noqa: F821 @login_required def canvas_list(): return get_json_result(data=sorted([c.to_dict() for c in \ @@ -39,7 +39,7 @@ def canvas_list(): ) -@manager.route('/rm', methods=['POST']) +@manager.route('/rm', methods=['POST']) # noqa: F821 @validate_request("canvas_ids") @login_required def rm(): @@ -52,7 +52,7 @@ def rm(): return get_json_result(data=True) -@manager.route('/set', methods=['POST']) +@manager.route('/set', methods=['POST']) # noqa: F821 @validate_request("dsl", "title") @login_required def save(): @@ -77,7 +77,7 @@ def save(): return get_json_result(data=req) -@manager.route('/get/', methods=['GET']) +@manager.route('/get/', methods=['GET']) # noqa: F821 @login_required def get(canvas_id): e, c = UserCanvasService.get_by_id(canvas_id) @@ -86,7 +86,7 @@ def get(canvas_id): return get_json_result(data=c.to_dict()) -@manager.route('/completion', methods=['POST']) +@manager.route('/completion', methods=['POST']) # noqa: F821 @validate_request("id") @login_required def run(): @@ -163,7 +163,7 @@ def run(): return get_json_result(data={"answer": final_ans["content"], "reference": final_ans.get("reference", [])}) -@manager.route('/reset', methods=['POST']) +@manager.route('/reset', methods=['POST']) # noqa: F821 @validate_request("id") @login_required def reset(): @@ -186,7 +186,7 @@ def reset(): return server_error_response(e) -@manager.route('/test_db_connect', methods=['POST']) +@manager.route('/test_db_connect', methods=['POST']) # noqa: F821 @validate_request("db_type", "database", "username", "host", "port", "password") @login_required def test_db_connect(): diff --git a/api/apps/chunk_app.py b/api/apps/chunk_app.py index 7786684db..d60483ad4 100644 --- a/api/apps/chunk_app.py +++ b/api/apps/chunk_app.py @@ -35,7 +35,7 @@ import hashlib import re -@manager.route('/list', methods=['POST']) +@manager.route('/list', methods=['POST']) # noqa: F821 @login_required @validate_request("doc_id") def list_chunk(): @@ -84,7 +84,7 @@ def list_chunk(): return server_error_response(e) -@manager.route('/get', methods=['GET']) +@manager.route('/get', methods=['GET']) # noqa: F821 @login_required def get(): chunk_id = request.args["chunk_id"] @@ -113,7 +113,7 @@ def get(): return server_error_response(e) -@manager.route('/set', methods=['POST']) +@manager.route('/set', methods=['POST']) # noqa: F821 @login_required @validate_request("doc_id", "chunk_id", "content_with_weight", "important_kwd", "question_kwd") @@ -164,7 +164,7 @@ def set(): return server_error_response(e) -@manager.route('/switch', methods=['POST']) +@manager.route('/switch', methods=['POST']) # noqa: F821 @login_required @validate_request("chunk_ids", "available_int", "doc_id") def switch(): @@ -184,7 +184,7 @@ def switch(): return server_error_response(e) -@manager.route('/rm', methods=['POST']) +@manager.route('/rm', methods=['POST']) # noqa: F821 @login_required @validate_request("chunk_ids", "doc_id") def rm(): @@ -203,7 +203,7 @@ def rm(): return server_error_response(e) -@manager.route('/create', methods=['POST']) +@manager.route('/create', methods=['POST']) # noqa: F821 @login_required @validate_request("doc_id", "content_with_weight") def create(): @@ -255,7 +255,7 @@ def create(): return server_error_response(e) -@manager.route('/retrieval_test', methods=['POST']) +@manager.route('/retrieval_test', methods=['POST']) # noqa: F821 @login_required @validate_request("kb_id", "question") def retrieval_test(): @@ -314,7 +314,7 @@ def retrieval_test(): return server_error_response(e) -@manager.route('/knowledge_graph', methods=['GET']) +@manager.route('/knowledge_graph', methods=['GET']) # noqa: F821 @login_required def knowledge_graph(): doc_id = request.args["doc_id"] diff --git a/api/apps/conversation_app.py b/api/apps/conversation_app.py index 91f4bc852..cce87c337 100644 --- a/api/apps/conversation_app.py +++ b/api/apps/conversation_app.py @@ -31,7 +31,7 @@ from api.utils.api_utils import server_error_response, get_data_error_result, va from graphrag.mind_map_extractor import MindMapExtractor -@manager.route('/set', methods=['POST']) +@manager.route('/set', methods=['POST']) # noqa: F821 @login_required def set_conversation(): req = request.json @@ -72,7 +72,7 @@ def set_conversation(): return server_error_response(e) -@manager.route('/get', methods=['GET']) +@manager.route('/get', methods=['GET']) # noqa: F821 @login_required def get(): conv_id = request.args["conversation_id"] @@ -94,7 +94,7 @@ def get(): return server_error_response(e) -@manager.route('/rm', methods=['POST']) +@manager.route('/rm', methods=['POST']) # noqa: F821 @login_required def rm(): conv_ids = request.json["conversation_ids"] @@ -117,7 +117,7 @@ def rm(): return server_error_response(e) -@manager.route('/list', methods=['GET']) +@manager.route('/list', methods=['GET']) # noqa: F821 @login_required def list_convsersation(): dialog_id = request.args["dialog_id"] @@ -136,7 +136,7 @@ def list_convsersation(): return server_error_response(e) -@manager.route('/completion', methods=['POST']) +@manager.route('/completion', methods=['POST']) # noqa: F821 @login_required @validate_request("conversation_id", "messages") def completion(): @@ -209,7 +209,7 @@ def completion(): return server_error_response(e) -@manager.route('/tts', methods=['POST']) +@manager.route('/tts', methods=['POST']) # noqa: F821 @login_required def tts(): req = request.json @@ -243,7 +243,7 @@ def tts(): return resp -@manager.route('/delete_msg', methods=['POST']) +@manager.route('/delete_msg', methods=['POST']) # noqa: F821 @login_required @validate_request("conversation_id", "message_id") def delete_msg(): @@ -266,7 +266,7 @@ def delete_msg(): return get_json_result(data=conv) -@manager.route('/thumbup', methods=['POST']) +@manager.route('/thumbup', methods=['POST']) # noqa: F821 @login_required @validate_request("conversation_id", "message_id") def thumbup(): @@ -293,7 +293,7 @@ def thumbup(): return get_json_result(data=conv) -@manager.route('/ask', methods=['POST']) +@manager.route('/ask', methods=['POST']) # noqa: F821 @login_required @validate_request("question", "kb_ids") def ask_about(): @@ -319,7 +319,7 @@ def ask_about(): return resp -@manager.route('/mindmap', methods=['POST']) +@manager.route('/mindmap', methods=['POST']) # noqa: F821 @login_required @validate_request("question", "kb_ids") def mindmap(): @@ -341,7 +341,7 @@ def mindmap(): return get_json_result(data=mind_map) -@manager.route('/related_questions', methods=['POST']) +@manager.route('/related_questions', methods=['POST']) # noqa: F821 @login_required @validate_request("question") def related_questions(): diff --git a/api/apps/dialog_app.py b/api/apps/dialog_app.py index 0accb04a6..4b1be30a6 100644 --- a/api/apps/dialog_app.py +++ b/api/apps/dialog_app.py @@ -26,7 +26,7 @@ from api.utils import get_uuid from api.utils.api_utils import get_json_result -@manager.route('/set', methods=['POST']) +@manager.route('/set', methods=['POST']) # noqa: F821 @login_required def set_dialog(): req = request.json @@ -125,7 +125,7 @@ def set_dialog(): return server_error_response(e) -@manager.route('/get', methods=['GET']) +@manager.route('/get', methods=['GET']) # noqa: F821 @login_required def get(): dialog_id = request.args["dialog_id"] @@ -151,7 +151,7 @@ def get_kb_names(kb_ids): return ids, nms -@manager.route('/list', methods=['GET']) +@manager.route('/list', methods=['GET']) # noqa: F821 @login_required def list_dialogs(): try: @@ -168,7 +168,7 @@ def list_dialogs(): return server_error_response(e) -@manager.route('/rm', methods=['POST']) +@manager.route('/rm', methods=['POST']) # noqa: F821 @login_required @validate_request("dialog_ids") def rm(): diff --git a/api/apps/document_app.py b/api/apps/document_app.py index deb2fbead..cb41921c2 100644 --- a/api/apps/document_app.py +++ b/api/apps/document_app.py @@ -42,7 +42,7 @@ from api.utils.web_utils import html2pdf, is_valid_url from api.constants import IMG_BASE64_PREFIX -@manager.route('/upload', methods=['POST']) +@manager.route('/upload', methods=['POST']) # noqa: F821 @login_required @validate_request("kb_id") def upload(): @@ -71,7 +71,7 @@ def upload(): return get_json_result(data=True) -@manager.route('/web_crawl', methods=['POST']) +@manager.route('/web_crawl', methods=['POST']) # noqa: F821 @login_required @validate_request("kb_id", "name", "url") def web_crawl(): @@ -138,7 +138,7 @@ def web_crawl(): return get_json_result(data=True) -@manager.route('/create', methods=['POST']) +@manager.route('/create', methods=['POST']) # noqa: F821 @login_required @validate_request("name", "kb_id") def create(): @@ -174,7 +174,7 @@ def create(): return server_error_response(e) -@manager.route('/list', methods=['GET']) +@manager.route('/list', methods=['GET']) # noqa: F821 @login_required def list_docs(): kb_id = request.args.get("kb_id") @@ -209,7 +209,7 @@ def list_docs(): return server_error_response(e) -@manager.route('/infos', methods=['POST']) +@manager.route('/infos', methods=['POST']) # noqa: F821 @login_required def docinfos(): req = request.json @@ -225,7 +225,7 @@ def docinfos(): return get_json_result(data=list(docs.dicts())) -@manager.route('/thumbnails', methods=['GET']) +@manager.route('/thumbnails', methods=['GET']) # noqa: F821 # @login_required def thumbnails(): doc_ids = request.args.get("doc_ids").split(",") @@ -245,7 +245,7 @@ def thumbnails(): return server_error_response(e) -@manager.route('/change_status', methods=['POST']) +@manager.route('/change_status', methods=['POST']) # noqa: F821 @login_required @validate_request("doc_id", "status") def change_status(): @@ -284,7 +284,7 @@ def change_status(): return server_error_response(e) -@manager.route('/rm', methods=['POST']) +@manager.route('/rm', methods=['POST']) # noqa: F821 @login_required @validate_request("doc_id") def rm(): @@ -334,7 +334,7 @@ def rm(): return get_json_result(data=True) -@manager.route('/run', methods=['POST']) +@manager.route('/run', methods=['POST']) # noqa: F821 @login_required @validate_request("doc_ids", "run") def run(): @@ -377,7 +377,7 @@ def run(): return server_error_response(e) -@manager.route('/rename', methods=['POST']) +@manager.route('/rename', methods=['POST']) # noqa: F821 @login_required @validate_request("doc_id", "name") def rename(): @@ -418,7 +418,7 @@ def rename(): return server_error_response(e) -@manager.route('/get/', methods=['GET']) +@manager.route('/get/', methods=['GET']) # noqa: F821 # @login_required def get(doc_id): try: @@ -443,7 +443,7 @@ def get(doc_id): return server_error_response(e) -@manager.route('/change_parser', methods=['POST']) +@manager.route('/change_parser', methods=['POST']) # noqa: F821 @login_required @validate_request("doc_id", "parser_id") def change_parser(): @@ -494,7 +494,7 @@ def change_parser(): return server_error_response(e) -@manager.route('/image/', methods=['GET']) +@manager.route('/image/', methods=['GET']) # noqa: F821 # @login_required def get_image(image_id): try: @@ -506,7 +506,7 @@ def get_image(image_id): return server_error_response(e) -@manager.route('/upload_and_parse', methods=['POST']) +@manager.route('/upload_and_parse', methods=['POST']) # noqa: F821 @login_required @validate_request("conversation_id") def upload_and_parse(): @@ -525,7 +525,7 @@ def upload_and_parse(): return get_json_result(data=doc_ids) -@manager.route('/parse', methods=['POST']) +@manager.route('/parse', methods=['POST']) # noqa: F821 @login_required def parse(): url = request.json.get("url") if request.json else "" diff --git a/api/apps/file2document_app.py b/api/apps/file2document_app.py index 1eb797e89..48a607c0b 100644 --- a/api/apps/file2document_app.py +++ b/api/apps/file2document_app.py @@ -28,7 +28,7 @@ from api import settings from api.utils.api_utils import get_json_result -@manager.route('/convert', methods=['POST']) +@manager.route('/convert', methods=['POST']) # noqa: F821 @login_required @validate_request("file_ids", "kb_ids") def convert(): @@ -92,7 +92,7 @@ def convert(): return server_error_response(e) -@manager.route('/rm', methods=['POST']) +@manager.route('/rm', methods=['POST']) # noqa: F821 @login_required @validate_request("file_ids") def rm(): diff --git a/api/apps/file_app.py b/api/apps/file_app.py index 6542c54e9..0dc59e979 100644 --- a/api/apps/file_app.py +++ b/api/apps/file_app.py @@ -34,7 +34,7 @@ from api.utils.file_utils import filename_type from rag.utils.storage_factory import STORAGE_IMPL -@manager.route('/upload', methods=['POST']) +@manager.route('/upload', methods=['POST']) # noqa: F821 @login_required # @validate_request("parent_id") def upload(): @@ -120,7 +120,7 @@ def upload(): return server_error_response(e) -@manager.route('/create', methods=['POST']) +@manager.route('/create', methods=['POST']) # noqa: F821 @login_required @validate_request("name") def create(): @@ -160,7 +160,7 @@ def create(): return server_error_response(e) -@manager.route('/list', methods=['GET']) +@manager.route('/list', methods=['GET']) # noqa: F821 @login_required def list_files(): pf_id = request.args.get("parent_id") @@ -192,7 +192,7 @@ def list_files(): return server_error_response(e) -@manager.route('/root_folder', methods=['GET']) +@manager.route('/root_folder', methods=['GET']) # noqa: F821 @login_required def get_root_folder(): try: @@ -202,7 +202,7 @@ def get_root_folder(): return server_error_response(e) -@manager.route('/parent_folder', methods=['GET']) +@manager.route('/parent_folder', methods=['GET']) # noqa: F821 @login_required def get_parent_folder(): file_id = request.args.get("file_id") @@ -217,7 +217,7 @@ def get_parent_folder(): return server_error_response(e) -@manager.route('/all_parent_folder', methods=['GET']) +@manager.route('/all_parent_folder', methods=['GET']) # noqa: F821 @login_required def get_all_parent_folders(): file_id = request.args.get("file_id") @@ -235,7 +235,7 @@ def get_all_parent_folders(): return server_error_response(e) -@manager.route('/rm', methods=['POST']) +@manager.route('/rm', methods=['POST']) # noqa: F821 @login_required @validate_request("file_ids") def rm(): @@ -284,7 +284,7 @@ def rm(): return server_error_response(e) -@manager.route('/rename', methods=['POST']) +@manager.route('/rename', methods=['POST']) # noqa: F821 @login_required @validate_request("file_id", "name") def rename(): @@ -322,7 +322,7 @@ def rename(): return server_error_response(e) -@manager.route('/get/', methods=['GET']) +@manager.route('/get/', methods=['GET']) # noqa: F821 @login_required def get(file_id): try: @@ -350,7 +350,7 @@ def get(file_id): return server_error_response(e) -@manager.route('/mv', methods=['POST']) +@manager.route('/mv', methods=['POST']) # noqa: F821 @login_required @validate_request("src_file_ids", "dest_file_id") def move(): diff --git a/api/apps/kb_app.py b/api/apps/kb_app.py index a8c562bbe..249ac2d73 100644 --- a/api/apps/kb_app.py +++ b/api/apps/kb_app.py @@ -32,7 +32,7 @@ from rag.nlp import search from api.constants import DATASET_NAME_LIMIT -@manager.route('/create', methods=['post']) +@manager.route('/create', methods=['post']) # noqa: F821 @login_required @validate_request("name") def create(): @@ -67,7 +67,7 @@ def create(): return server_error_response(e) -@manager.route('/update', methods=['post']) +@manager.route('/update', methods=['post']) # noqa: F821 @login_required @validate_request("kb_id", "name", "description", "permission", "parser_id") @not_allowed_parameters("id", "tenant_id", "created_by", "create_time", "update_time", "create_date", "update_date", "created_by") @@ -120,7 +120,7 @@ def update(): return server_error_response(e) -@manager.route('/detail', methods=['GET']) +@manager.route('/detail', methods=['GET']) # noqa: F821 @login_required def detail(): kb_id = request.args["kb_id"] @@ -143,7 +143,7 @@ def detail(): return server_error_response(e) -@manager.route('/list', methods=['GET']) +@manager.route('/list', methods=['GET']) # noqa: F821 @login_required def list_kbs(): keywords = request.args.get("keywords", "") @@ -160,7 +160,7 @@ def list_kbs(): return server_error_response(e) -@manager.route('/rm', methods=['post']) +@manager.route('/rm', methods=['post']) # noqa: F821 @login_required @validate_request("kb_id") def rm(): diff --git a/api/apps/llm_app.py b/api/apps/llm_app.py index 5b8ad87d5..7e59493cb 100644 --- a/api/apps/llm_app.py +++ b/api/apps/llm_app.py @@ -28,7 +28,7 @@ from rag.llm import EmbeddingModel, ChatModel, RerankModel, CvModel, TTSModel import requests -@manager.route('/factories', methods=['GET']) +@manager.route('/factories', methods=['GET']) # noqa: F821 @login_required def factories(): try: @@ -50,7 +50,7 @@ def factories(): return server_error_response(e) -@manager.route('/set_api_key', methods=['POST']) +@manager.route('/set_api_key', methods=['POST']) # noqa: F821 @login_required @validate_request("llm_factory", "api_key") def set_api_key(): @@ -129,7 +129,7 @@ def set_api_key(): return get_json_result(data=True) -@manager.route('/add_llm', methods=['POST']) +@manager.route('/add_llm', methods=['POST']) # noqa: F821 @login_required @validate_request("llm_factory") def add_llm(): @@ -292,7 +292,7 @@ def add_llm(): return get_json_result(data=True) -@manager.route('/delete_llm', methods=['POST']) +@manager.route('/delete_llm', methods=['POST']) # noqa: F821 @login_required @validate_request("llm_factory", "llm_name") def delete_llm(): @@ -303,7 +303,7 @@ def delete_llm(): return get_json_result(data=True) -@manager.route('/delete_factory', methods=['POST']) +@manager.route('/delete_factory', methods=['POST']) # noqa: F821 @login_required @validate_request("llm_factory") def delete_factory(): @@ -313,7 +313,7 @@ def delete_factory(): return get_json_result(data=True) -@manager.route('/my_llms', methods=['GET']) +@manager.route('/my_llms', methods=['GET']) # noqa: F821 @login_required def my_llms(): try: @@ -334,7 +334,7 @@ def my_llms(): return server_error_response(e) -@manager.route('/list', methods=['GET']) +@manager.route('/list', methods=['GET']) # noqa: F821 @login_required def list_app(): self_deploied = ["Youdao", "FastEmbed", "BAAI", "Ollama", "Xinference", "LocalAI", "LM-Studio"] diff --git a/api/apps/sdk/agent.py b/api/apps/sdk/agent.py index 79cb5954c..a60a645bc 100644 --- a/api/apps/sdk/agent.py +++ b/api/apps/sdk/agent.py @@ -19,7 +19,7 @@ from api.utils.api_utils import get_error_data_result, token_required from api.utils.api_utils import get_result from flask import request -@manager.route('/agents', methods=['GET']) +@manager.route('/agents', methods=['GET']) # noqa: F821 @token_required def list_agents(tenant_id): id = request.args.get("id") diff --git a/api/apps/sdk/chat.py b/api/apps/sdk/chat.py index aea6a74bf..784578521 100644 --- a/api/apps/sdk/chat.py +++ b/api/apps/sdk/chat.py @@ -26,7 +26,7 @@ from api.utils.api_utils import get_result -@manager.route('/chats', methods=['POST']) +@manager.route('/chats', methods=['POST']) # noqa: F821 @token_required def create(tenant_id): req=request.json @@ -150,7 +150,7 @@ def create(tenant_id): res["avatar"] = res.pop("icon") return get_result(data=res) -@manager.route('/chats/', methods=['PUT']) +@manager.route('/chats/', methods=['PUT']) # noqa: F821 @token_required def update(tenant_id,chat_id): if not DialogService.query(tenant_id=tenant_id, id=chat_id, status=StatusEnum.VALID.value): @@ -238,7 +238,7 @@ def update(tenant_id,chat_id): return get_result() -@manager.route('/chats', methods=['DELETE']) +@manager.route('/chats', methods=['DELETE']) # noqa: F821 @token_required def delete(tenant_id): req = request.json @@ -260,7 +260,7 @@ def delete(tenant_id): DialogService.update_by_id(id, temp_dict) return get_result() -@manager.route('/chats', methods=['GET']) +@manager.route('/chats', methods=['GET']) # noqa: F821 @token_required def list_chat(tenant_id): id = request.args.get("id") diff --git a/api/apps/sdk/dataset.py b/api/apps/sdk/dataset.py index 6a26819ab..d44956948 100644 --- a/api/apps/sdk/dataset.py +++ b/api/apps/sdk/dataset.py @@ -34,7 +34,7 @@ from api.utils.api_utils import ( ) -@manager.route("/datasets", methods=["POST"]) +@manager.route("/datasets", methods=["POST"]) # noqa: F821 @token_required def create(tenant_id): """ @@ -190,7 +190,7 @@ def create(tenant_id): return get_result(data=renamed_data) -@manager.route("/datasets", methods=["DELETE"]) +@manager.route("/datasets", methods=["DELETE"]) # noqa: F821 @token_required def delete(tenant_id): """ @@ -260,7 +260,7 @@ def delete(tenant_id): return get_result(code=settings.RetCode.SUCCESS) -@manager.route("/datasets/", methods=["PUT"]) +@manager.route("/datasets/", methods=["PUT"]) # noqa: F821 @token_required def update(tenant_id, dataset_id): """ @@ -429,7 +429,7 @@ def update(tenant_id, dataset_id): return get_result(code=settings.RetCode.SUCCESS) -@manager.route("/datasets", methods=["GET"]) +@manager.route("/datasets", methods=["GET"]) # noqa: F821 @token_required def list(tenant_id): """ diff --git a/api/apps/sdk/dify_retrieval.py b/api/apps/sdk/dify_retrieval.py index 388a9d1c8..3a81c8534 100644 --- a/api/apps/sdk/dify_retrieval.py +++ b/api/apps/sdk/dify_retrieval.py @@ -22,7 +22,7 @@ from api import settings from api.utils.api_utils import validate_request, build_error_result, apikey_required -@manager.route('/dify/retrieval', methods=['POST']) +@manager.route('/dify/retrieval', methods=['POST']) # noqa: F821 @apikey_required @validate_request("knowledge_id", "query") def retrieval(tenant_id): diff --git a/api/apps/sdk/doc.py b/api/apps/sdk/doc.py index 2a2bacbe1..6bcbe58e7 100644 --- a/api/apps/sdk/doc.py +++ b/api/apps/sdk/doc.py @@ -45,7 +45,7 @@ from rag.utils.storage_factory import STORAGE_IMPL MAXIMUM_OF_UPLOADING_FILES = 256 -@manager.route("/datasets//documents", methods=["POST"]) +@manager.route("/datasets//documents", methods=["POST"]) # noqa: F821 @token_required def upload(dataset_id, tenant_id): """ @@ -153,7 +153,7 @@ def upload(dataset_id, tenant_id): return get_result(data=renamed_doc_list) -@manager.route("/datasets//documents/", methods=["PUT"]) +@manager.route("/datasets//documents/", methods=["PUT"]) # noqa: F821 @token_required def update_doc(tenant_id, dataset_id, document_id): """ @@ -296,7 +296,7 @@ def update_doc(tenant_id, dataset_id, document_id): return get_result() -@manager.route("/datasets//documents/", methods=["GET"]) +@manager.route("/datasets//documents/", methods=["GET"]) # noqa: F821 @token_required def download(tenant_id, dataset_id, document_id): """ @@ -360,7 +360,7 @@ def download(tenant_id, dataset_id, document_id): ) -@manager.route("/datasets//documents", methods=["GET"]) +@manager.route("/datasets//documents", methods=["GET"]) # noqa: F821 @token_required def list_docs(dataset_id, tenant_id): """ @@ -494,7 +494,7 @@ def list_docs(dataset_id, tenant_id): return get_result(data={"total": tol, "docs": renamed_doc_list}) -@manager.route("/datasets//documents", methods=["DELETE"]) +@manager.route("/datasets//documents", methods=["DELETE"]) # noqa: F821 @token_required def delete(tenant_id, dataset_id): """ @@ -586,7 +586,7 @@ def delete(tenant_id, dataset_id): return get_result() -@manager.route("/datasets//chunks", methods=["POST"]) +@manager.route("/datasets//chunks", methods=["POST"]) # noqa: F821 @token_required def parse(tenant_id, dataset_id): """ @@ -653,7 +653,7 @@ def parse(tenant_id, dataset_id): return get_result() -@manager.route("/datasets//chunks", methods=["DELETE"]) +@manager.route("/datasets//chunks", methods=["DELETE"]) # noqa: F821 @token_required def stop_parsing(tenant_id, dataset_id): """ @@ -711,7 +711,7 @@ def stop_parsing(tenant_id, dataset_id): return get_result() -@manager.route("/datasets//documents//chunks", methods=["GET"]) +@manager.route("/datasets//documents//chunks", methods=["GET"]) # noqa: F821 @token_required def list_chunks(tenant_id, dataset_id, document_id): """ @@ -895,7 +895,7 @@ def list_chunks(tenant_id, dataset_id, document_id): return get_result(data=res) -@manager.route( +@manager.route( # noqa: F821 "/datasets//documents//chunks", methods=["POST"] ) @token_required @@ -1038,7 +1038,7 @@ def add_chunk(tenant_id, dataset_id, document_id): # return get_result(data={"chunk_id": chunk_id}) -@manager.route( +@manager.route( # noqa: F821 "datasets//documents//chunks", methods=["DELETE"] ) @token_required @@ -1098,7 +1098,7 @@ def rm_chunk(tenant_id, dataset_id, document_id): return get_result(message=f"deleted {chunk_number} chunks") -@manager.route( +@manager.route( # noqa: F821 "/datasets//documents//chunks/", methods=["PUT"] ) @token_required @@ -1208,7 +1208,7 @@ def update_chunk(tenant_id, dataset_id, document_id, chunk_id): return get_result() -@manager.route("/retrieval", methods=["POST"]) +@manager.route("/retrieval", methods=["POST"]) # noqa: F821 @token_required def retrieval_test(tenant_id): """ diff --git a/api/apps/sdk/session.py b/api/apps/sdk/session.py index 6fc031243..b78106130 100644 --- a/api/apps/sdk/session.py +++ b/api/apps/sdk/session.py @@ -33,7 +33,7 @@ from api.utils.api_utils import get_result, token_required from api.db.services.llm_service import LLMBundle -@manager.route('/chats//sessions', methods=['POST']) +@manager.route('/chats//sessions', methods=['POST']) # noqa: F821 @token_required def create(tenant_id, chat_id): req = request.json @@ -60,7 +60,7 @@ def create(tenant_id, chat_id): return get_result(data=conv) -@manager.route('/agents//sessions', methods=['POST']) +@manager.route('/agents//sessions', methods=['POST']) # noqa: F821 @token_required def create_agent_session(tenant_id, agent_id): e, cvs = UserCanvasService.get_by_id(agent_id) @@ -86,7 +86,7 @@ def create_agent_session(tenant_id, agent_id): return get_result(data=conv) -@manager.route('/chats//sessions/', methods=['PUT']) +@manager.route('/chats//sessions/', methods=['PUT']) # noqa: F821 @token_required def update(tenant_id, chat_id, session_id): req = request.json @@ -108,7 +108,7 @@ def update(tenant_id, chat_id, session_id): return get_result() -@manager.route('/chats//completions', methods=['POST']) +@manager.route('/chats//completions', methods=['POST']) # noqa: F821 @token_required def completion(tenant_id, chat_id): dia = DialogService.query(id=chat_id, tenant_id=tenant_id, status=StatusEnum.VALID.value) @@ -219,7 +219,7 @@ def completion(tenant_id, chat_id): return get_result(data=answer) -@manager.route('/agents//completions', methods=['POST']) +@manager.route('/agents//completions', methods=['POST']) # noqa: F821 @token_required def agent_completion(tenant_id, agent_id): req = request.json @@ -379,7 +379,7 @@ def agent_completion(tenant_id, agent_id): return get_result(data=result) -@manager.route('/chats//sessions', methods=['GET']) +@manager.route('/chats//sessions', methods=['GET']) # noqa: F821 @token_required def list_session(tenant_id, chat_id): if not DialogService.query(tenant_id=tenant_id, id=chat_id, status=StatusEnum.VALID.value): @@ -433,7 +433,7 @@ def list_session(tenant_id, chat_id): return get_result(data=convs) -@manager.route('/agents//sessions', methods=['GET']) +@manager.route('/agents//sessions', methods=['GET']) # noqa: F821 @token_required def list_agent_session(tenant_id, agent_id): if not UserCanvasService.query(user_id=tenant_id, id=agent_id): @@ -488,7 +488,7 @@ def list_agent_session(tenant_id, agent_id): return get_result(data=convs) -@manager.route('/chats//sessions', methods=["DELETE"]) +@manager.route('/chats//sessions', methods=["DELETE"]) # noqa: F821 @token_required def delete(tenant_id, chat_id): if not DialogService.query(id=chat_id, tenant_id=tenant_id, status=StatusEnum.VALID.value): @@ -514,7 +514,7 @@ def delete(tenant_id, chat_id): return get_result() -@manager.route('/sessions/ask', methods=['POST']) +@manager.route('/sessions/ask', methods=['POST']) # noqa: F821 @token_required def ask_about(tenant_id): req = request.json @@ -553,7 +553,7 @@ def ask_about(tenant_id): return resp -@manager.route('/sessions/related_questions', methods=['POST']) +@manager.route('/sessions/related_questions', methods=['POST']) # noqa: F821 @token_required def related_questions(tenant_id): req = request.json diff --git a/api/apps/system_app.py b/api/apps/system_app.py index 19ed5b5f6..7b715f14b 100644 --- a/api/apps/system_app.py +++ b/api/apps/system_app.py @@ -38,7 +38,7 @@ from timeit import default_timer as timer from rag.utils.redis_conn import REDIS_CONN -@manager.route("/version", methods=["GET"]) +@manager.route("/version", methods=["GET"]) # noqa: F821 @login_required def version(): """ @@ -61,7 +61,7 @@ def version(): return get_json_result(data=get_ragflow_version()) -@manager.route("/status", methods=["GET"]) +@manager.route("/status", methods=["GET"]) # noqa: F821 @login_required def status(): """ @@ -170,7 +170,7 @@ def status(): return get_json_result(data=res) -@manager.route("/new_token", methods=["POST"]) +@manager.route("/new_token", methods=["POST"]) # noqa: F821 @login_required def new_token(): """ @@ -219,7 +219,7 @@ def new_token(): return server_error_response(e) -@manager.route("/token_list", methods=["GET"]) +@manager.route("/token_list", methods=["GET"]) # noqa: F821 @login_required def token_list(): """ @@ -261,7 +261,7 @@ def token_list(): return server_error_response(e) -@manager.route("/token/", methods=["DELETE"]) +@manager.route("/token/", methods=["DELETE"]) # noqa: F821 @login_required def rm(token): """ diff --git a/api/apps/tenant_app.py b/api/apps/tenant_app.py index 46e6cabfc..045887530 100644 --- a/api/apps/tenant_app.py +++ b/api/apps/tenant_app.py @@ -26,7 +26,7 @@ from api.utils import get_uuid, delta_seconds from api.utils.api_utils import get_json_result, validate_request, server_error_response, get_data_error_result -@manager.route("//user/list", methods=["GET"]) +@manager.route("//user/list", methods=["GET"]) # noqa: F821 @login_required def user_list(tenant_id): if current_user.id != tenant_id: @@ -44,7 +44,7 @@ def user_list(tenant_id): return server_error_response(e) -@manager.route('//user', methods=['POST']) +@manager.route('//user', methods=['POST']) # noqa: F821 @login_required @validate_request("email") def create(tenant_id): @@ -80,7 +80,7 @@ def create(tenant_id): return get_json_result(data=usr) -@manager.route('//user/', methods=['DELETE']) +@manager.route('//user/', methods=['DELETE']) # noqa: F821 @login_required def rm(tenant_id, user_id): if current_user.id != tenant_id and current_user.id != user_id: @@ -96,7 +96,7 @@ def rm(tenant_id, user_id): return server_error_response(e) -@manager.route("/list", methods=["GET"]) +@manager.route("/list", methods=["GET"]) # noqa: F821 @login_required def tenant_list(): try: @@ -108,7 +108,7 @@ def tenant_list(): return server_error_response(e) -@manager.route("/agree/", methods=["PUT"]) +@manager.route("/agree/", methods=["PUT"]) # noqa: F821 @login_required def agree(tenant_id): try: diff --git a/api/apps/user_app.py b/api/apps/user_app.py index a9ec7c120..a78fad5df 100644 --- a/api/apps/user_app.py +++ b/api/apps/user_app.py @@ -44,7 +44,7 @@ from api.db.services.file_service import FileService from api.utils.api_utils import get_json_result, construct_response -@manager.route("/login", methods=["POST", "GET"]) +@manager.route("/login", methods=["POST", "GET"]) # noqa: F821 def login(): """ User login endpoint. @@ -115,7 +115,7 @@ def login(): ) -@manager.route("/github_callback", methods=["GET"]) +@manager.route("/github_callback", methods=["GET"]) # noqa: F821 def github_callback(): """ GitHub OAuth callback endpoint. @@ -200,7 +200,7 @@ def github_callback(): return redirect("/?auth=%s" % user.get_id()) -@manager.route("/feishu_callback", methods=["GET"]) +@manager.route("/feishu_callback", methods=["GET"]) # noqa: F821 def feishu_callback(): """ Feishu OAuth callback endpoint. @@ -335,7 +335,7 @@ def user_info_from_github(access_token): return user_info -@manager.route("/logout", methods=["GET"]) +@manager.route("/logout", methods=["GET"]) # noqa: F821 @login_required def log_out(): """ @@ -357,7 +357,7 @@ def log_out(): return get_json_result(data=True) -@manager.route("/setting", methods=["POST"]) +@manager.route("/setting", methods=["POST"]) # noqa: F821 @login_required def setting_user(): """ @@ -429,7 +429,7 @@ def setting_user(): ) -@manager.route("/info", methods=["GET"]) +@manager.route("/info", methods=["GET"]) # noqa: F821 @login_required def user_profile(): """ @@ -531,7 +531,7 @@ def user_register(user_id, user): return UserService.query(email=user["email"]) -@manager.route("/register", methods=["POST"]) +@manager.route("/register", methods=["POST"]) # noqa: F821 @validate_request("nickname", "email", "password") def user_add(): """ @@ -617,7 +617,7 @@ def user_add(): ) -@manager.route("/tenant_info", methods=["GET"]) +@manager.route("/tenant_info", methods=["GET"]) # noqa: F821 @login_required def tenant_info(): """ @@ -655,7 +655,7 @@ def tenant_info(): return server_error_response(e) -@manager.route("/set_tenant_info", methods=["POST"]) +@manager.route("/set_tenant_info", methods=["POST"]) # noqa: F821 @login_required @validate_request("tenant_id", "asr_id", "embd_id", "img2txt_id", "llm_id") def set_tenant_info(): diff --git a/deepdoc/parser/pdf_parser.py b/deepdoc/parser/pdf_parser.py index 82fab32d2..5ff216edf 100644 --- a/deepdoc/parser/pdf_parser.py +++ b/deepdoc/parser/pdf_parser.py @@ -21,7 +21,6 @@ import re import pdfplumber from PIL import Image import numpy as np -from timeit import default_timer as timer from pypdf import PdfReader as pdf2_read from api import settings @@ -949,7 +948,6 @@ class RAGFlowPdfParser: self.page_cum_height = [0] self.page_layout = [] self.page_from = page_from - st = timer() try: self.pdf = pdfplumber.open(fnm) if isinstance( fnm, str) else pdfplumber.open(BytesIO(fnm)) diff --git a/deepdoc/vision/ocr.py b/deepdoc/vision/ocr.py index ee8ca6ab1..f014d755b 100644 --- a/deepdoc/vision/ocr.py +++ b/deepdoc/vision/ocr.py @@ -18,7 +18,7 @@ import os from huggingface_hub import snapshot_download from api.utils.file_utils import get_project_base_directory -from .operators import * +from .operators import * # noqa: F403 import math import numpy as np import cv2 diff --git a/deepdoc/vision/recognizer.py b/deepdoc/vision/recognizer.py index de5dc7ed0..35ccbdea1 100644 --- a/deepdoc/vision/recognizer.py +++ b/deepdoc/vision/recognizer.py @@ -23,7 +23,8 @@ import onnxruntime as ort from huggingface_hub import snapshot_download from api.utils.file_utils import get_project_base_directory -from .operators import * +from .operators import * # noqa: F403 +from .operators import preprocess class Recognizer(object): def __init__(self, label_list, task_name, model_dir=None): diff --git a/graphrag/entity_embedding.py b/graphrag/entity_embedding.py index af7bc2a7b..a212520be 100644 --- a/graphrag/entity_embedding.py +++ b/graphrag/entity_embedding.py @@ -10,6 +10,7 @@ import numpy as np import networkx as nx from dataclasses import dataclass from graphrag.leiden import stable_largest_connected_component +import graspologic as gc @dataclass