diff --git a/admin/server/admin_server.py b/admin/server/admin_server.py index 3dc552399..57950919b 100644 --- a/admin/server/admin_server.py +++ b/admin/server/admin_server.py @@ -24,7 +24,7 @@ from werkzeug.serving import run_simple from flask import Flask from routes import admin_bp from common.log_utils import init_root_logger -from common.contants import SERVICE_CONF +from common.constants import SERVICE_CONF from common.config_utils import show_configs from api import settings from config import load_configurations, SERVICE_CONFIGS diff --git a/api/apps/api_app.py b/api/apps/api_app.py index a96a24bf3..1f72e4728 100644 --- a/api/apps/api_app.py +++ b/api/apps/api_app.py @@ -34,7 +34,7 @@ from api.db.services.task_service import queue_tasks, TaskService from api.db.services.user_service import UserTenantService from api import settings from common.misc_utils import get_uuid -from common.contants import RetCode +from common.constants import RetCode from api.utils.api_utils import server_error_response, get_data_error_result, get_json_result, validate_request, \ generate_confirmation_token diff --git a/api/apps/canvas_app.py b/api/apps/canvas_app.py index 98ab49f8f..96147d65c 100644 --- a/api/apps/canvas_app.py +++ b/api/apps/canvas_app.py @@ -34,7 +34,7 @@ from api.db.services.pipeline_operation_log_service import PipelineOperationLogS from api.db.services.task_service import queue_dataflow, CANVAS_DEBUG_DOC_ID, TaskService from api.db.services.user_service import TenantService from api.db.services.user_canvas_version import UserCanvasVersionService -from common.contants import RetCode +from common.constants import RetCode from common.misc_utils import get_uuid from api.utils.api_utils import get_json_result, server_error_response, validate_request, get_data_error_result from agent.canvas import Canvas diff --git a/api/apps/chunk_app.py b/api/apps/chunk_app.py index 46c00fc3a..bcb23c344 100644 --- a/api/apps/chunk_app.py +++ b/api/apps/chunk_app.py @@ -36,7 +36,7 @@ from rag.nlp import rag_tokenizer, search from rag.prompts.generator import gen_meta_filter, cross_languages, keyword_extraction from rag.settings import PAGERANK_FLD from common.string_utils import remove_redundant_spaces -from common.contants import RetCode +from common.constants import RetCode @manager.route('/list', methods=['POST']) # noqa: F821 diff --git a/api/apps/connector_app.py b/api/apps/connector_app.py index 32632bffc..dc45c0c0e 100644 --- a/api/apps/connector_app.py +++ b/api/apps/connector_app.py @@ -22,7 +22,7 @@ from api.db import TaskStatus, InputType from api.db.services.connector_service import ConnectorService, Connector2KbService, SyncLogsService from api.utils.api_utils import get_json_result, validate_request, get_data_error_result from common.misc_utils import get_uuid -from common.contants import RetCode +from common.constants import RetCode @manager.route("/set", methods=["POST"]) # noqa: F821 @login_required diff --git a/api/apps/conversation_app.py b/api/apps/conversation_app.py index a8d8f6ef2..59771d72d 100644 --- a/api/apps/conversation_app.py +++ b/api/apps/conversation_app.py @@ -30,7 +30,7 @@ from api.db.services.user_service import TenantService, UserTenantService from api.utils.api_utils import get_data_error_result, get_json_result, server_error_response, validate_request from rag.prompts.template import load_prompt from rag.prompts.generator import chunks_format -from common.contants import RetCode +from common.constants import RetCode @manager.route("/set", methods=["POST"]) # noqa: F821 diff --git a/api/apps/dialog_app.py b/api/apps/dialog_app.py index 5fc15efc4..c1daa4b07 100644 --- a/api/apps/dialog_app.py +++ b/api/apps/dialog_app.py @@ -24,7 +24,7 @@ from api.db.services.knowledgebase_service import KnowledgebaseService from api.db.services.user_service import TenantService, UserTenantService from api.utils.api_utils import server_error_response, get_data_error_result, validate_request from common.misc_utils import get_uuid -from common.contants import RetCode +from common.constants import RetCode from api.utils.api_utils import get_json_result diff --git a/api/apps/document_app.py b/api/apps/document_app.py index 0f5165d3c..8d0711d2f 100644 --- a/api/apps/document_app.py +++ b/api/apps/document_app.py @@ -44,7 +44,7 @@ from api.utils.api_utils import ( ) from api.utils.file_utils import filename_type, thumbnail from common.file_utils import get_project_base_directory -from common.contants import RetCode +from common.constants import RetCode from api.utils.web_utils import CONTENT_TYPE_MAP, html2pdf, is_valid_url from deepdoc.parser.html_parser import RAGFlowHtmlParser from rag.nlp import search, rag_tokenizer diff --git a/api/apps/file2document_app.py b/api/apps/file2document_app.py index cb6692f6c..ca1e6b096 100644 --- a/api/apps/file2document_app.py +++ b/api/apps/file2document_app.py @@ -24,7 +24,7 @@ from flask_login import login_required, current_user from api.db.services.knowledgebase_service import KnowledgebaseService from api.utils.api_utils import server_error_response, get_data_error_result, validate_request from common.misc_utils import get_uuid -from common.contants import RetCode +from common.constants import RetCode from api.db import FileType from api.db.services.document_service import DocumentService from api.utils.api_utils import get_json_result diff --git a/api/apps/file_app.py b/api/apps/file_app.py index 7cee06dfc..98b380f96 100644 --- a/api/apps/file_app.py +++ b/api/apps/file_app.py @@ -27,7 +27,7 @@ from api.db.services.document_service import DocumentService from api.db.services.file2document_service import File2DocumentService from api.utils.api_utils import server_error_response, get_data_error_result, validate_request from common.misc_utils import get_uuid -from common.contants import RetCode +from common.constants import RetCode from api.db import FileType, FileSource from api.db.services import duplicate_name from api.db.services.file_service import FileService diff --git a/api/apps/kb_app.py b/api/apps/kb_app.py index ebd92aa96..a4f96a032 100644 --- a/api/apps/kb_app.py +++ b/api/apps/kb_app.py @@ -41,7 +41,7 @@ from rag.settings import PAGERANK_FLD from rag.utils.redis_conn import REDIS_CONN from rag.utils.storage_factory import STORAGE_IMPL from rag.utils.doc_store_conn import OrderByExpr -from common.contants import RetCode +from common.constants import RetCode @manager.route('/create', methods=['post']) # noqa: F821 diff --git a/api/apps/mcp_server_app.py b/api/apps/mcp_server_app.py index 5b6afb1f2..65eb86fed 100644 --- a/api/apps/mcp_server_app.py +++ b/api/apps/mcp_server_app.py @@ -20,7 +20,7 @@ from api.db import VALID_MCP_SERVER_TYPES from api.db.db_models import MCPServer from api.db.services.mcp_server_service import MCPServerService from api.db.services.user_service import TenantService -from common.contants import RetCode +from common.constants import RetCode from common.misc_utils import get_uuid from api.utils.api_utils import get_data_error_result, get_json_result, server_error_response, validate_request, \ diff --git a/api/apps/sdk/agent.py b/api/apps/sdk/agent.py index 958250159..d0c19de7b 100644 --- a/api/apps/sdk/agent.py +++ b/api/apps/sdk/agent.py @@ -19,7 +19,7 @@ import time from typing import Any, cast from api.db.services.canvas_service import UserCanvasService from api.db.services.user_canvas_version import UserCanvasVersionService -from common.contants import RetCode +from common.constants import RetCode from common.misc_utils import get_uuid from api.utils.api_utils import get_data_error_result, get_error_data_result, get_json_result, token_required from api.utils.api_utils import get_result diff --git a/api/apps/sdk/chat.py b/api/apps/sdk/chat.py index b8625afaf..bd5ec431a 100644 --- a/api/apps/sdk/chat.py +++ b/api/apps/sdk/chat.py @@ -23,7 +23,7 @@ from api.db.services.knowledgebase_service import KnowledgebaseService from api.db.services.tenant_llm_service import TenantLLMService from api.db.services.user_service import TenantService from common.misc_utils import get_uuid -from common.contants import RetCode +from common.constants import RetCode from api.utils.api_utils import check_duplicate_ids, get_error_data_result, get_result, token_required diff --git a/api/apps/sdk/dataset.py b/api/apps/sdk/dataset.py index 7a4abadd5..45701e67a 100644 --- a/api/apps/sdk/dataset.py +++ b/api/apps/sdk/dataset.py @@ -28,7 +28,7 @@ from api.db.services.file2document_service import File2DocumentService from api.db.services.file_service import FileService from api.db.services.knowledgebase_service import KnowledgebaseService from api.db.services.user_service import TenantService -from common.contants import RetCode +from common.constants import RetCode from api.utils.api_utils import ( deep_merge, get_error_argument_result, diff --git a/api/apps/sdk/dify_retrieval.py b/api/apps/sdk/dify_retrieval.py index c67493c6d..434e5dc5a 100644 --- a/api/apps/sdk/dify_retrieval.py +++ b/api/apps/sdk/dify_retrieval.py @@ -25,7 +25,7 @@ from api import settings from api.utils.api_utils import validate_request, build_error_result, apikey_required from rag.app.tag import label_question from api.db.services.dialog_service import meta_filter, convert_conditions -from common.contants import RetCode +from common.constants import RetCode @manager.route('/dify/retrieval', methods=['POST']) # noqa: F821 @apikey_required diff --git a/api/apps/sdk/doc.py b/api/apps/sdk/doc.py index 93bedb5ea..f3605ed7c 100644 --- a/api/apps/sdk/doc.py +++ b/api/apps/sdk/doc.py @@ -43,7 +43,7 @@ from rag.nlp import rag_tokenizer, search from rag.prompts.generator import cross_languages, keyword_extraction from rag.utils.storage_factory import STORAGE_IMPL from common.string_utils import remove_redundant_spaces -from common.contants import RetCode +from common.constants import RetCode MAXIMUM_OF_UPLOADING_FILES = 256 diff --git a/api/apps/sdk/session.py b/api/apps/sdk/session.py index 8094f9677..55cc7b58a 100644 --- a/api/apps/sdk/session.py +++ b/api/apps/sdk/session.py @@ -41,7 +41,7 @@ from api.utils.api_utils import check_duplicate_ids, get_data_openai, get_error_ from rag.app.tag import label_question from rag.prompts.template import load_prompt from rag.prompts.generator import cross_languages, gen_meta_filter, keyword_extraction, chunks_format -from common.contants import RetCode +from common.constants import RetCode @manager.route("/chats//sessions", methods=["POST"]) # noqa: F821 @token_required diff --git a/api/apps/search_app.py b/api/apps/search_app.py index 1a937da27..18ff76dcf 100644 --- a/api/apps/search_app.py +++ b/api/apps/search_app.py @@ -24,7 +24,7 @@ from api.db.services import duplicate_name from api.db.services.search_service import SearchService from api.db.services.user_service import TenantService, UserTenantService from common.misc_utils import get_uuid -from common.contants import RetCode +from common.constants import RetCode from api.utils.api_utils import get_data_error_result, get_json_result, not_allowed_parameters, server_error_response, validate_request diff --git a/api/apps/tenant_app.py b/api/apps/tenant_app.py index fd3e73f1c..040df755e 100644 --- a/api/apps/tenant_app.py +++ b/api/apps/tenant_app.py @@ -23,7 +23,7 @@ from api.db import UserTenantRole, StatusEnum from api.db.db_models import UserTenant from api.db.services.user_service import UserTenantService, UserService -from common.contants import RetCode +from common.constants import RetCode from common.misc_utils import get_uuid from common.time_utils import delta_seconds from api.utils.api_utils import get_json_result, validate_request, server_error_response, get_data_error_result diff --git a/api/apps/user_app.py b/api/apps/user_app.py index 7a67f90fb..f8151f887 100644 --- a/api/apps/user_app.py +++ b/api/apps/user_app.py @@ -36,7 +36,7 @@ from api.db.services.tenant_llm_service import TenantLLMService from api.db.services.user_service import TenantService, UserService, UserTenantService from common.time_utils import current_timestamp, datetime_format, get_format_time from common.misc_utils import download_img, get_uuid -from common.contants import RetCode +from common.constants import RetCode from common.connection_utils import construct_response from api.utils.api_utils import ( get_data_error_result, diff --git a/api/db/__init__.py b/api/db/__init__.py index 7dc682dc4..827959452 100644 --- a/api/db/__init__.py +++ b/api/db/__init__.py @@ -65,13 +65,6 @@ class LLMType(StrEnum): TTS = 'tts' -class ChatStyle(StrEnum): - CREATIVE = 'Creative' - PRECISE = 'Precise' - EVENLY = 'Evenly' - CUSTOM = 'Custom' - - class TaskStatus(StrEnum): UNSTART = "0" RUNNING = "1" @@ -124,17 +117,10 @@ class InputType(StrEnum): SLIM_RETRIEVAL = "slim_retrieval" -class CanvasType(StrEnum): - ChatBot = "chatbot" - DocBot = "docbot" - - class CanvasCategory(StrEnum): Agent = "agent_canvas" DataFlow = "dataflow_canvas" -VALID_CANVAS_CATEGORIES = {CanvasCategory.Agent, CanvasCategory.DataFlow} - class MCPServerType(StrEnum): SSE = "sse" diff --git a/api/utils/api_utils.py b/api/utils/api_utils.py index 6e1b8c720..3a7a3a305 100644 --- a/api/utils/api_utils.py +++ b/api/utils/api_utils.py @@ -40,7 +40,7 @@ from api.db.db_models import APIToken from api.utils.json_encode import CustomJSONEncoder from rag.utils.mcp_tool_call_conn import MCPToolCallSession, close_multiple_mcp_toolcall_sessions from common.connection_utils import timeout -from common.contants import RetCode +from common.constants import RetCode requests.models.complexjson.dumps = functools.partial(json.dumps, cls=CustomJSONEncoder) diff --git a/common/config_utils.py b/common/config_utils.py index f368b9372..ac55f7e97 100644 --- a/common/config_utils.py +++ b/common/config_utils.py @@ -21,7 +21,7 @@ import importlib from filelock import FileLock from common.file_utils import get_project_base_directory -from common.contants import SERVICE_CONF +from common.constants import SERVICE_CONF from ruamel.yaml import YAML diff --git a/common/connection_utils.py b/common/connection_utils.py index bfcfe8dd8..618584ae9 100644 --- a/common/connection_utils.py +++ b/common/connection_utils.py @@ -22,7 +22,7 @@ import asyncio import trio from functools import wraps from flask import make_response, jsonify -from common.contants import RetCode +from common.constants import RetCode TimeoutException = Union[Type[BaseException], BaseException] OnTimeoutCallback = Union[Callable[..., Any], Coroutine[Any, Any, Any]] diff --git a/common/contants.py b/common/constants.py similarity index 68% rename from common/contants.py rename to common/constants.py index 5749826cd..1c1606821 100644 --- a/common/contants.py +++ b/common/constants.py @@ -15,6 +15,7 @@ # from enum import Enum, IntEnum +from strenum import StrEnum SERVICE_CONF = "service_conf.yaml" @@ -53,6 +54,83 @@ class RetCode(IntEnum, CustomEnum): FORBIDDEN = 403 NOT_FOUND = 404 + +class StatusEnum(Enum): + VALID = "1" + INVALID = "0" + + +class ActiveEnum(Enum): + ACTIVE = "1" + INACTIVE = "0" + + +class LLMType(StrEnum): + CHAT = 'chat' + EMBEDDING = 'embedding' + SPEECH2TEXT = 'speech2text' + IMAGE2TEXT = 'image2text' + RERANK = 'rerank' + TTS = 'tts' + + +class TaskStatus(StrEnum): + UNSTART = "0" + RUNNING = "1" + CANCEL = "2" + DONE = "3" + FAIL = "4" + SCHEDULE = "5" + + +VALID_TASK_STATUS = {TaskStatus.UNSTART, TaskStatus.RUNNING, TaskStatus.CANCEL, TaskStatus.DONE, TaskStatus.FAIL, + TaskStatus.SCHEDULE} + + +class ParserType(StrEnum): + PRESENTATION = "presentation" + LAWS = "laws" + MANUAL = "manual" + PAPER = "paper" + RESUME = "resume" + BOOK = "book" + QA = "qa" + TABLE = "table" + NAIVE = "naive" + PICTURE = "picture" + ONE = "one" + AUDIO = "audio" + EMAIL = "email" + KG = "knowledge_graph" + TAG = "tag" + + +class FileSource(StrEnum): + LOCAL = "" + KNOWLEDGEBASE = "knowledgebase" + S3 = "s3" + NOTION = "notion" + DISCORD = "discord" + CONFLUENCE = "confluence" + GMAIL = "gmail" + GOOGLE_DRIVER = "google_driver" + JIRA = "jira" + SHAREPOINT = "sharepoint" + SLACK = "slack" + TEAMS = "teams" + + +class PipelineTaskType(StrEnum): + PARSE = "Parse" + DOWNLOAD = "Download" + RAPTOR = "RAPTOR" + GRAPH_RAG = "GraphRAG" + MINDMAP = "Mindmap" + + +VALID_PIPELINE_TASK_TYPES = {PipelineTaskType.PARSE, PipelineTaskType.DOWNLOAD, PipelineTaskType.RAPTOR, + PipelineTaskType.GRAPH_RAG, PipelineTaskType.MINDMAP} + # environment # ENV_STRONG_TEST_COUNT = "STRONG_TEST_COUNT" # ENV_RAGFLOW_SECRET_KEY = "RAGFLOW_SECRET_KEY" diff --git a/rag/svr/sync_data_source.py b/rag/svr/sync_data_source.py index a9754a607..471858b7e 100644 --- a/rag/svr/sync_data_source.py +++ b/rag/svr/sync_data_source.py @@ -170,7 +170,7 @@ class Confluence(SyncBase): docs = [{ "id": doc.id, "connector_id": task["connector_id"], - "source": FileSource.CONFLUENNCE, + "source": FileSource.CONFLUENCE, "semantic_identifier": doc.semantic_identifier, "extension": doc.extension, "size_bytes": doc.size_bytes, @@ -179,7 +179,7 @@ class Confluence(SyncBase): }] e, kb = KnowledgebaseService.get_by_id(task["kb_id"]) - err, dids = SyncLogsService.duplicate_and_parse(kb, docs, task["tenant_id"], f"{FileSource.CONFLUENNCE}/{task['connector_id']}") + err, dids = SyncLogsService.duplicate_and_parse(kb, docs, task["tenant_id"], f"{FileSource.CONFLUENCE}/{task['connector_id']}") SyncLogsService.increase_docs(task["id"], min_update, max_update, len(docs), "\n".join(err), len(err)) doc_num += len(docs) diff --git a/rag/utils/constants.py b/rag/utils/constants.py new file mode 100644 index 000000000..7141a8f04 --- /dev/null +++ b/rag/utils/constants.py @@ -0,0 +1,23 @@ +# +# Copyright 2025 The InfiniFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from enum import StrEnum + +class MCPServerType(StrEnum): + SSE = "sse" + STREAMABLE_HTTP = "streamable-http" + +VALID_MCP_SERVER_TYPES = {MCPServerType.SSE, MCPServerType.STREAMABLE_HTTP} \ No newline at end of file