Commit fd8fe15d authored by takatost's avatar takatost

use answer node instead of end in advanced chatbot

parent e80315f5
...@@ -19,7 +19,6 @@ from core.model_runtime.entities.llm_entities import LLMMode ...@@ -19,7 +19,6 @@ from core.model_runtime.entities.llm_entities import LLMMode
from core.model_runtime.utils.encoders import jsonable_encoder from core.model_runtime.utils.encoders import jsonable_encoder
from core.prompt.simple_prompt_transform import SimplePromptTransform from core.prompt.simple_prompt_transform import SimplePromptTransform
from core.workflow.entities.node_entities import NodeType from core.workflow.entities.node_entities import NodeType
from core.workflow.nodes.end.entities import EndNodeOutputType
from events.app_event import app_was_created from events.app_event import app_was_created
from extensions.ext_database import db from extensions.ext_database import db
from models.account import Account from models.account import Account
...@@ -149,10 +148,13 @@ class WorkflowConverter: ...@@ -149,10 +148,13 @@ class WorkflowConverter:
graph = self._append_node(graph, llm_node) graph = self._append_node(graph, llm_node)
# convert to end node by app mode if new_app_mode == AppMode.WORKFLOW:
end_node = self._convert_to_end_node(app_model=app_model) # convert to end node by app mode
end_node = self._convert_to_end_node()
graph = self._append_node(graph, end_node) graph = self._append_node(graph, end_node)
else:
answer_node = self._convert_to_answer_node()
graph = self._append_node(graph, answer_node)
app_model_config_dict = app_config.app_model_config_dict app_model_config_dict = app_config.app_model_config_dict
...@@ -517,35 +519,44 @@ class WorkflowConverter: ...@@ -517,35 +519,44 @@ class WorkflowConverter:
} }
} }
def _convert_to_end_node(self, app_model: App) -> dict: def _convert_to_end_node(self) -> dict:
""" """
Convert to End Node Convert to End Node
:param app_model: App instance
:return: :return:
""" """
if app_model.mode == AppMode.CHAT.value: # for original completion app
return { return {
"id": "end", "id": "end",
"position": None, "position": None,
"data": { "data": {
"title": "END", "title": "END",
"type": NodeType.END.value, "type": NodeType.END.value,
"outputs": {
"variable": "result",
"value_selector": ["llm", "text"]
} }
} }
elif app_model.mode == AppMode.COMPLETION.value: }
# for original completion app
return { def _convert_to_answer_node(self) -> dict:
"id": "end", """
"position": None, Convert to Answer Node
"data": { :return:
"title": "END", """
"type": NodeType.END.value, # for original chat app
"outputs": { return {
"type": EndNodeOutputType.PLAIN_TEXT.value, "id": "answer",
"plain_text_selector": ["llm", "text"] "position": None,
} "data": {
} "title": "ANSWER",
"type": NodeType.ANSWER.value,
"variables": {
"variable": "text",
"value_selector": ["llm", "text"]
},
"answer": "{{text}}"
} }
}
def _create_edge(self, source: str, target: str) -> dict: def _create_edge(self, source: str, target: str) -> dict:
""" """
...@@ -582,7 +593,7 @@ class WorkflowConverter: ...@@ -582,7 +593,7 @@ class WorkflowConverter:
if app_model.mode == AppMode.COMPLETION.value: if app_model.mode == AppMode.COMPLETION.value:
return AppMode.WORKFLOW return AppMode.WORKFLOW
else: else:
return AppMode.value_of(app_model.mode) return AppMode.ADVANCED_CHAT
def _get_api_based_extension(self, tenant_id: str, api_based_extension_id: str) -> APIBasedExtension: def _get_api_based_extension(self, tenant_id: str, api_based_extension_id: str) -> APIBasedExtension:
""" """
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment