From 7d5572027c91ebf6665e32217a4a59ce335d71f5 Mon Sep 17 00:00:00 2001 From: -LAN- Date: Sun, 1 Mar 2026 19:56:06 +0800 Subject: [PATCH] Move prompt module under model runtime --- api/.importlinter | 37 +++++++++++-------- api/core/agent/base_agent_runner.py | 2 +- api/core/agent/cot_agent_runner.py | 2 +- api/core/agent/fc_agent_runner.py | 2 +- .../prompt_template/manager.py | 2 +- .../app/apps/advanced_chat/app_generator.py | 2 +- api/core/app/apps/base_app_runner.py | 10 +++-- .../app/apps/message_based_app_generator.py | 2 +- .../easy_ui_based_generate_task_pipeline.py | 4 +- api/core/app/workflow/node_factory.py | 2 +- api/core/llm_generator/llm_generator.py | 2 +- api/core/memory/token_buffer_memory.py | 2 +- .../{ => model_runtime}/prompt/__init__.py | 0 .../prompt/advanced_prompt_transform.py | 10 +++-- .../prompt/agent_history_prompt_transform.py | 2 +- .../prompt/entities/__init__.py | 0 .../entities/advanced_prompt_entities.py | 0 .../prompt/prompt_templates/__init__.py | 0 .../advanced_prompt_templates.py | 0 .../prompt_templates/baichuan_chat.json | 0 .../prompt_templates/baichuan_completion.json | 0 .../prompt/prompt_templates/common_chat.json | 0 .../prompt_templates/common_completion.json | 0 .../prompt/prompt_transform.py | 2 +- .../prompt/simple_prompt_transform.py | 6 +-- .../prompt/utils/__init__.py | 0 .../prompt/utils/extract_thread_messages.py | 0 .../utils/get_thread_messages_length.py | 2 +- .../prompt/utils/prompt_message_util.py | 2 +- .../prompt/utils/prompt_template_parser.py | 0 api/core/rag/retrieval/dataset_retrieval.py | 6 +-- .../router/multi_dataset_react_route.py | 4 +- api/core/workflow/nodes/agent/entities.py | 2 +- api/core/workflow/nodes/llm/entities.py | 6 ++- api/core/workflow/nodes/llm/llm_utils.py | 2 +- api/core/workflow/nodes/llm/node.py | 4 +- .../nodes/parameter_extractor/entities.py | 2 +- .../parameter_extractor_node.py | 8 ++-- .../nodes/question_classifier/entities.py | 2 +- .../question_classifier_node.py | 4 +- .../advanced_prompt_template_service.py | 2 +- api/services/workflow/workflow_converter.py | 4 +- .../test_advanced_prompt_template_service.py | 2 +- .../workflow/test_workflow_converter.py | 2 +- .../{ => model_runtime}/prompt/__init__.py | 0 .../prompt/test_advanced_prompt_transform.py | 10 +++-- .../test_agent_history_prompt_transform.py | 2 +- .../prompt/test_extract_thread_messages.py | 2 +- .../prompt/test_prompt_message.py | 0 .../prompt/test_prompt_transform.py | 2 +- .../prompt/test_simple_prompt_transform.py | 2 +- .../core/workflow/nodes/llm/test_node.py | 2 +- 52 files changed, 92 insertions(+), 71 deletions(-) rename api/core/{ => model_runtime}/prompt/__init__.py (100%) rename api/core/{ => model_runtime}/prompt/advanced_prompt_transform.py (97%) rename api/core/{ => model_runtime}/prompt/agent_history_prompt_transform.py (97%) rename api/core/{ => model_runtime}/prompt/entities/__init__.py (100%) rename api/core/{ => model_runtime}/prompt/entities/advanced_prompt_entities.py (100%) rename api/core/{ => model_runtime}/prompt/prompt_templates/__init__.py (100%) rename api/core/{ => model_runtime}/prompt/prompt_templates/advanced_prompt_templates.py (100%) rename api/core/{ => model_runtime}/prompt/prompt_templates/baichuan_chat.json (100%) rename api/core/{ => model_runtime}/prompt/prompt_templates/baichuan_completion.json (100%) rename api/core/{ => model_runtime}/prompt/prompt_templates/common_chat.json (100%) rename api/core/{ => model_runtime}/prompt/prompt_templates/common_completion.json (100%) rename api/core/{ => model_runtime}/prompt/prompt_transform.py (98%) rename api/core/{ => model_runtime}/prompt/simple_prompt_transform.py (98%) rename api/core/{ => model_runtime}/prompt/utils/__init__.py (100%) rename api/core/{ => model_runtime}/prompt/utils/extract_thread_messages.py (100%) rename api/core/{ => model_runtime}/prompt/utils/get_thread_messages_length.py (88%) rename api/core/{ => model_runtime}/prompt/utils/prompt_message_util.py (98%) rename api/core/{ => model_runtime}/prompt/utils/prompt_template_parser.py (100%) rename api/tests/unit_tests/core/{ => model_runtime}/prompt/__init__.py (100%) rename api/tests/unit_tests/core/{ => model_runtime}/prompt/test_advanced_prompt_transform.py (95%) rename api/tests/unit_tests/core/{ => model_runtime}/prompt/test_agent_history_prompt_transform.py (96%) rename api/tests/unit_tests/core/{ => model_runtime}/prompt/test_extract_thread_messages.py (96%) rename api/tests/unit_tests/core/{ => model_runtime}/prompt/test_prompt_message.py (100%) rename api/tests/unit_tests/core/{ => model_runtime}/prompt/test_prompt_transform.py (97%) rename api/tests/unit_tests/core/{ => model_runtime}/prompt/test_simple_prompt_transform.py (99%) diff --git a/api/.importlinter b/api/.importlinter index 49cf70d61a..4bb71f5fd4 100644 --- a/api/.importlinter +++ b/api/.importlinter @@ -91,7 +91,7 @@ forbidden_modules = core.moderation core.ops core.plugin - core.prompt + core.model_runtime.prompt core.provider_manager core.rag core.repositories @@ -127,10 +127,10 @@ ignore_imports = core.workflow.nodes.human_input.human_input_node -> core.app.entities.app_invoke_entities core.workflow.nodes.knowledge_index.knowledge_index_node -> core.app.entities.app_invoke_entities core.workflow.nodes.knowledge_retrieval.knowledge_retrieval_node -> core.app.app_config.entities - core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.prompt.advanced_prompt_transform - core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.prompt.simple_prompt_transform + core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.model_runtime.prompt.advanced_prompt_transform + core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.model_runtime.prompt.simple_prompt_transform core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.model_runtime.model_providers.__base.large_language_model - core.workflow.nodes.question_classifier.question_classifier_node -> core.prompt.simple_prompt_transform + core.workflow.nodes.question_classifier.question_classifier_node -> core.model_runtime.prompt.simple_prompt_transform core.workflow.nodes.start.entities -> core.app.app_config.entities core.workflow.nodes.start.start_node -> core.app.app_config.entities core.workflow.workflow_entry -> core.app.apps.exc @@ -148,16 +148,16 @@ ignore_imports = core.workflow.nodes.llm.node -> core.llm_generator.output_parser.errors core.workflow.nodes.llm.node -> core.llm_generator.output_parser.structured_output core.workflow.nodes.llm.node -> core.model_manager - core.workflow.nodes.agent.entities -> core.prompt.entities.advanced_prompt_entities - core.workflow.nodes.llm.entities -> core.prompt.entities.advanced_prompt_entities - core.workflow.nodes.llm.llm_utils -> core.prompt.entities.advanced_prompt_entities - core.workflow.nodes.llm.node -> core.prompt.entities.advanced_prompt_entities - core.workflow.nodes.llm.node -> core.prompt.utils.prompt_message_util - core.workflow.nodes.parameter_extractor.entities -> core.prompt.entities.advanced_prompt_entities - core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.prompt.entities.advanced_prompt_entities - core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.prompt.utils.prompt_message_util - core.workflow.nodes.question_classifier.entities -> core.prompt.entities.advanced_prompt_entities - core.workflow.nodes.question_classifier.question_classifier_node -> core.prompt.utils.prompt_message_util + core.workflow.nodes.agent.entities -> core.model_runtime.prompt.entities.advanced_prompt_entities + core.workflow.nodes.llm.entities -> core.model_runtime.prompt.entities.advanced_prompt_entities + core.workflow.nodes.llm.llm_utils -> core.model_runtime.prompt.entities.advanced_prompt_entities + core.workflow.nodes.llm.node -> core.model_runtime.prompt.entities.advanced_prompt_entities + core.workflow.nodes.llm.node -> core.model_runtime.prompt.utils.prompt_message_util + core.workflow.nodes.parameter_extractor.entities -> core.model_runtime.prompt.entities.advanced_prompt_entities + core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.model_runtime.prompt.entities.advanced_prompt_entities + core.workflow.nodes.parameter_extractor.parameter_extractor_node -> core.model_runtime.prompt.utils.prompt_message_util + core.workflow.nodes.question_classifier.entities -> core.model_runtime.prompt.entities.advanced_prompt_entities + core.workflow.nodes.question_classifier.question_classifier_node -> core.model_runtime.prompt.utils.prompt_message_util core.workflow.nodes.knowledge_index.entities -> core.rag.retrieval.retrieval_methods core.workflow.nodes.knowledge_index.knowledge_index_node -> core.rag.retrieval.retrieval_methods core.workflow.nodes.knowledge_index.knowledge_index_node -> models.dataset @@ -190,7 +190,12 @@ ignore_imports = name = Model Runtime Internal Imports type = forbidden source_modules = - core.model_runtime + core.model_runtime.callbacks + core.model_runtime.entities + core.model_runtime.errors + core.model_runtime.model_providers + core.model_runtime.schema_validators + core.model_runtime.utils forbidden_modules = configs controllers @@ -220,7 +225,7 @@ forbidden_modules = core.moderation core.ops core.plugin - core.prompt + core.model_runtime.prompt core.provider_manager core.rag core.repositories diff --git a/api/core/agent/base_agent_runner.py b/api/core/agent/base_agent_runner.py index 80e180ce96..5f2009b19b 100644 --- a/api/core/agent/base_agent_runner.py +++ b/api/core/agent/base_agent_runner.py @@ -32,7 +32,7 @@ from core.model_runtime.entities import ( from core.model_runtime.entities.message_entities import ImagePromptMessageContent, PromptMessageContentUnionTypes from core.model_runtime.entities.model_entities import ModelFeature from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel -from core.prompt.utils.extract_thread_messages import extract_thread_messages +from core.model_runtime.prompt.utils.extract_thread_messages import extract_thread_messages from core.tools.__base.tool import Tool from core.tools.entities.tool_entities import ( ToolParameter, diff --git a/api/core/agent/cot_agent_runner.py b/api/core/agent/cot_agent_runner.py index 0464afe194..0b5becc7e9 100644 --- a/api/core/agent/cot_agent_runner.py +++ b/api/core/agent/cot_agent_runner.py @@ -17,8 +17,8 @@ from core.model_runtime.entities.message_entities import ( ToolPromptMessage, UserPromptMessage, ) +from core.model_runtime.prompt.agent_history_prompt_transform import AgentHistoryPromptTransform from core.ops.ops_trace_manager import TraceQueueManager -from core.prompt.agent_history_prompt_transform import AgentHistoryPromptTransform from core.tools.__base.tool import Tool from core.tools.entities.tool_entities import ToolInvokeMeta from core.tools.tool_engine import ToolEngine diff --git a/api/core/agent/fc_agent_runner.py b/api/core/agent/fc_agent_runner.py index 633609f54f..6c05237ff9 100644 --- a/api/core/agent/fc_agent_runner.py +++ b/api/core/agent/fc_agent_runner.py @@ -21,7 +21,7 @@ from core.model_runtime.entities import ( UserPromptMessage, ) from core.model_runtime.entities.message_entities import ImagePromptMessageContent, PromptMessageContentUnionTypes -from core.prompt.agent_history_prompt_transform import AgentHistoryPromptTransform +from core.model_runtime.prompt.agent_history_prompt_transform import AgentHistoryPromptTransform from core.tools.entities.tool_entities import ToolInvokeMeta from core.tools.tool_engine import ToolEngine from core.workflow.file import file_manager diff --git a/api/core/app/app_config/easy_ui_based_app/prompt_template/manager.py b/api/core/app/app_config/easy_ui_based_app/prompt_template/manager.py index 21614c010c..f55c736dfb 100644 --- a/api/core/app/app_config/easy_ui_based_app/prompt_template/manager.py +++ b/api/core/app/app_config/easy_ui_based_app/prompt_template/manager.py @@ -5,7 +5,7 @@ from core.app.app_config.entities import ( PromptTemplateEntity, ) from core.model_runtime.entities.message_entities import PromptMessageRole -from core.prompt.simple_prompt_transform import ModelMode +from core.model_runtime.prompt.simple_prompt_transform import ModelMode from models.model import AppMode diff --git a/api/core/app/apps/advanced_chat/app_generator.py b/api/core/app/apps/advanced_chat/app_generator.py index 2891d3ceeb..051e8efe8b 100644 --- a/api/core/app/apps/advanced_chat/app_generator.py +++ b/api/core/app/apps/advanced_chat/app_generator.py @@ -32,8 +32,8 @@ from core.app.entities.task_entities import ChatbotAppBlockingResponse, ChatbotA from core.app.layers.pause_state_persist_layer import PauseStateLayerConfig, PauseStatePersistenceLayer from core.helper.trace_id_helper import extract_external_trace_id_from_args from core.model_runtime.errors.invoke import InvokeAuthorizationError +from core.model_runtime.prompt.utils.get_thread_messages_length import get_thread_messages_length from core.ops.ops_trace_manager import TraceQueueManager -from core.prompt.utils.get_thread_messages_length import get_thread_messages_length from core.repositories import DifyCoreRepositoryFactory from core.workflow.graph_engine.layers.base import GraphEngineLayer from core.workflow.repositories.draft_variable_repository import ( diff --git a/api/core/app/apps/base_app_runner.py b/api/core/app/apps/base_app_runner.py index b98e85dbe9..7ea049febf 100644 --- a/api/core/app/apps/base_app_runner.py +++ b/api/core/app/apps/base_app_runner.py @@ -33,10 +33,14 @@ from core.model_runtime.entities.message_entities import ( ) from core.model_runtime.entities.model_entities import ModelPropertyKey from core.model_runtime.errors.invoke import InvokeBadRequestError +from core.model_runtime.prompt.advanced_prompt_transform import AdvancedPromptTransform +from core.model_runtime.prompt.entities.advanced_prompt_entities import ( + ChatModelMessage, + CompletionModelPromptTemplate, + MemoryConfig, +) +from core.model_runtime.prompt.simple_prompt_transform import ModelMode, SimplePromptTransform from core.moderation.input_moderation import InputModeration -from core.prompt.advanced_prompt_transform import AdvancedPromptTransform -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig -from core.prompt.simple_prompt_transform import ModelMode, SimplePromptTransform from core.tools.tool_file_manager import ToolFileManager from core.workflow.file.enums import FileTransferMethod, FileType from extensions.ext_database import db diff --git a/api/core/app/apps/message_based_app_generator.py b/api/core/app/apps/message_based_app_generator.py index 4e9a191dae..7f0e9e9a48 100644 --- a/api/core/app/apps/message_based_app_generator.py +++ b/api/core/app/apps/message_based_app_generator.py @@ -27,7 +27,7 @@ from core.app.entities.task_entities import ( CompletionAppStreamResponse, ) from core.app.task_pipeline.easy_ui_based_generate_task_pipeline import EasyUIBasedGenerateTaskPipeline -from core.prompt.utils.prompt_template_parser import PromptTemplateParser +from core.model_runtime.prompt.utils.prompt_template_parser import PromptTemplateParser from extensions.ext_database import db from extensions.ext_redis import get_pubsub_broadcast_channel from libs.broadcast_channel.channel import Topic diff --git a/api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py b/api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py index 8792e65512..52835c7ee3 100644 --- a/api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py +++ b/api/core/app/task_pipeline/easy_ui_based_generate_task_pipeline.py @@ -52,10 +52,10 @@ from core.model_runtime.entities.message_entities import ( TextPromptMessageContent, ) from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel +from core.model_runtime.prompt.utils.prompt_message_util import PromptMessageUtil +from core.model_runtime.prompt.utils.prompt_template_parser import PromptTemplateParser from core.ops.entities.trace_entity import TraceTaskName from core.ops.ops_trace_manager import TraceQueueManager, TraceTask -from core.prompt.utils.prompt_message_util import PromptMessageUtil -from core.prompt.utils.prompt_template_parser import PromptTemplateParser from core.tools.signature import sign_tool_file from core.workflow.file import helpers as file_helpers from core.workflow.file.enums import FileTransferMethod diff --git a/api/core/app/workflow/node_factory.py b/api/core/app/workflow/node_factory.py index 41b8c9fd7b..e954452c05 100644 --- a/api/core/app/workflow/node_factory.py +++ b/api/core/app/workflow/node_factory.py @@ -14,7 +14,7 @@ from core.helper.ssrf_proxy import ssrf_proxy from core.model_manager import ModelInstance from core.model_runtime.entities.model_entities import ModelType from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel -from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.model_runtime.prompt.entities.advanced_prompt_entities import MemoryConfig from core.rag.retrieval.dataset_retrieval import DatasetRetrieval from core.tools.tool_file_manager import ToolFileManager from core.workflow.entities.graph_config import NodeConfigDict diff --git a/api/core/llm_generator/llm_generator.py b/api/core/llm_generator/llm_generator.py index 5b2c640265..5ca0244469 100644 --- a/api/core/llm_generator/llm_generator.py +++ b/api/core/llm_generator/llm_generator.py @@ -27,10 +27,10 @@ from core.model_runtime.entities.llm_entities import LLMResult from core.model_runtime.entities.message_entities import PromptMessage, SystemPromptMessage, UserPromptMessage from core.model_runtime.entities.model_entities import ModelType from core.model_runtime.errors.invoke import InvokeAuthorizationError, InvokeError +from core.model_runtime.prompt.utils.prompt_template_parser import PromptTemplateParser from core.ops.entities.trace_entity import TraceTaskName from core.ops.ops_trace_manager import TraceQueueManager, TraceTask from core.ops.utils import measure_time -from core.prompt.utils.prompt_template_parser import PromptTemplateParser from core.workflow.entities.workflow_node_execution import WorkflowNodeExecutionMetadataKey from extensions.ext_database import db from extensions.ext_storage import storage diff --git a/api/core/memory/token_buffer_memory.py b/api/core/memory/token_buffer_memory.py index 2b78a705c9..3fa0791af7 100644 --- a/api/core/memory/token_buffer_memory.py +++ b/api/core/memory/token_buffer_memory.py @@ -14,7 +14,7 @@ from core.model_runtime.entities import ( UserPromptMessage, ) from core.model_runtime.entities.message_entities import PromptMessageContentUnionTypes -from core.prompt.utils.extract_thread_messages import extract_thread_messages +from core.model_runtime.prompt.utils.extract_thread_messages import extract_thread_messages from core.workflow.file import file_manager from extensions.ext_database import db from factories import file_factory diff --git a/api/core/prompt/__init__.py b/api/core/model_runtime/prompt/__init__.py similarity index 100% rename from api/core/prompt/__init__.py rename to api/core/model_runtime/prompt/__init__.py diff --git a/api/core/prompt/advanced_prompt_transform.py b/api/core/model_runtime/prompt/advanced_prompt_transform.py similarity index 97% rename from api/core/prompt/advanced_prompt_transform.py rename to api/core/model_runtime/prompt/advanced_prompt_transform.py index 771b6be332..a148e9c07d 100644 --- a/api/core/prompt/advanced_prompt_transform.py +++ b/api/core/model_runtime/prompt/advanced_prompt_transform.py @@ -14,9 +14,13 @@ from core.model_runtime.entities import ( UserPromptMessage, ) from core.model_runtime.entities.message_entities import ImagePromptMessageContent, PromptMessageContentUnionTypes -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig -from core.prompt.prompt_transform import PromptTransform -from core.prompt.utils.prompt_template_parser import PromptTemplateParser +from core.model_runtime.prompt.entities.advanced_prompt_entities import ( + ChatModelMessage, + CompletionModelPromptTemplate, + MemoryConfig, +) +from core.model_runtime.prompt.prompt_transform import PromptTransform +from core.model_runtime.prompt.utils.prompt_template_parser import PromptTemplateParser from core.workflow.file import file_manager from core.workflow.file.models import File from core.workflow.runtime import VariablePool diff --git a/api/core/prompt/agent_history_prompt_transform.py b/api/core/model_runtime/prompt/agent_history_prompt_transform.py similarity index 97% rename from api/core/prompt/agent_history_prompt_transform.py rename to api/core/model_runtime/prompt/agent_history_prompt_transform.py index c1ae47709f..4d38881c88 100644 --- a/api/core/prompt/agent_history_prompt_transform.py +++ b/api/core/model_runtime/prompt/agent_history_prompt_transform.py @@ -10,7 +10,7 @@ from core.model_runtime.entities.message_entities import ( UserPromptMessage, ) from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel -from core.prompt.prompt_transform import PromptTransform +from core.model_runtime.prompt.prompt_transform import PromptTransform class AgentHistoryPromptTransform(PromptTransform): diff --git a/api/core/prompt/entities/__init__.py b/api/core/model_runtime/prompt/entities/__init__.py similarity index 100% rename from api/core/prompt/entities/__init__.py rename to api/core/model_runtime/prompt/entities/__init__.py diff --git a/api/core/prompt/entities/advanced_prompt_entities.py b/api/core/model_runtime/prompt/entities/advanced_prompt_entities.py similarity index 100% rename from api/core/prompt/entities/advanced_prompt_entities.py rename to api/core/model_runtime/prompt/entities/advanced_prompt_entities.py diff --git a/api/core/prompt/prompt_templates/__init__.py b/api/core/model_runtime/prompt/prompt_templates/__init__.py similarity index 100% rename from api/core/prompt/prompt_templates/__init__.py rename to api/core/model_runtime/prompt/prompt_templates/__init__.py diff --git a/api/core/prompt/prompt_templates/advanced_prompt_templates.py b/api/core/model_runtime/prompt/prompt_templates/advanced_prompt_templates.py similarity index 100% rename from api/core/prompt/prompt_templates/advanced_prompt_templates.py rename to api/core/model_runtime/prompt/prompt_templates/advanced_prompt_templates.py diff --git a/api/core/prompt/prompt_templates/baichuan_chat.json b/api/core/model_runtime/prompt/prompt_templates/baichuan_chat.json similarity index 100% rename from api/core/prompt/prompt_templates/baichuan_chat.json rename to api/core/model_runtime/prompt/prompt_templates/baichuan_chat.json diff --git a/api/core/prompt/prompt_templates/baichuan_completion.json b/api/core/model_runtime/prompt/prompt_templates/baichuan_completion.json similarity index 100% rename from api/core/prompt/prompt_templates/baichuan_completion.json rename to api/core/model_runtime/prompt/prompt_templates/baichuan_completion.json diff --git a/api/core/prompt/prompt_templates/common_chat.json b/api/core/model_runtime/prompt/prompt_templates/common_chat.json similarity index 100% rename from api/core/prompt/prompt_templates/common_chat.json rename to api/core/model_runtime/prompt/prompt_templates/common_chat.json diff --git a/api/core/prompt/prompt_templates/common_completion.json b/api/core/model_runtime/prompt/prompt_templates/common_completion.json similarity index 100% rename from api/core/prompt/prompt_templates/common_completion.json rename to api/core/model_runtime/prompt/prompt_templates/common_completion.json diff --git a/api/core/prompt/prompt_transform.py b/api/core/model_runtime/prompt/prompt_transform.py similarity index 98% rename from api/core/prompt/prompt_transform.py rename to api/core/model_runtime/prompt/prompt_transform.py index 22ef5809bb..71c4482aab 100644 --- a/api/core/prompt/prompt_transform.py +++ b/api/core/model_runtime/prompt/prompt_transform.py @@ -5,7 +5,7 @@ from core.memory.token_buffer_memory import TokenBufferMemory from core.model_manager import ModelInstance from core.model_runtime.entities.message_entities import PromptMessage from core.model_runtime.entities.model_entities import AIModelEntity, ModelPropertyKey -from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.model_runtime.prompt.entities.advanced_prompt_entities import MemoryConfig class PromptTransform: diff --git a/api/core/prompt/simple_prompt_transform.py b/api/core/model_runtime/prompt/simple_prompt_transform.py similarity index 98% rename from api/core/prompt/simple_prompt_transform.py rename to api/core/model_runtime/prompt/simple_prompt_transform.py index 936a093488..04bc8966c6 100644 --- a/api/core/prompt/simple_prompt_transform.py +++ b/api/core/model_runtime/prompt/simple_prompt_transform.py @@ -15,9 +15,9 @@ from core.model_runtime.entities.message_entities import ( TextPromptMessageContent, UserPromptMessage, ) -from core.prompt.entities.advanced_prompt_entities import MemoryConfig -from core.prompt.prompt_transform import PromptTransform -from core.prompt.utils.prompt_template_parser import PromptTemplateParser +from core.model_runtime.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.model_runtime.prompt.prompt_transform import PromptTransform +from core.model_runtime.prompt.utils.prompt_template_parser import PromptTemplateParser from core.workflow.file import file_manager from models.model import AppMode diff --git a/api/core/prompt/utils/__init__.py b/api/core/model_runtime/prompt/utils/__init__.py similarity index 100% rename from api/core/prompt/utils/__init__.py rename to api/core/model_runtime/prompt/utils/__init__.py diff --git a/api/core/prompt/utils/extract_thread_messages.py b/api/core/model_runtime/prompt/utils/extract_thread_messages.py similarity index 100% rename from api/core/prompt/utils/extract_thread_messages.py rename to api/core/model_runtime/prompt/utils/extract_thread_messages.py diff --git a/api/core/prompt/utils/get_thread_messages_length.py b/api/core/model_runtime/prompt/utils/get_thread_messages_length.py similarity index 88% rename from api/core/prompt/utils/get_thread_messages_length.py rename to api/core/model_runtime/prompt/utils/get_thread_messages_length.py index de64c27a73..c54fad5c16 100644 --- a/api/core/prompt/utils/get_thread_messages_length.py +++ b/api/core/model_runtime/prompt/utils/get_thread_messages_length.py @@ -1,6 +1,6 @@ from sqlalchemy import select -from core.prompt.utils.extract_thread_messages import extract_thread_messages +from core.model_runtime.prompt.utils.extract_thread_messages import extract_thread_messages from extensions.ext_database import db from models.model import Message diff --git a/api/core/prompt/utils/prompt_message_util.py b/api/core/model_runtime/prompt/utils/prompt_message_util.py similarity index 98% rename from api/core/prompt/utils/prompt_message_util.py rename to api/core/model_runtime/prompt/utils/prompt_message_util.py index 0a7a467227..4f9cb5c95e 100644 --- a/api/core/prompt/utils/prompt_message_util.py +++ b/api/core/model_runtime/prompt/utils/prompt_message_util.py @@ -10,7 +10,7 @@ from core.model_runtime.entities import ( PromptMessageRole, TextPromptMessageContent, ) -from core.prompt.simple_prompt_transform import ModelMode +from core.model_runtime.prompt.simple_prompt_transform import ModelMode class PromptMessageUtil: diff --git a/api/core/prompt/utils/prompt_template_parser.py b/api/core/model_runtime/prompt/utils/prompt_template_parser.py similarity index 100% rename from api/core/prompt/utils/prompt_template_parser.py rename to api/core/model_runtime/prompt/utils/prompt_template_parser.py diff --git a/api/core/rag/retrieval/dataset_retrieval.py b/api/core/rag/retrieval/dataset_retrieval.py index cfea8d114a..bd7301d20b 100644 --- a/api/core/rag/retrieval/dataset_retrieval.py +++ b/api/core/rag/retrieval/dataset_retrieval.py @@ -29,12 +29,12 @@ from core.model_runtime.entities.llm_entities import LLMResult, LLMUsage from core.model_runtime.entities.message_entities import PromptMessage, PromptMessageRole, PromptMessageTool from core.model_runtime.entities.model_entities import ModelFeature, ModelType from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel +from core.model_runtime.prompt.advanced_prompt_transform import AdvancedPromptTransform +from core.model_runtime.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate +from core.model_runtime.prompt.simple_prompt_transform import ModelMode from core.ops.entities.trace_entity import TraceTaskName from core.ops.ops_trace_manager import TraceQueueManager, TraceTask from core.ops.utils import measure_time -from core.prompt.advanced_prompt_transform import AdvancedPromptTransform -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate -from core.prompt.simple_prompt_transform import ModelMode from core.rag.data_post_processor.data_post_processor import DataPostProcessor from core.rag.datasource.keyword.jieba.jieba_keyword_table_handler import JiebaKeywordTableHandler from core.rag.datasource.retrieval_service import RetrievalService diff --git a/api/core/rag/retrieval/router/multi_dataset_react_route.py b/api/core/rag/retrieval/router/multi_dataset_react_route.py index 8f3bec2704..210245a71d 100644 --- a/api/core/rag/retrieval/router/multi_dataset_react_route.py +++ b/api/core/rag/retrieval/router/multi_dataset_react_route.py @@ -5,8 +5,8 @@ from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEnti from core.model_manager import ModelInstance from core.model_runtime.entities.llm_entities import LLMResult, LLMUsage from core.model_runtime.entities.message_entities import PromptMessage, PromptMessageRole, PromptMessageTool -from core.prompt.advanced_prompt_transform import AdvancedPromptTransform -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate +from core.model_runtime.prompt.advanced_prompt_transform import AdvancedPromptTransform +from core.model_runtime.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate from core.rag.retrieval.output_parser.react_output import ReactAction from core.rag.retrieval.output_parser.structured_chat import StructuredChatOutputParser from core.workflow.nodes.llm import llm_utils diff --git a/api/core/workflow/nodes/agent/entities.py b/api/core/workflow/nodes/agent/entities.py index 985ee5eef2..a6ac0e7e61 100644 --- a/api/core/workflow/nodes/agent/entities.py +++ b/api/core/workflow/nodes/agent/entities.py @@ -3,7 +3,7 @@ from typing import Any, Literal, Union from pydantic import BaseModel -from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.model_runtime.prompt.entities.advanced_prompt_entities import MemoryConfig from core.tools.entities.tool_entities import ToolSelector from core.workflow.nodes.base.entities import BaseNodeData diff --git a/api/core/workflow/nodes/llm/entities.py b/api/core/workflow/nodes/llm/entities.py index fe6f2290aa..1abfa9b54a 100644 --- a/api/core/workflow/nodes/llm/entities.py +++ b/api/core/workflow/nodes/llm/entities.py @@ -4,7 +4,11 @@ from typing import Any, Literal from pydantic import BaseModel, Field, field_validator from core.model_runtime.entities import ImagePromptMessageContent, LLMMode -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig +from core.model_runtime.prompt.entities.advanced_prompt_entities import ( + ChatModelMessage, + CompletionModelPromptTemplate, + MemoryConfig, +) from core.workflow.nodes.base import BaseNodeData from core.workflow.nodes.base.entities import VariableSelector diff --git a/api/core/workflow/nodes/llm/llm_utils.py b/api/core/workflow/nodes/llm/llm_utils.py index f753e19897..fdaf565a6f 100644 --- a/api/core/workflow/nodes/llm/llm_utils.py +++ b/api/core/workflow/nodes/llm/llm_utils.py @@ -11,7 +11,7 @@ from core.model_manager import ModelInstance from core.model_runtime.entities.llm_entities import LLMUsage from core.model_runtime.entities.model_entities import AIModelEntity from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel -from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.model_runtime.prompt.entities.advanced_prompt_entities import MemoryConfig from core.workflow.enums import SystemVariableKey from core.workflow.file.models import File from core.workflow.runtime import VariablePool diff --git a/api/core/workflow/nodes/llm/node.py b/api/core/workflow/nodes/llm/node.py index 057a144e89..60996f098d 100644 --- a/api/core/workflow/nodes/llm/node.py +++ b/api/core/workflow/nodes/llm/node.py @@ -37,9 +37,9 @@ from core.model_runtime.entities.message_entities import ( UserPromptMessage, ) from core.model_runtime.entities.model_entities import ModelFeature, ModelPropertyKey +from core.model_runtime.prompt.entities.advanced_prompt_entities import CompletionModelPromptTemplate, MemoryConfig +from core.model_runtime.prompt.utils.prompt_message_util import PromptMessageUtil from core.model_runtime.utils.encoders import jsonable_encoder -from core.prompt.entities.advanced_prompt_entities import CompletionModelPromptTemplate, MemoryConfig -from core.prompt.utils.prompt_message_util import PromptMessageUtil from core.rag.entities.citation_metadata import RetrievalSourceMetadata from core.tools.signature import sign_upload_file from core.workflow.constants import SYSTEM_VARIABLE_NODE_ID diff --git a/api/core/workflow/nodes/parameter_extractor/entities.py b/api/core/workflow/nodes/parameter_extractor/entities.py index 90d78ae429..4d21c6f53e 100644 --- a/api/core/workflow/nodes/parameter_extractor/entities.py +++ b/api/core/workflow/nodes/parameter_extractor/entities.py @@ -7,7 +7,7 @@ from pydantic import ( field_validator, ) -from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.model_runtime.prompt.entities.advanced_prompt_entities import MemoryConfig from core.workflow.nodes.base import BaseNodeData from core.workflow.nodes.llm.entities import ModelConfig, VisionConfig from core.workflow.variables.types import SegmentType diff --git a/api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py b/api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py index 66ef17e585..eb1eb53143 100644 --- a/api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py +++ b/api/core/workflow/nodes/parameter_extractor/parameter_extractor_node.py @@ -19,11 +19,11 @@ from core.model_runtime.entities.message_entities import ( ) from core.model_runtime.entities.model_entities import ModelFeature, ModelPropertyKey from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel +from core.model_runtime.prompt.advanced_prompt_transform import AdvancedPromptTransform +from core.model_runtime.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate +from core.model_runtime.prompt.simple_prompt_transform import ModelMode +from core.model_runtime.prompt.utils.prompt_message_util import PromptMessageUtil from core.model_runtime.utils.encoders import jsonable_encoder -from core.prompt.advanced_prompt_transform import AdvancedPromptTransform -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate -from core.prompt.simple_prompt_transform import ModelMode -from core.prompt.utils.prompt_message_util import PromptMessageUtil from core.workflow.enums import NodeType, WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus from core.workflow.file import File from core.workflow.node_events import NodeRunResult diff --git a/api/core/workflow/nodes/question_classifier/entities.py b/api/core/workflow/nodes/question_classifier/entities.py index edde30708a..edefae07c3 100644 --- a/api/core/workflow/nodes/question_classifier/entities.py +++ b/api/core/workflow/nodes/question_classifier/entities.py @@ -1,6 +1,6 @@ from pydantic import BaseModel, Field -from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.model_runtime.prompt.entities.advanced_prompt_entities import MemoryConfig from core.workflow.nodes.base import BaseNodeData from core.workflow.nodes.llm import ModelConfig, VisionConfig diff --git a/api/core/workflow/nodes/question_classifier/question_classifier_node.py b/api/core/workflow/nodes/question_classifier/question_classifier_node.py index 464d9b6b9c..59562ef7d7 100644 --- a/api/core/workflow/nodes/question_classifier/question_classifier_node.py +++ b/api/core/workflow/nodes/question_classifier/question_classifier_node.py @@ -6,9 +6,9 @@ from typing import TYPE_CHECKING, Any from core.memory.token_buffer_memory import TokenBufferMemory from core.model_manager import ModelInstance from core.model_runtime.entities import LLMUsage, ModelPropertyKey, PromptMessageRole +from core.model_runtime.prompt.simple_prompt_transform import ModelMode +from core.model_runtime.prompt.utils.prompt_message_util import PromptMessageUtil from core.model_runtime.utils.encoders import jsonable_encoder -from core.prompt.simple_prompt_transform import ModelMode -from core.prompt.utils.prompt_message_util import PromptMessageUtil from core.workflow.entities import GraphInitParams from core.workflow.enums import ( NodeExecutionType, diff --git a/api/services/advanced_prompt_template_service.py b/api/services/advanced_prompt_template_service.py index f2ffa3b170..a9ea0b75c5 100644 --- a/api/services/advanced_prompt_template_service.py +++ b/api/services/advanced_prompt_template_service.py @@ -1,6 +1,6 @@ import copy -from core.prompt.prompt_templates.advanced_prompt_templates import ( +from core.model_runtime.prompt.prompt_templates.advanced_prompt_templates import ( BAICHUAN_CHAT_APP_CHAT_PROMPT_CONFIG, BAICHUAN_CHAT_APP_COMPLETION_PROMPT_CONFIG, BAICHUAN_COMPLETION_APP_CHAT_PROMPT_CONFIG, diff --git a/api/services/workflow/workflow_converter.py b/api/services/workflow/workflow_converter.py index 809151b91a..4576eca313 100644 --- a/api/services/workflow/workflow_converter.py +++ b/api/services/workflow/workflow_converter.py @@ -15,9 +15,9 @@ from core.app.apps.chat.app_config_manager import ChatAppConfigManager from core.app.apps.completion.app_config_manager import CompletionAppConfigManager from core.helper import encrypter from core.model_runtime.entities.llm_entities import LLMMode +from core.model_runtime.prompt.simple_prompt_transform import SimplePromptTransform +from core.model_runtime.prompt.utils.prompt_template_parser import PromptTemplateParser from core.model_runtime.utils.encoders import jsonable_encoder -from core.prompt.simple_prompt_transform import SimplePromptTransform -from core.prompt.utils.prompt_template_parser import PromptTemplateParser from core.workflow.file.models import FileUploadConfig from core.workflow.nodes import NodeType from events.app_event import app_was_created diff --git a/api/tests/test_containers_integration_tests/services/test_advanced_prompt_template_service.py b/api/tests/test_containers_integration_tests/services/test_advanced_prompt_template_service.py index 3ec265d009..dab08abdfd 100644 --- a/api/tests/test_containers_integration_tests/services/test_advanced_prompt_template_service.py +++ b/api/tests/test_containers_integration_tests/services/test_advanced_prompt_template_service.py @@ -3,7 +3,7 @@ import copy import pytest from faker import Faker -from core.prompt.prompt_templates.advanced_prompt_templates import ( +from core.model_runtime.prompt.prompt_templates.advanced_prompt_templates import ( BAICHUAN_CHAT_APP_CHAT_PROMPT_CONFIG, BAICHUAN_CHAT_APP_COMPLETION_PROMPT_CONFIG, BAICHUAN_COMPLETION_APP_CHAT_PROMPT_CONFIG, diff --git a/api/tests/test_containers_integration_tests/services/workflow/test_workflow_converter.py b/api/tests/test_containers_integration_tests/services/workflow/test_workflow_converter.py index 2c5e719a58..dd67deb109 100644 --- a/api/tests/test_containers_integration_tests/services/workflow/test_workflow_converter.py +++ b/api/tests/test_containers_integration_tests/services/workflow/test_workflow_converter.py @@ -14,7 +14,7 @@ from core.app.app_config.entities import ( VariableEntityType, ) from core.model_runtime.entities.llm_entities import LLMMode -from core.prompt.utils.prompt_template_parser import PromptTemplateParser +from core.model_runtime.prompt.utils.prompt_template_parser import PromptTemplateParser from models import Account, Tenant from models.api_based_extension import APIBasedExtension from models.model import App, AppMode, AppModelConfig diff --git a/api/tests/unit_tests/core/prompt/__init__.py b/api/tests/unit_tests/core/model_runtime/prompt/__init__.py similarity index 100% rename from api/tests/unit_tests/core/prompt/__init__.py rename to api/tests/unit_tests/core/model_runtime/prompt/__init__.py diff --git a/api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py b/api/tests/unit_tests/core/model_runtime/prompt/test_advanced_prompt_transform.py similarity index 95% rename from api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py rename to api/tests/unit_tests/core/model_runtime/prompt/test_advanced_prompt_transform.py index 1d25639343..376ad63df1 100644 --- a/api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py +++ b/api/tests/unit_tests/core/model_runtime/prompt/test_advanced_prompt_transform.py @@ -11,9 +11,13 @@ from core.model_runtime.entities.message_entities import ( PromptMessageRole, UserPromptMessage, ) -from core.prompt.advanced_prompt_transform import AdvancedPromptTransform -from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig -from core.prompt.utils.prompt_template_parser import PromptTemplateParser +from core.model_runtime.prompt.advanced_prompt_transform import AdvancedPromptTransform +from core.model_runtime.prompt.entities.advanced_prompt_entities import ( + ChatModelMessage, + CompletionModelPromptTemplate, + MemoryConfig, +) +from core.model_runtime.prompt.utils.prompt_template_parser import PromptTemplateParser from core.workflow.file import File, FileTransferMethod, FileType from models.model import Conversation diff --git a/api/tests/unit_tests/core/prompt/test_agent_history_prompt_transform.py b/api/tests/unit_tests/core/model_runtime/prompt/test_agent_history_prompt_transform.py similarity index 96% rename from api/tests/unit_tests/core/prompt/test_agent_history_prompt_transform.py rename to api/tests/unit_tests/core/model_runtime/prompt/test_agent_history_prompt_transform.py index d157a41d2c..9886b13b7c 100644 --- a/api/tests/unit_tests/core/prompt/test_agent_history_prompt_transform.py +++ b/api/tests/unit_tests/core/model_runtime/prompt/test_agent_history_prompt_transform.py @@ -12,7 +12,7 @@ from core.model_runtime.entities.message_entities import ( UserPromptMessage, ) from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel -from core.prompt.agent_history_prompt_transform import AgentHistoryPromptTransform +from core.model_runtime.prompt.agent_history_prompt_transform import AgentHistoryPromptTransform from models.model import Conversation diff --git a/api/tests/unit_tests/core/prompt/test_extract_thread_messages.py b/api/tests/unit_tests/core/model_runtime/prompt/test_extract_thread_messages.py similarity index 96% rename from api/tests/unit_tests/core/prompt/test_extract_thread_messages.py rename to api/tests/unit_tests/core/model_runtime/prompt/test_extract_thread_messages.py index e3e500e310..974dcb1902 100644 --- a/api/tests/unit_tests/core/prompt/test_extract_thread_messages.py +++ b/api/tests/unit_tests/core/model_runtime/prompt/test_extract_thread_messages.py @@ -1,7 +1,7 @@ from uuid import uuid4 from constants import UUID_NIL -from core.prompt.utils.extract_thread_messages import extract_thread_messages +from core.model_runtime.prompt.utils.extract_thread_messages import extract_thread_messages class MockMessage: diff --git a/api/tests/unit_tests/core/prompt/test_prompt_message.py b/api/tests/unit_tests/core/model_runtime/prompt/test_prompt_message.py similarity index 100% rename from api/tests/unit_tests/core/prompt/test_prompt_message.py rename to api/tests/unit_tests/core/model_runtime/prompt/test_prompt_message.py diff --git a/api/tests/unit_tests/core/prompt/test_prompt_transform.py b/api/tests/unit_tests/core/model_runtime/prompt/test_prompt_transform.py similarity index 97% rename from api/tests/unit_tests/core/prompt/test_prompt_transform.py rename to api/tests/unit_tests/core/model_runtime/prompt/test_prompt_transform.py index 16896a0c6c..b4313ed265 100644 --- a/api/tests/unit_tests/core/prompt/test_prompt_transform.py +++ b/api/tests/unit_tests/core/model_runtime/prompt/test_prompt_transform.py @@ -6,7 +6,7 @@ # from core.model_runtime.entities.model_entities import AIModelEntity, ModelPropertyKey, ParameterRule # from core.model_runtime.entities.provider_entities import ProviderEntity # from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel -# from core.prompt.prompt_transform import PromptTransform +# from core.model_runtime.prompt.prompt_transform import PromptTransform # def test__calculate_rest_token(): diff --git a/api/tests/unit_tests/core/prompt/test_simple_prompt_transform.py b/api/tests/unit_tests/core/model_runtime/prompt/test_simple_prompt_transform.py similarity index 99% rename from api/tests/unit_tests/core/prompt/test_simple_prompt_transform.py rename to api/tests/unit_tests/core/model_runtime/prompt/test_simple_prompt_transform.py index c822ecbe78..3422ac9c3d 100644 --- a/api/tests/unit_tests/core/prompt/test_simple_prompt_transform.py +++ b/api/tests/unit_tests/core/model_runtime/prompt/test_simple_prompt_transform.py @@ -3,7 +3,7 @@ from unittest.mock import MagicMock from core.app.entities.app_invoke_entities import ModelConfigWithCredentialsEntity from core.memory.token_buffer_memory import TokenBufferMemory from core.model_runtime.entities.message_entities import AssistantPromptMessage, UserPromptMessage -from core.prompt.simple_prompt_transform import SimplePromptTransform +from core.model_runtime.prompt.simple_prompt_transform import SimplePromptTransform from models.model import AppMode, Conversation diff --git a/api/tests/unit_tests/core/workflow/nodes/llm/test_node.py b/api/tests/unit_tests/core/workflow/nodes/llm/test_node.py index 94b5b72ee1..084c729659 100644 --- a/api/tests/unit_tests/core/workflow/nodes/llm/test_node.py +++ b/api/tests/unit_tests/core/workflow/nodes/llm/test_node.py @@ -21,7 +21,7 @@ from core.model_runtime.entities.message_entities import ( ) from core.model_runtime.entities.model_entities import AIModelEntity, FetchFrom, ModelType from core.model_runtime.model_providers.model_provider_factory import ModelProviderFactory -from core.prompt.entities.advanced_prompt_entities import MemoryConfig +from core.model_runtime.prompt.entities.advanced_prompt_entities import MemoryConfig from core.workflow.entities import GraphInitParams from core.workflow.file import File, FileTransferMethod, FileType from core.workflow.nodes.llm import llm_utils