diff --git a/api/core/agent/base_agent_runner.py b/api/core/agent/base_agent_runner.py index 0658124d14..1474c6a475 100644 --- a/api/core/agent/base_agent_runner.py +++ b/api/core/agent/base_agent_runner.py @@ -5,8 +5,8 @@ from datetime import datetime from mimetypes import guess_extension from typing import Optional, Union, cast -from core.app.base_app_runner import AppRunner from core.app.app_queue_manager import AppQueueManager +from core.app.base_app_runner import AppRunner from core.callback_handler.agent_tool_callback_handler import DifyAgentCallbackHandler from core.callback_handler.index_tool_callback_handler import DatasetIndexToolCallbackHandler from core.entities.application_entities import ( diff --git a/api/core/agent/cot_agent_runner.py b/api/core/agent/cot_agent_runner.py index 152e445795..5650113f47 100644 --- a/api/core/agent/cot_agent_runner.py +++ b/api/core/agent/cot_agent_runner.py @@ -3,9 +3,9 @@ import re from collections.abc import Generator from typing import Literal, Union +from core.agent.base_agent_runner import BaseAgentRunner from core.app.app_queue_manager import PublishFrom from core.entities.application_entities import AgentPromptEntity, AgentScratchpadUnit -from core.agent.base_agent_runner import BaseAgentRunner from core.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk, LLMResultChunkDelta, LLMUsage from core.model_runtime.entities.message_entities import ( AssistantPromptMessage, diff --git a/api/core/agent/fc_agent_runner.py b/api/core/agent/fc_agent_runner.py index 0cf0d3762c..9b238bf232 100644 --- a/api/core/agent/fc_agent_runner.py +++ b/api/core/agent/fc_agent_runner.py @@ -3,8 +3,8 @@ import logging from collections.abc import Generator from typing import Any, Union -from core.app.app_queue_manager import PublishFrom from core.agent.base_agent_runner import BaseAgentRunner +from core.app.app_queue_manager import PublishFrom from core.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk, LLMResultChunkDelta, LLMUsage from core.model_runtime.entities.message_entities import ( AssistantPromptMessage, diff --git a/api/core/app/agent_chat/app_runner.py b/api/core/app/agent_chat/app_runner.py index b046e935a5..38789348ad 100644 --- a/api/core/app/agent_chat/app_runner.py +++ b/api/core/app/agent_chat/app_runner.py @@ -1,11 +1,11 @@ import logging from typing import cast -from core.app.base_app_runner import AppRunner -from core.app.app_queue_manager import AppQueueManager, PublishFrom -from core.entities.application_entities import AgentEntity, ApplicationGenerateEntity, ModelConfigEntity from core.agent.cot_agent_runner import CotAgentRunner from core.agent.fc_agent_runner import FunctionCallAgentRunner +from core.app.app_queue_manager import AppQueueManager, PublishFrom +from core.app.base_app_runner import AppRunner +from core.entities.application_entities import AgentEntity, ApplicationGenerateEntity, ModelConfigEntity from core.memory.token_buffer_memory import TokenBufferMemory from core.model_manager import ModelInstance from core.model_runtime.entities.llm_entities import LLMUsage diff --git a/api/core/app/agent_chat/config_validator.py b/api/core/app/agent_chat/config_validator.py index 6596b19f99..82bc40bd9b 100644 --- a/api/core/app/agent_chat/config_validator.py +++ b/api/core/app/agent_chat/config_validator.py @@ -1,6 +1,5 @@ import uuid -from core.entities.agent_entities import PlanningStrategy from core.app.validators.dataset_retrieval import DatasetValidator from core.app.validators.external_data_fetch import ExternalDataFetchValidator from core.app.validators.file_upload import FileUploadValidator @@ -13,9 +12,9 @@ from core.app.validators.speech_to_text import SpeechToTextValidator from core.app.validators.suggested_questions import SuggestedQuestionsValidator from core.app.validators.text_to_speech import TextToSpeechValidator from core.app.validators.user_input_form import UserInputFormValidator +from core.entities.agent_entities import PlanningStrategy from models.model import AppMode - OLD_TOOLS = ["dataset", "google_search", "web_reader", "wikipedia", "current_datetime"] diff --git a/api/core/app/app_manager.py b/api/core/app/app_manager.py index 0819ed864b..86c8d2cfc7 100644 --- a/api/core/app/app_manager.py +++ b/api/core/app/app_manager.py @@ -8,11 +8,11 @@ from typing import Any, Optional, Union, cast from flask import Flask, current_app from pydantic import ValidationError -from core.app.app_orchestration_config_converter import AppOrchestrationConfigConverter from core.app.agent_chat.app_runner import AgentChatAppRunner +from core.app.app_orchestration_config_converter import AppOrchestrationConfigConverter +from core.app.app_queue_manager import AppQueueManager, ConversationTaskStoppedException, PublishFrom from core.app.chat.app_runner import ChatAppRunner from core.app.generate_task_pipeline import GenerateTaskPipeline -from core.app.app_queue_manager import AppQueueManager, ConversationTaskStoppedException, PublishFrom from core.entities.application_entities import ( ApplicationGenerateEntity, InvokeFrom, diff --git a/api/core/app/app_orchestration_config_converter.py b/api/core/app/app_orchestration_config_converter.py index ddf49949a3..1d429ee6d9 100644 --- a/api/core/app/app_orchestration_config_converter.py +++ b/api/core/app/app_orchestration_config_converter.py @@ -1,11 +1,24 @@ from typing import cast -from core.entities.application_entities import AppOrchestrationConfigEntity, SensitiveWordAvoidanceEntity, \ - TextToSpeechEntity, DatasetRetrieveConfigEntity, DatasetEntity, AgentPromptEntity, AgentEntity, AgentToolEntity, \ - ExternalDataVariableEntity, VariableEntity, AdvancedCompletionPromptTemplateEntity, PromptTemplateEntity, \ - AdvancedChatPromptTemplateEntity, ModelConfigEntity, FileUploadEntity +from core.entities.application_entities import ( + AdvancedChatPromptTemplateEntity, + AdvancedCompletionPromptTemplateEntity, + AgentEntity, + AgentPromptEntity, + AgentToolEntity, + AppOrchestrationConfigEntity, + DatasetEntity, + DatasetRetrieveConfigEntity, + ExternalDataVariableEntity, + FileUploadEntity, + ModelConfigEntity, + PromptTemplateEntity, + SensitiveWordAvoidanceEntity, + TextToSpeechEntity, + VariableEntity, +) from core.entities.model_entities import ModelStatus -from core.errors.error import ProviderTokenNotInitError, ModelCurrentlyNotSupportError, QuotaExceededError +from core.errors.error import ModelCurrentlyNotSupportError, ProviderTokenNotInitError, QuotaExceededError from core.model_runtime.entities.message_entities import PromptMessageRole from core.model_runtime.entities.model_entities import ModelType from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel diff --git a/api/core/app/base_app_runner.py b/api/core/app/base_app_runner.py index 788e3f91a3..2760d04180 100644 --- a/api/core/app/base_app_runner.py +++ b/api/core/app/base_app_runner.py @@ -3,6 +3,8 @@ from collections.abc import Generator from typing import Optional, Union, cast from core.app.app_queue_manager import AppQueueManager, PublishFrom +from core.app.features.annotation_reply.annotation_reply import AnnotationReplyFeature +from core.app.features.hosting_moderation.hosting_moderation import HostingModerationFeature from core.entities.application_entities import ( ApplicationGenerateEntity, AppOrchestrationConfigEntity, @@ -11,10 +13,7 @@ from core.entities.application_entities import ( ModelConfigEntity, PromptTemplateEntity, ) -from core.app.features.annotation_reply.annotation_reply import AnnotationReplyFeature from core.external_data_tool.external_data_fetch import ExternalDataFetch -from core.app.features.hosting_moderation.hosting_moderation import HostingModerationFeature -from core.moderation.input_moderation import InputModeration from core.file.file_obj import FileObj from core.memory.token_buffer_memory import TokenBufferMemory from core.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk, LLMResultChunkDelta, LLMUsage @@ -22,6 +21,7 @@ from core.model_runtime.entities.message_entities import AssistantPromptMessage, from core.model_runtime.entities.model_entities import ModelPropertyKey from core.model_runtime.errors.invoke import InvokeBadRequestError from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel +from core.moderation.input_moderation import InputModeration from core.prompt.advanced_prompt_transform import AdvancedPromptTransform from core.prompt.simple_prompt_transform import SimplePromptTransform from models.model import App, AppMode, Message, MessageAnnotation diff --git a/api/core/app/chat/app_runner.py b/api/core/app/chat/app_runner.py index a1613e37a2..a1eccab13a 100644 --- a/api/core/app/chat/app_runner.py +++ b/api/core/app/chat/app_runner.py @@ -1,8 +1,8 @@ import logging from typing import Optional -from core.app.base_app_runner import AppRunner from core.app.app_queue_manager import AppQueueManager, PublishFrom +from core.app.base_app_runner import AppRunner from core.callback_handler.index_tool_callback_handler import DatasetIndexToolCallbackHandler from core.entities.application_entities import ( ApplicationGenerateEntity, @@ -10,10 +10,10 @@ from core.entities.application_entities import ( InvokeFrom, ModelConfigEntity, ) -from core.rag.retrieval.dataset_retrieval import DatasetRetrieval from core.memory.token_buffer_memory import TokenBufferMemory from core.model_manager import ModelInstance from core.moderation.base import ModerationException +from core.rag.retrieval.dataset_retrieval import DatasetRetrieval from extensions.ext_database import db from models.model import App, AppMode, Conversation, Message diff --git a/api/core/app/completion/app_runner.py b/api/core/app/completion/app_runner.py index 34c6a5156f..3ac182b34e 100644 --- a/api/core/app/completion/app_runner.py +++ b/api/core/app/completion/app_runner.py @@ -1,8 +1,8 @@ import logging from typing import Optional -from core.app.base_app_runner import AppRunner from core.app.app_queue_manager import AppQueueManager, PublishFrom +from core.app.base_app_runner import AppRunner from core.callback_handler.index_tool_callback_handler import DatasetIndexToolCallbackHandler from core.entities.application_entities import ( ApplicationGenerateEntity, @@ -10,10 +10,10 @@ from core.entities.application_entities import ( InvokeFrom, ModelConfigEntity, ) -from core.rag.retrieval.dataset_retrieval import DatasetRetrieval from core.memory.token_buffer_memory import TokenBufferMemory from core.model_manager import ModelInstance from core.moderation.base import ModerationException +from core.rag.retrieval.dataset_retrieval import DatasetRetrieval from extensions.ext_database import db from models.model import App, AppMode, Conversation, Message diff --git a/api/core/app/generate_task_pipeline.py b/api/core/app/generate_task_pipeline.py index 6d52fa7348..dc6ea2db79 100644 --- a/api/core/app/generate_task_pipeline.py +++ b/api/core/app/generate_task_pipeline.py @@ -6,7 +6,6 @@ from typing import Optional, Union, cast from pydantic import BaseModel -from core.moderation.output_moderation import ModerationRule, OutputModeration from core.app.app_queue_manager import AppQueueManager, PublishFrom from core.entities.application_entities import ApplicationGenerateEntity, InvokeFrom from core.entities.queue_entities import ( @@ -35,6 +34,7 @@ from core.model_runtime.entities.message_entities import ( from core.model_runtime.errors.invoke import InvokeAuthorizationError, InvokeError from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel from core.model_runtime.utils.encoders import jsonable_encoder +from core.moderation.output_moderation import ModerationRule, OutputModeration from core.prompt.utils.prompt_template_parser import PromptTemplateParser from core.tools.tool_file_manager import ToolFileManager from events.message_event import message_was_created diff --git a/api/core/llm_generator/llm_generator.py b/api/core/llm_generator/llm_generator.py index 6ce70df703..1a6b71fb0a 100644 --- a/api/core/llm_generator/llm_generator.py +++ b/api/core/llm_generator/llm_generator.py @@ -3,14 +3,14 @@ import logging from langchain.schema import OutputParserException +from core.llm_generator.output_parser.rule_config_generator import RuleConfigGeneratorOutputParser +from core.llm_generator.output_parser.suggested_questions_after_answer import SuggestedQuestionsAfterAnswerOutputParser +from core.llm_generator.prompts import CONVERSATION_TITLE_PROMPT, GENERATOR_QA_PROMPT from core.model_manager import ModelManager from core.model_runtime.entities.message_entities import SystemPromptMessage, UserPromptMessage from core.model_runtime.entities.model_entities import ModelType from core.model_runtime.errors.invoke import InvokeAuthorizationError, InvokeError -from core.llm_generator.output_parser.rule_config_generator import RuleConfigGeneratorOutputParser -from core.llm_generator.output_parser.suggested_questions_after_answer import SuggestedQuestionsAfterAnswerOutputParser from core.prompt.utils.prompt_template_parser import PromptTemplateParser -from core.llm_generator.prompts import CONVERSATION_TITLE_PROMPT, GENERATOR_QA_PROMPT class LLMGenerator: diff --git a/api/core/llm_generator/output_parser/suggested_questions_after_answer.py b/api/core/llm_generator/output_parser/suggested_questions_after_answer.py index 4fa277b2ed..528092fd7a 100644 --- a/api/core/llm_generator/output_parser/suggested_questions_after_answer.py +++ b/api/core/llm_generator/output_parser/suggested_questions_after_answer.py @@ -4,8 +4,8 @@ from typing import Any from langchain.schema import BaseOutputParser -from core.model_runtime.errors.invoke import InvokeError from core.llm_generator.prompts import SUGGESTED_QUESTIONS_AFTER_ANSWER_INSTRUCTION_PROMPT +from core.model_runtime.errors.invoke import InvokeError class SuggestedQuestionsAfterAnswerOutputParser(BaseOutputParser): diff --git a/api/core/prompt/advanced_prompt_transform.py b/api/core/prompt/advanced_prompt_transform.py index 6178453920..6d0a1d31f5 100644 --- a/api/core/prompt/advanced_prompt_transform.py +++ b/api/core/prompt/advanced_prompt_transform.py @@ -15,9 +15,9 @@ from core.model_runtime.entities.message_entities import ( TextPromptMessageContent, UserPromptMessage, ) -from core.prompt.utils.prompt_template_parser import PromptTemplateParser from core.prompt.prompt_transform import PromptTransform from core.prompt.simple_prompt_transform import ModelMode +from core.prompt.utils.prompt_template_parser import PromptTemplateParser class AdvancedPromptTransform(PromptTransform): diff --git a/api/core/prompt/simple_prompt_transform.py b/api/core/prompt/simple_prompt_transform.py index f3a03b01c7..af7b695bb3 100644 --- a/api/core/prompt/simple_prompt_transform.py +++ b/api/core/prompt/simple_prompt_transform.py @@ -15,8 +15,8 @@ from core.model_runtime.entities.message_entities import ( TextPromptMessageContent, UserPromptMessage, ) -from core.prompt.utils.prompt_template_parser import PromptTemplateParser from core.prompt.prompt_transform import PromptTransform +from core.prompt.utils.prompt_template_parser import PromptTemplateParser from models.model import AppMode diff --git a/api/core/rag/retrieval/agent/llm_chain.py b/api/core/rag/retrieval/agent/llm_chain.py index d07ee0a582..087b7bfa2c 100644 --- a/api/core/rag/retrieval/agent/llm_chain.py +++ b/api/core/rag/retrieval/agent/llm_chain.py @@ -7,9 +7,9 @@ from langchain.schema.language_model import BaseLanguageModel from core.entities.application_entities import ModelConfigEntity from core.entities.message_entities import lc_messages_to_prompt_messages +from core.model_manager import ModelInstance from core.rag.retrieval.agent.agent_llm_callback import AgentLLMCallback from core.rag.retrieval.agent.fake_llm import FakeLLM -from core.model_manager import ModelInstance class LLMChain(LCLLMChain): diff --git a/api/core/rag/retrieval/agent/multi_dataset_router_agent.py b/api/core/rag/retrieval/agent/multi_dataset_router_agent.py index 8cc2e29743..41a0c54041 100644 --- a/api/core/rag/retrieval/agent/multi_dataset_router_agent.py +++ b/api/core/rag/retrieval/agent/multi_dataset_router_agent.py @@ -12,9 +12,9 @@ from pydantic import root_validator from core.entities.application_entities import ModelConfigEntity from core.entities.message_entities import lc_messages_to_prompt_messages -from core.rag.retrieval.agent.fake_llm import FakeLLM from core.model_manager import ModelInstance from core.model_runtime.entities.message_entities import PromptMessageTool +from core.rag.retrieval.agent.fake_llm import FakeLLM class MultiDatasetRouterAgent(OpenAIFunctionsAgent): diff --git a/api/core/rag/retrieval/agent_based_dataset_executor.py b/api/core/rag/retrieval/agent_based_dataset_executor.py index f1ccf986e9..7fabf71bed 100644 --- a/api/core/rag/retrieval/agent_based_dataset_executor.py +++ b/api/core/rag/retrieval/agent_based_dataset_executor.py @@ -10,13 +10,13 @@ from pydantic import BaseModel, Extra from core.entities.agent_entities import PlanningStrategy from core.entities.application_entities import ModelConfigEntity from core.entities.message_entities import prompt_messages_to_lc_messages +from core.helper import moderation +from core.memory.token_buffer_memory import TokenBufferMemory +from core.model_runtime.errors.invoke import InvokeError from core.rag.retrieval.agent.agent_llm_callback import AgentLLMCallback from core.rag.retrieval.agent.multi_dataset_router_agent import MultiDatasetRouterAgent from core.rag.retrieval.agent.output_parser.structured_chat import StructuredChatOutputParser from core.rag.retrieval.agent.structed_multi_dataset_router_agent import StructuredMultiDatasetRouterAgent -from core.helper import moderation -from core.memory.token_buffer_memory import TokenBufferMemory -from core.model_runtime.errors.invoke import InvokeError from core.tools.tool.dataset_retriever.dataset_multi_retriever_tool import DatasetMultiRetrieverTool from core.tools.tool.dataset_retriever.dataset_retriever_tool import DatasetRetrieverTool diff --git a/api/core/rag/retrieval/dataset_retrieval.py b/api/core/rag/retrieval/dataset_retrieval.py index 07682389d6..21e16c4162 100644 --- a/api/core/rag/retrieval/dataset_retrieval.py +++ b/api/core/rag/retrieval/dataset_retrieval.py @@ -5,10 +5,10 @@ from langchain.tools import BaseTool from core.callback_handler.index_tool_callback_handler import DatasetIndexToolCallbackHandler from core.entities.agent_entities import PlanningStrategy from core.entities.application_entities import DatasetEntity, DatasetRetrieveConfigEntity, InvokeFrom, ModelConfigEntity -from core.rag.retrieval.agent_based_dataset_executor import AgentConfiguration, AgentExecutor from core.memory.token_buffer_memory import TokenBufferMemory from core.model_runtime.entities.model_entities import ModelFeature from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel +from core.rag.retrieval.agent_based_dataset_executor import AgentConfiguration, AgentExecutor from core.tools.tool.dataset_retriever.dataset_multi_retriever_tool import DatasetMultiRetrieverTool from core.tools.tool.dataset_retriever.dataset_retriever_tool import DatasetRetrieverTool from extensions.ext_database import db