add get default node config

This commit is contained in:
takatost
2024-03-04 13:21:24 +08:00
parent 75559bcbf9
commit df809ff435
33 changed files with 314 additions and 80 deletions

View File

@ -0,0 +1,12 @@
from typing import Optional
class BaseNode:
@classmethod
def get_default_config(cls, filters: Optional[dict] = None) -> dict:
"""
Get default config of node.
:param filters: filter by node config parameters.
:return:
"""
return {}

View File

View File

@ -0,0 +1,64 @@
from typing import Optional
from core.workflow.nodes.base_node import BaseNode
class CodeNode(BaseNode):
@classmethod
def get_default_config(cls, filters: Optional[dict] = None) -> dict:
"""
Get default config of node.
:param filters: filter by node config parameters.
:return:
"""
if filters and filters.get("code_language") == "javascript":
return {
"type": "code",
"config": {
"variables": [
{
"variable": "arg1",
"value_selector": []
},
{
"variable": "arg2",
"value_selector": []
}
],
"code_language": "javascript",
"code": "async function main(arg1, arg2) {\n return new Promise((resolve, reject) => {"
"\n if (true) {\n resolve({\n \"result\": arg1 + arg2"
"\n });\n } else {\n reject(\"e\");\n }\n });\n}",
"outputs": [
{
"variable": "result",
"variable_type": "number"
}
]
}
}
return {
"type": "code",
"config": {
"variables": [
{
"variable": "arg1",
"value_selector": []
},
{
"variable": "arg2",
"value_selector": []
}
],
"code_language": "python3",
"code": "def main(\n arg1: int,\n arg2: int,\n) -> int:\n return {\n \"result\": arg1 "
"+ arg2\n }",
"outputs": [
{
"variable": "result",
"variable_type": "number"
}
]
}
}

View File

@ -0,0 +1,5 @@
from core.workflow.nodes.base_node import BaseNode
class DirectAnswerNode(BaseNode):
pass

View File

@ -0,0 +1,5 @@
from core.workflow.nodes.base_node import BaseNode
class EndNode(BaseNode):
pass

View File

@ -0,0 +1,5 @@
from core.workflow.nodes.base_node import BaseNode
class HttpRequestNode(BaseNode):
pass

View File

@ -0,0 +1,5 @@
from core.workflow.nodes.base_node import BaseNode
class IfElseNode(BaseNode):
pass

View File

@ -0,0 +1,5 @@
from core.workflow.nodes.base_node import BaseNode
class KnowledgeRetrievalNode(BaseNode):
pass

View File

View File

@ -0,0 +1,40 @@
from typing import Optional
from core.workflow.nodes.base_node import BaseNode
class LLMNode(BaseNode):
@classmethod
def get_default_config(cls, filters: Optional[dict] = None) -> dict:
"""
Get default config of node.
:param filters: filter by node config parameters.
:return:
"""
return {
"type": "llm",
"config": {
"prompt_templates": {
"chat_model": {
"prompts": [
{
"role": "system",
"text": "You are a helpful AI assistant."
}
]
},
"completion_model": {
"conversation_histories_role": {
"user_prefix": "Human",
"assistant_prefix": "Assistant"
},
"prompt": {
"text": "Here is the chat histories between human and assistant, inside "
"<histories></histories> XML tags.\n\n<histories>\n{{"
"#histories#}}\n</histories>\n\n\nHuman: {{#query#}}\n\nAssistant:"
},
"stop": ["Human:"]
}
}
}
}

View File

@ -0,0 +1,19 @@
from typing import Optional
from core.workflow.nodes.base_node import BaseNode
class QuestionClassifierNode(BaseNode):
@classmethod
def get_default_config(cls, filters: Optional[dict] = None) -> dict:
"""
Get default config of node.
:param filters: filter by node config parameters.
:return:
"""
return {
"type": "question-classifier",
"config": {
"instructions": "" # TODO
}
}

View File

@ -0,0 +1,5 @@
from core.workflow.nodes.base_node import BaseNode
class StartNode(BaseNode):
pass

View File

@ -0,0 +1,25 @@
from typing import Optional
from core.workflow.nodes.base_node import BaseNode
class TemplateTransformNode(BaseNode):
@classmethod
def get_default_config(cls, filters: Optional[dict] = None) -> dict:
"""
Get default config of node.
:param filters: filter by node config parameters.
:return:
"""
return {
"type": "template-transform",
"config": {
"variables": [
{
"variable": "arg1",
"value_selector": []
}
],
"template": "{{ arg1 }}"
}
}

View File

View File

@ -0,0 +1,5 @@
from core.workflow.nodes.base_node import BaseNode
class ToolNode(BaseNode):
pass

View File

@ -0,0 +1,5 @@
from core.workflow.nodes.base_node import BaseNode
class VariableAssignerNode(BaseNode):
pass