feat: Resources authorization (#3183)

This commit is contained in:
shaohuzhang1 2025-06-04 13:05:39 +08:00 committed by GitHub
parent 596dbedd39
commit bc03deabfc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
133 changed files with 462 additions and 216 deletions

View File

@ -16,9 +16,8 @@ from rest_framework import serializers
from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep, ParagraphPipelineModel
from application.chat_pipeline.pipeline_manage import PipelineManage
from application.serializers.application_serializers import NoReferencesSetting
from application.serializers.application import NoReferencesSetting
from common.field.common import InstanceField
from common.util.field_message import ErrMessage
class ModelField(serializers.Field):
@ -53,35 +52,35 @@ class IChatStep(IBaseChatPipelineStep):
class InstanceSerializer(serializers.Serializer):
# 对话列表
message_list = serializers.ListField(required=True, child=MessageField(required=True),
error_messages=ErrMessage.list(_("Conversation list")))
model_id = serializers.UUIDField(required=False, allow_null=True, error_messages=ErrMessage.uuid(_("Model id")))
label=_("Conversation list"))
model_id = serializers.UUIDField(required=False, allow_null=True, label=_("Model id"))
# 段落列表
paragraph_list = serializers.ListField(error_messages=ErrMessage.list(_("Paragraph List")))
paragraph_list = serializers.ListField(label=_("Paragraph List"))
# 对话id
chat_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_("Conversation ID")))
chat_id = serializers.UUIDField(required=True, label=_("Conversation ID"))
# 用户问题
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.uuid(_("User Questions")))
problem_text = serializers.CharField(required=True, label=_("User Questions"))
# 后置处理器
post_response_handler = InstanceField(model_type=PostResponseHandler,
error_messages=ErrMessage.base(_("Post-processor")))
label=_("Post-processor"))
# 补全问题
padding_problem_text = serializers.CharField(required=False,
error_messages=ErrMessage.base(_("Completion Question")))
label=_("Completion Question"))
# 是否使用流的形式输出
stream = serializers.BooleanField(required=False, error_messages=ErrMessage.base(_("Streaming Output")))
client_id = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Client id")))
client_type = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Client Type")))
stream = serializers.BooleanField(required=False, label=_("Streaming Output"))
client_id = serializers.CharField(required=True, label=_("Client id"))
client_type = serializers.CharField(required=True, label=_("Client Type"))
# 未查询到引用分段
no_references_setting = NoReferencesSetting(required=True,
error_messages=ErrMessage.base(_("No reference segment settings")))
label=_("No reference segment settings"))
user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_("User ID")))
user_id = serializers.UUIDField(required=True, label=_("User ID"))
model_setting = serializers.DictField(required=True, allow_null=True,
error_messages=ErrMessage.dict(_("Model settings")))
label=_("Model settings"))
model_params_setting = serializers.DictField(required=False, allow_null=True,
error_messages=ErrMessage.dict(_("Model parameter settings")))
label=_("Model parameter settings"))
def is_valid(self, *, raise_exception=False):
super().is_valid(raise_exception=True)

View File

@ -16,34 +16,35 @@ from rest_framework import serializers
from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep, ParagraphPipelineModel
from application.chat_pipeline.pipeline_manage import PipelineManage
from application.models import ChatRecord
from application.serializers.application_serializers import NoReferencesSetting
from application.serializers.application import NoReferencesSetting
from common.field.common import InstanceField
from common.util.field_message import ErrMessage
class IGenerateHumanMessageStep(IBaseChatPipelineStep):
class InstanceSerializer(serializers.Serializer):
# 问题
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.char(_("question")))
problem_text = serializers.CharField(required=True, label=_("question"))
# 段落列表
paragraph_list = serializers.ListField(child=InstanceField(model_type=ParagraphPipelineModel, required=True),
error_messages=ErrMessage.list(_("Paragraph List")))
label=_("Paragraph List"))
# 历史对答
history_chat_record = serializers.ListField(child=InstanceField(model_type=ChatRecord, required=True),
error_messages=ErrMessage.list(_("History Questions")))
label=_("History Questions"))
# 多轮对话数量
dialogue_number = serializers.IntegerField(required=True, error_messages=ErrMessage.integer(_("Number of multi-round conversations")))
dialogue_number = serializers.IntegerField(required=True, label=_("Number of multi-round conversations"))
# 最大携带知识库段落长度
max_paragraph_char_number = serializers.IntegerField(required=True, error_messages=ErrMessage.integer(
_("Maximum length of the knowledge base paragraph")))
max_paragraph_char_number = serializers.IntegerField(required=True,
label=_("Maximum length of the knowledge base paragraph"))
# 模板
prompt = serializers.CharField(required=True, error_messages=ErrMessage.char(_("Prompt word")))
prompt = serializers.CharField(required=True, label=_("Prompt word"))
system = serializers.CharField(required=False, allow_null=True, allow_blank=True,
error_messages=ErrMessage.char(_("System prompt words (role)")))
label=_("System prompt words (role)"))
# 补齐问题
padding_problem_text = serializers.CharField(required=False, error_messages=ErrMessage.char(_("Completion problem")))
padding_problem_text = serializers.CharField(required=False,
label=_("Completion problem"))
# 未查询到引用分段
no_references_setting = NoReferencesSetting(required=True, error_messages=ErrMessage.base(_("No reference segment settings")))
no_references_setting = NoReferencesSetting(required=True,
label=_("No reference segment settings"))
def get_step_serializer(self, manage: PipelineManage) -> Type[serializers.Serializer]:
return self.InstanceSerializer

View File

@ -16,22 +16,20 @@ from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep
from application.chat_pipeline.pipeline_manage import PipelineManage
from application.models import ChatRecord
from common.field.common import InstanceField
from common.util.field_message import ErrMessage
class IResetProblemStep(IBaseChatPipelineStep):
class InstanceSerializer(serializers.Serializer):
# 问题文本
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.float(_("question")))
problem_text = serializers.CharField(required=True, label=_("question"))
# 历史对答
history_chat_record = serializers.ListField(child=InstanceField(model_type=ChatRecord, required=True),
error_messages=ErrMessage.list(_("History Questions")))
label=_("History Questions"))
# 大语言模型
model_id = serializers.UUIDField(required=False, allow_null=True, error_messages=ErrMessage.uuid(_("Model id")))
user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_("User ID")))
model_id = serializers.UUIDField(required=False, allow_null=True, label=_("Model id"))
user_id = serializers.UUIDField(required=True, label=_("User ID"))
problem_optimization_prompt = serializers.CharField(required=False, max_length=102400,
error_messages=ErrMessage.char(
_("Question completion prompt")))
label=_("Question completion prompt"))
def get_step_serializer(self, manage: PipelineManage) -> Type[serializers.Serializer]:
return self.InstanceSerializer

View File

@ -13,8 +13,8 @@ from langchain.schema import HumanMessage
from application.chat_pipeline.step.reset_problem_step.i_reset_problem_step import IResetProblemStep
from application.models import ChatRecord
from common.util.split_model import flat_map
from setting.models_provider.tools import get_model_instance_by_model_user_id
from common.utils.split_model import flat_map
from models_provider.tools import get_model_instance_by_model_user_id
prompt = _(
"() contains the user's question. Answer the guessed user's question based on the context ({question}) Requirement: Output a complete question and put it in the <data></data> tag")

View File

@ -16,36 +16,35 @@ from rest_framework import serializers
from application.chat_pipeline.I_base_chat_pipeline import IBaseChatPipelineStep, ParagraphPipelineModel
from application.chat_pipeline.pipeline_manage import PipelineManage
from common.util.field_message import ErrMessage
class ISearchDatasetStep(IBaseChatPipelineStep):
class InstanceSerializer(serializers.Serializer):
# 原始问题文本
problem_text = serializers.CharField(required=True, error_messages=ErrMessage.char(_("question")))
problem_text = serializers.CharField(required=True, label=_("question"))
# 系统补全问题文本
padding_problem_text = serializers.CharField(required=False,
error_messages=ErrMessage.char(_("System completes question text")))
label=_("System completes question text"))
# 需要查询的数据集id列表
dataset_id_list = serializers.ListField(required=True, child=serializers.UUIDField(required=True),
error_messages=ErrMessage.list(_("Dataset id list")))
label=_("Dataset id list"))
# 需要排除的文档id
exclude_document_id_list = serializers.ListField(required=True, child=serializers.UUIDField(required=True),
error_messages=ErrMessage.list(_("List of document ids to exclude")))
label=_("List of document ids to exclude"))
# 需要排除向量id
exclude_paragraph_id_list = serializers.ListField(required=True, child=serializers.UUIDField(required=True),
error_messages=ErrMessage.list(_("List of exclusion vector ids")))
label=_("List of exclusion vector ids"))
# 需要查询的条数
top_n = serializers.IntegerField(required=True,
error_messages=ErrMessage.integer(_("Reference segment number")))
label=_("Reference segment number"))
# 相似度 0-1之间
similarity = serializers.FloatField(required=True, max_value=1, min_value=0,
error_messages=ErrMessage.float(_("Similarity")))
label=_("Similarity"))
search_mode = serializers.CharField(required=True, validators=[
validators.RegexValidator(regex=re.compile("^embedding|keywords|blend$"),
message=_("The type only supports embedding|keywords|blend"), code=500)
], error_messages=ErrMessage.char(_("Retrieval Mode")))
user_id = serializers.UUIDField(required=True, error_messages=ErrMessage.uuid(_("User ID")))
], label=_("Retrieval Mode"))
user_id = serializers.UUIDField(required=True, label=_("User ID"))
def get_step_serializer(self, manage: PipelineManage) -> Type[InstanceSerializer]:
return self.InstanceSerializer

View File

@ -17,12 +17,12 @@ from application.chat_pipeline.I_base_chat_pipeline import ParagraphPipelineMode
from application.chat_pipeline.step.search_dataset_step.i_search_dataset_step import ISearchDatasetStep
from common.config.embedding_config import VectorStore, ModelManage
from common.db.search import native_search
from common.util.file_util import get_file_content
from dataset.models import Paragraph, DataSet
from embedding.models import SearchMode
from setting.models import Model
from setting.models_provider import get_model
from smartdoc.conf import PROJECT_DIR
from common.utils.common import get_file_content
from knowledge.models import Paragraph, Knowledge
from knowledge.models import SearchMode
from maxkb.conf import PROJECT_DIR
from models_provider.models import Model
from models_provider.tools import get_model
def get_model_by_id(_id, user_id):
@ -36,12 +36,22 @@ def get_model_by_id(_id, user_id):
def get_embedding_id(dataset_id_list):
<<<<<<< Updated upstream:apps/chat/chat_pipeline/step/search_dataset_step/impl/base_search_dataset_step.py
dataset_list = QuerySet(DataSet).filter(id__in=dataset_id_list)
if len(set([dataset.embedding_model_id for dataset in dataset_list])) > 1:
raise Exception(_("The vector model of the associated knowledge base is inconsistent and the segmentation cannot be recalled."))
if len(dataset_list) == 0:
raise Exception(_("The knowledge base setting is wrong, please reset the knowledge base"))
return dataset_list[0].embedding_model_id
=======
knowledge_list = QuerySet(Knowledge).filter(id__in=dataset_id_list)
if len(set([knowledge.embedding_mode_id for knowledge in knowledge_list])) > 1:
raise Exception(
_("The vector model of the associated knowledge base is inconsistent and the segmentation cannot be recalled."))
if len(knowledge_list) == 0:
raise Exception(_("The knowledge base setting is wrong, please reset the knowledge base"))
return knowledge_list[0].embedding_mode_id
>>>>>>> Stashed changes:apps/application/chat_pipeline/step/search_dataset_step/impl/base_search_dataset_step.py
class BaseSearchDatasetStep(ISearchDatasetStep):

View File

@ -17,7 +17,7 @@ from django.db.models import QuerySet
from rest_framework import serializers
from rest_framework.exceptions import ValidationError, ErrorDetail
from chat.flow.common import Answer, NodeChunk
from application.flow.common import Answer, NodeChunk
from application.models import ChatRecord
from application.models import ApplicationPublicAccessClient
from common.constants.authentication_type import AuthenticationType

View File

@ -11,7 +11,7 @@ from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
class ChatNodeSerializer(serializers.Serializer):

View File

@ -20,9 +20,9 @@ from langchain_core.messages import BaseMessage, AIMessage, AIMessageChunk, Tool
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
from chat.flow.i_step_node import NodeResult, INode
from chat.flow.step_node.ai_chat_step_node.i_chat_node import IChatNode
from chat.flow.tools import Reasoning
from application.flow.i_step_node import NodeResult, INode
from application.flow.step_node.ai_chat_step_node.i_chat_node import IChatNode
from application.flow.tools import Reasoning
from models_provider.models import Model
from models_provider.tools import get_model_credential, get_model_instance_by_model_user_id

View File

@ -3,7 +3,7 @@ from typing import Type
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from django.utils.translation import gettext_lazy as _

View File

@ -5,9 +5,9 @@ import time
import uuid
from typing import Dict, List
from chat.flow.common import Answer
from chat.flow.i_step_node import NodeResult, INode
from chat.flow.step_node.application_node.i_application_node import IApplicationNode
from application.flow.common import Answer
from application.flow.i_step_node import NodeResult, INode
from application.flow.step_node.application_node.i_application_node import IApplicationNode
from application.models import Chat

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class ContainCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class EqualCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class GECompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class GTCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare import Compare
from application.flow.step_node.condition_node.compare import Compare
class IsNotNullCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare import Compare
from application.flow.step_node.condition_node.compare import Compare
class IsNotTrueCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare import Compare
from application.flow.step_node.condition_node.compare import Compare
class IsNullCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare import Compare
from application.flow.step_node.condition_node.compare import Compare
class IsTrueCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class LECompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class LenEqualCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class LenGECompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class LenGTCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class LenLECompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class LenLTCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class LTCompare(Compare):

View File

@ -8,7 +8,7 @@
"""
from typing import List
from chat.flow.step_node.condition_node.compare.compare import Compare
from application.flow.step_node.condition_node.compare.compare import Compare
class NotContainCompare(Compare):

View File

@ -11,7 +11,7 @@ from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from chat.flow.i_step_node import INode
from application.flow.i_step_node import INode
class ConditionSerializer(serializers.Serializer):

View File

@ -8,9 +8,9 @@
"""
from typing import List
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.condition_node.compare import compare_handle_list
from chat.flow.step_node.condition_node.i_condition_node import IConditionNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.condition_node.compare import compare_handle_list
from application.flow.step_node.condition_node.i_condition_node import IConditionNode
class BaseConditionNode(IConditionNode):

View File

@ -10,7 +10,7 @@ from typing import Type
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from common.exception.app_exception import AppApiException
from django.utils.translation import gettext_lazy as _

View File

@ -8,8 +8,8 @@
"""
from typing import List
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.direct_reply_node.i_reply_node import IReplyNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.direct_reply_node.i_reply_node import IReplyNode
class BaseReplyNode(IReplyNode):

View File

@ -5,7 +5,7 @@ from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
class DocumentExtractNodeSerializer(serializers.Serializer):

View File

@ -5,8 +5,8 @@ import mimetypes
from django.core.files.uploadedfile import InMemoryUploadedFile
from django.db.models import QuerySet
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.document_extract_node.i_document_extract_node import IDocumentExtractNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.document_extract_node.i_document_extract_node import IDocumentExtractNode
from knowledge.models import File
from knowledge.serializers.document import split_handles, parse_table_handle_list, FileBufferHandle
from knowledge.serializers.file import FileSerializer

View File

@ -10,7 +10,7 @@ from typing import Type
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from django.utils.translation import gettext_lazy as _

View File

@ -12,9 +12,9 @@ from typing import Dict, List
from langchain_core.prompts import PromptTemplate
from chat.flow.common import Answer
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.form_node.i_form_node import IFormNode
from application.flow.common import Answer
from application.flow.i_step_node import NodeResult
from application.flow.step_node.form_node.i_form_node import IFormNode
def write_context(step_variable: Dict, global_variable: Dict, node, workflow):

View File

@ -11,7 +11,7 @@ from typing import Type
from django.db.models import QuerySet
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from common.field.common import ObjectField
from tools.models.tool import Tool

View File

@ -13,8 +13,8 @@ from typing import Dict
from django.db.models import QuerySet
from django.utils.translation import gettext as _
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.function_lib_node.i_function_lib_node import IFunctionLibNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.function_lib_node.i_function_lib_node import IFunctionLibNode
from common.exception.app_exception import AppApiException
from common.utils.function_code import FunctionExecutor
from common.utils.rsa_util import rsa_long_decrypt

View File

@ -12,7 +12,7 @@ from typing import Type
from django.core import validators
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from common.exception.app_exception import AppApiException
from common.field.common import ObjectField

View File

@ -10,8 +10,8 @@ import json
import time
from typing import Dict
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.function_node.i_function_node import IFunctionNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.function_node.i_function_node import IFunctionNode
from common.utils.function_code import FunctionExecutor
from maxkb.const import CONFIG

View File

@ -5,7 +5,7 @@ from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
class ImageGenerateNodeSerializer(serializers.Serializer):

View File

@ -5,8 +5,8 @@ from typing import List
import requests
from langchain_core.messages import BaseMessage, HumanMessage, AIMessage
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.image_generate_step_node.i_image_generate_node import IImageGenerateNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.image_generate_step_node.i_image_generate_node import IImageGenerateNode
from common.utils.common import bytes_to_uploaded_file
from knowledge.serializers.file import FileSerializer
from models_provider.tools import get_model_instance_by_model_user_id

View File

@ -4,7 +4,7 @@ from typing import Type
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from django.utils.translation import gettext_lazy as _

View File

@ -8,8 +8,8 @@ from typing import List, Dict
from django.db.models import QuerySet
from langchain_core.messages import BaseMessage, HumanMessage, SystemMessage, AIMessage
from chat.flow.i_step_node import NodeResult, INode
from chat.flow.step_node.image_understand_step_node.i_image_understand_node import IImageUnderstandNode
from application.flow.i_step_node import NodeResult, INode
from application.flow.step_node.image_understand_step_node.i_image_understand_node import IImageUnderstandNode
from knowledge.models import File
from models_provider.tools import get_model_instance_by_model_user_id

View File

@ -5,7 +5,7 @@ from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
class McpNodeSerializer(serializers.Serializer):

View File

@ -5,8 +5,8 @@ from typing import List
from langchain_mcp_adapters.client import MultiServerMCPClient
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.mcp_node.i_mcp_node import IMcpNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.mcp_node.i_mcp_node import IMcpNode
class BaseMcpNode(IMcpNode):

View File

@ -11,7 +11,7 @@ from typing import Type
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
class QuestionNodeSerializer(serializers.Serializer):

View File

@ -15,8 +15,8 @@ from django.db.models import QuerySet
from langchain.schema import HumanMessage, SystemMessage
from langchain_core.messages import BaseMessage
from chat.flow.i_step_node import NodeResult, INode
from chat.flow.step_node.question_node.i_question_node import IQuestionNode
from application.flow.i_step_node import NodeResult, INode
from application.flow.step_node.question_node.i_question_node import IQuestionNode
from models_provider.models import Model
from models_provider.tools import get_model_instance_by_model_user_id, get_model_credential

View File

@ -10,7 +10,7 @@ from typing import Type
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from django.utils.translation import gettext_lazy as _

View File

@ -10,8 +10,8 @@ from typing import List
from langchain_core.documents import Document
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.reranker_node.i_reranker_node import IRerankerNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.reranker_node.i_reranker_node import IRerankerNode
from models_provider.tools import get_model_instance_by_model_user_id

View File

@ -12,7 +12,7 @@ from typing import Type
from django.core import validators
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from common.utils.common import flat_map
from django.utils.translation import gettext_lazy as _

View File

@ -11,8 +11,8 @@ from typing import List, Dict
from django.db.models import QuerySet
from django.db import connection
from chat.flow.i_step_node import NodeResult
from chat.flow.step_node.search_dataset_node.i_search_dataset_node import ISearchDatasetStepNode
from application.flow.i_step_node import NodeResult
from application.flow.step_node.search_dataset_node.i_search_dataset_node import ISearchDatasetStepNode
from common.config.embedding_config import VectorStore
from common.db.search import native_search
from common.utils.common import get_file_content

View File

@ -4,7 +4,7 @@ from typing import Type
from rest_framework import serializers
from chat.flow.i_step_node import INode, NodeResult
from application.flow.i_step_node import INode, NodeResult
from django.utils.translation import gettext_lazy as _

Some files were not shown because too many files have changed in this diff Show More