Files
ragflow_python/agent/templates/DB Assistant.json

682 lines
61 KiB
JSON
Raw Normal View History

{
"id": 6,
"title": "DB Assistant",
"description": "Database query assistant. It converts questions into SQL statements and queries them in the database. You need to provide 3 kinds of knowledge base: 1. DDL data in the database. 2. Sample text questions converted to SQL statements. 3. A description of the database contents, including but not limited to: tables, records, and so on. You will also need to set up database configuration information: like IP Port ...",
"canvas_type": "chatbot",
"dsl": {
"answer": [],
"components": {
"Answer:SocialAdsWonder": {
"downstream": [
"Retrieval:WetNewsHunt",
"Retrieval:OpenWingsRepeat",
"Retrieval:StrongDrinksShare"
],
"obj": {
"component_name": "Answer",
"params": {}
},
"upstream": [
"begin",
"Switch:GreatTermsTeach"
]
},
"ExeSQL:CoolFactsChew": {
"downstream": [
"Switch:GreatTermsTeach"
],
"obj": {
"component_name": "ExeSQL",
"params": {
"database": "Your DB name",
"db_type": "mysql",
"host": "Your IP Port",
"loop": 3,
"password": "Your Password",
"port": 3306,
"top_n": 9,
"username": "Your username"
}
},
"upstream": [
"Generate:OliveDotsInvent",
"Generate:FloppyHairsFix"
]
},
"Generate:FloppyHairsFix": {
"downstream": [
"ExeSQL:CoolFactsChew"
],
"obj": {
"component_name": "Generate",
"params": {
"cite": true,
"frequency_penalty": 0.7,
"llm_id": "deepseek-chat",
"max_tokens": 512,
"message_history_window_size": 12,
"parameters": [
{
"component_id": "ExeSQL:CoolFactsChew",
"id": "979b8482-28af-4c18-98a6-810963d8f08c",
"key": "exesql_input"
}
],
"presence_penalty": 0.4,
"prompt": "## You are the Repair SQL Statement Helper, please modify the original SQL statement based on the SQL query error report.\n\n## The contents of the SQL query error report and the original SQL statement are as follows:\n{exesql_input}\n\n## Answer only the modified SQL statement. Each SQL statement ends with semicolon and do not give any explanation, just answer the code.",
"temperature": 0.1,
"top_p": 0.3
}
},
"upstream": [
"Switch:GreatTermsTeach"
]
},
"Generate:OliveDotsInvent": {
"downstream": [
"ExeSQL:CoolFactsChew"
],
"obj": {
"component_name": "Generate",
"params": {
"cite": true,
"frequency_penalty": 0.7,
"llm_id": "deepseek-chat",
"max_tokens": 512,
"message_history_window_size": 12,
"parameters": [
{
"component_id": "Retrieval:StrongDrinksShare",
"id": "36c09e33-bad2-42fe-9a56-f136677bb405",
"key": "ddl_input"
},
{
"component_id": "Retrieval:OpenWingsRepeat",
"id": "e4cfe15e-64cd-4351-b49e-0da2f5c8ec34",
"key": "db_input"
},
{
"component_id": "Retrieval:WetNewsHunt",
"id": "946d8272-fc98-4040-a75f-502df7e4a42e",
"key": "sql_input"
}
],
"presence_penalty": 0.4,
"prompt": "\n##The user provides a question and you provide SQL. You will only respond with SQL code and not with any explanations.\n\n##You may use the following DDL statements as a reference for what tables might be available. Use responses to past questions also to guide you: {ddl_input}.\n\n##You may use the following documentation as a reference for what tables might be available. Use responses to past questions also to guide you: {db_input}.\n\n##You may use the following SQL statements as a reference for what tables might be available. Use responses to past questions also to guide you: {sql_input}.\n\n##Respond with only SQL code. Each SQL code ends with semicolon and do not give any explanation -- just the code.",
"temperature": 0.1,
"top_p": 0.3
}
},
"upstream": [
"Retrieval:StrongDrinksShare",
"Retrieval:OpenWingsRepeat",
"Retrieval:WetNewsHunt"
]
},
"Retrieval:OpenWingsRepeat": {
"downstream": [
"Generate:OliveDotsInvent"
],
"obj": {
"component_name": "Retrieval",
"params": {
"kb_ids": [
"b510f8f45f6011ef904f0242ac160006"
],
"keywords_similarity_weight": 0.3,
"similarity_threshold": 0.2,
"top_n": 8
}
},
"upstream": [
"Answer:SocialAdsWonder"
]
},
"Retrieval:StrongDrinksShare": {
"downstream": [
"Generate:OliveDotsInvent"
],
"obj": {
"component_name": "Retrieval",
"params": {
"kb_ids": [
"9870268e5f6011efb8570242ac160006"
],
"keywords_similarity_weight": 0.1,
"similarity_threshold": 0.02,
"top_n": 18
}
},
"upstream": [
"Answer:SocialAdsWonder"
]
},
"Retrieval:WetNewsHunt": {
"downstream": [
"Generate:OliveDotsInvent"
],
"obj": {
"component_name": "Retrieval",
"params": {
"kb_ids": [
"dd401bcc5b9e11efae770242ac160006"
],
"keywords_similarity_weight": 0.3,
"similarity_threshold": 0.2,
"top_n": 8
}
},
"upstream": [
"Answer:SocialAdsWonder"
]
},
"Switch:GreatTermsTeach": {
"downstream": [
"Generate:FloppyHairsFix",
"Answer:SocialAdsWonder"
],
"obj": {
"component_name": "Switch",
"params": {
"conditions": [
{
"items": [
{
"cpn_id": "ExeSQL:CoolFactsChew",
"operator": "contains",
"value": "Error"
},
{
"cpn_id": "ExeSQL:CoolFactsChew",
"operator": "start with",
"value": "**Error**"
}
],
"logical_operator": "or",
"to": "Generate:FloppyHairsFix"
}
],
"end_cpn_id": "Answer:SocialAdsWonder"
}
},
"upstream": [
"ExeSQL:CoolFactsChew"
]
},
"begin": {
"downstream": [
"Answer:SocialAdsWonder"
],
"obj": {
"component_name": "Begin",
"params": {}
},
"upstream": []
}
},
"graph": {
"edges": [
{
"id": "reactflow__edge-begin-Answer:SocialAdsWonderc",
"markerEnd": "logo",
"source": "begin",
"sourceHandle": null,
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Answer:SocialAdsWonder",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-Answer:SocialAdsWonderb-Retrieval:WetNewsHuntc",
"markerEnd": "logo",
"source": "Answer:SocialAdsWonder",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Retrieval:WetNewsHunt",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-Answer:SocialAdsWonderb-Retrieval:OpenWingsRepeatc",
"markerEnd": "logo",
"source": "Answer:SocialAdsWonder",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Retrieval:OpenWingsRepeat",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-Answer:SocialAdsWonderb-Retrieval:StrongDrinksSharec",
"markerEnd": "logo",
"source": "Answer:SocialAdsWonder",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Retrieval:StrongDrinksShare",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-Retrieval:StrongDrinksShareb-Generate:OliveDotsInventc",
"markerEnd": "logo",
"source": "Retrieval:StrongDrinksShare",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Generate:OliveDotsInvent",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-Retrieval:OpenWingsRepeatb-Generate:OliveDotsInventc",
"markerEnd": "logo",
"source": "Retrieval:OpenWingsRepeat",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Generate:OliveDotsInvent",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-Retrieval:WetNewsHuntb-Generate:OliveDotsInventc",
"markerEnd": "logo",
"source": "Retrieval:WetNewsHunt",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Generate:OliveDotsInvent",
"targetHandle": "c",
"type": "buttonEdge"
},
{
"id": "727a0747-826e-4b26-808f-724d054231b4",
"source": "Switch:GreatTermsTeach",
"sourceHandle": "Case 1",
"target": "Generate:FloppyHairsFix"
},
{
"id": "a2d65f9f-7fde-49f1-a23c-3bbcdfd1b236",
"source": "Switch:GreatTermsTeach",
"sourceHandle": "end_cpn_id",
"target": "Answer:SocialAdsWonder"
},
{
"id": "reactflow__edge-Generate:OliveDotsInventb-ExeSQL:CoolFactsChewd",
"markerEnd": "logo",
"source": "Generate:OliveDotsInvent",
"sourceHandle": "b",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "ExeSQL:CoolFactsChew",
"targetHandle": "d",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-ExeSQL:CoolFactsChewc-Switch:GreatTermsTeachb",
"markerEnd": "logo",
"source": "ExeSQL:CoolFactsChew",
"sourceHandle": "c",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "Switch:GreatTermsTeach",
"targetHandle": "b",
"type": "buttonEdge"
},
{
"id": "reactflow__edge-Generate:FloppyHairsFixd-ExeSQL:CoolFactsChewb",
"markerEnd": "logo",
"source": "Generate:FloppyHairsFix",
"sourceHandle": "d",
"style": {
"stroke": "rgb(202 197 245)",
"strokeWidth": 2
},
"target": "ExeSQL:CoolFactsChew",
"targetHandle": "b",
"type": "buttonEdge"
}
],
"nodes": [
{
"data": {
"label": "Begin",
"name": "begin"
},
"dragging": false,
"height": 50,
"id": "begin",
"position": {
"x": -502.15446588701354,
"y": 151.09869460419435
},
"positionAbsolute": {
"x": -502.15446588701354,
"y": 151.09869460419435
},
"selected": false,
"sourcePosition": "left",
"targetPosition": "right",
"type": "beginNode",
"width": 50
},
{
"data": {
"form": {},
"label": "Answer",
"name": "interface"
},
"dragging": false,
"height": 100,
"id": "Answer:SocialAdsWonder",
"position": {
"x": -277.29339621802814,
"y": 126.32295980639057
},
"positionAbsolute": {
"x": -277.29339621802814,
"y": 126.32295980639057
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "logicNode",
"width": 100
},
{
"data": {
"form": {
"kb_ids": [
"dd401bcc5b9e11efae770242ac160006"
],
"keywords_similarity_weight": 0.3,
"similarity_threshold": 0.2,
"top_n": 8
},
"label": "Retrieval",
"name": "Q->SQL"
},
"dragging": false,
"height": 100,
"id": "Retrieval:WetNewsHunt",
"position": {
"x": -36.09564951314297,
"y": 126.87871017707147
},
"positionAbsolute": {
"x": -36.09564951314297,
"y": 126.87871017707147
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "logicNode",
"width": 100
},
{
"data": {
"form": {
"cite": true,
"frequencyPenaltyEnabled": true,
"frequency_penalty": 0.7,
"llm_id": "deepseek-chat",
"maxTokensEnabled": true,
"max_tokens": 256,
"message_history_window_size": 12,
"parameters": [
{
"component_id": "Retrieval:StrongDrinksShare",
"id": "36c09e33-bad2-42fe-9a56-f136677bb405",
"key": "ddl_input"
},
{
"component_id": "Retrieval:OpenWingsRepeat",
"id": "e4cfe15e-64cd-4351-b49e-0da2f5c8ec34",
"key": "db_input"
},
{
"component_id": "Retrieval:WetNewsHunt",
"id": "946d8272-fc98-4040-a75f-502df7e4a42e",
"key": "sql_input"
}
],
"presencePenaltyEnabled": true,
"presence_penalty": 0.4,
"prompt": "\n##The user provides a question and you provide SQL. You will only respond with SQL code and not with any explanations.\n\n##You may use the following DDL statements as a reference for what tables might be available. Use responses to past questions also to guide you: {ddl_input}.\n\n##You may use the following documentation as a reference for what tables might be available. Use responses to past questions also to guide you: {db_input}.\n\n##You may use the following SQL statements as a reference for what tables might be available. Use responses to past questions also to guide you: {sql_input}.\n\n##Respond with only SQL code. Do not answer with any explanations -- just the code.",
"temperature": 0.1,
"temperatureEnabled": true,
"topPEnabled": true,
"top_p": 0.3
},
"label": "Generate",
"name": "Generate SQL Statement LLM"
},
"dragging": false,
"height": 150,
"id": "Generate:OliveDotsInvent",
"position": {
"x": 228.17845935020443,
"y": 102.9434103991
},
"positionAbsolute": {
"x": 228.17845935020443,
"y": 102.9434103991
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "logicNode",
"width": 150
},
{
"data": {
"form": {
"kb_ids": [
"b510f8f45f6011ef904f0242ac160006"
],
"keywords_similarity_weight": 0.3,
"similarity_threshold": 0.2,
"top_n": 8
},
"label": "Retrieval",
"name": "DB Description"
},
"dragging": false,
"height": 100,
"id": "Retrieval:OpenWingsRepeat",
"position": {
"x": -37.01242367263157,
"y": 269.6456054919204
},
"positionAbsolute": {
"x": -37.01242367263157,
"y": 269.6456054919204
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "logicNode",
"width": 100
},
{
"data": {
"form": {
"kb_ids": [
"9870268e5f6011efb8570242ac160006"
],
"keywords_similarity_weight": 0.1,
"similarity_threshold": 0.02,
"top_n": 18
},
"label": "Retrieval",
"name": "DDL"
},
"dragging": false,
"height": 100,
"id": "Retrieval:StrongDrinksShare",
"position": {
"x": -34.942728410599784,
"y": -7.316435660083982
},
"positionAbsolute": {
"x": -34.942728410599784,
"y": -7.316435660083982
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "logicNode",
"width": 100
},
{
"data": {
"form": {
"database": "Your DB name",
"db_type": "mysql",
"host": "Your IP Port",
"loop": 3,
"password": "Your Password",
"port": 3306,
"top_n": 9,
"username": "Your username"
},
"label": "ExeSQL",
"name": "Execute SQL"
},
"dragging": false,
"height": 50,
"id": "ExeSQL:CoolFactsChew",
"position": {
"x": 370.19177674560433,
"y": 300.3411019618877
},
"positionAbsolute": {
"x": 370.19177674560433,
"y": 300.3411019618877
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "ragNode",
"width": 50
},
{
"data": {
"form": {
"conditions": [
{
"items": [
{
"cpn_id": "ExeSQL:CoolFactsChew",
"operator": "contains",
"value": "Error"
},
{
"cpn_id": "ExeSQL:CoolFactsChew",
"operator": "start with",
"value": "**Error**"
}
],
"logical_operator": "or",
"to": "Generate:FloppyHairsFix"
}
],
"end_cpn_id": "Answer:SocialAdsWonder"
},
"label": "Switch",
"name": "Analyze SQL Result"
},
"dragging": false,
"height": 100,
"id": "Switch:GreatTermsTeach",
"position": {
"x": -49.30094871211969,
"y": 481.12636846537964
},
"positionAbsolute": {
"x": -49.30094871211969,
"y": 481.12636846537964
},
"selected": false,
"sourcePosition": "right",
"targetPosition": "left",
"type": "categorizeNode",
"width": 100
},
{
"data": {
"form": {
"cite": true,
"frequencyPenaltyEnabled": true,
"frequency_penalty": 0.7,
"llm_id": "deepseek-chat",
"maxTokensEnabled": true,
"max_tokens": 256,
"message_history_window_size": 12,
"parameters": [
{
"component_id": "ExeSQL:CoolFactsChew",
"id": "979b8482-28af-4c18-98a6-810963d8f08c",
"key": "exesql_input"
}
],
"presencePenaltyEnabled": true,
"presence_penalty": 0.4,
"prompt": "## You are the Repair SQL Statement Helper, please modify the original SQL statement based on the SQL query error report.\n\n## The contents of the SQL query error report and the original SQL statement are as follows:\n{exesql_input}\n\n## Answer only the modified SQL statement. Please do not give any explanation, just answer the code.",
"temperature": 0.1,
"temperatureEnabled": true,
"topPEnabled": true,
"top_p": 0.3
},
"label": "Generate",
"name": "Fix SQL Statement LLM"
},
"dragging": false,
"height": 150,
"id": "Generate:FloppyHairsFix",
"position": {
"x": 550.7142554558844,
"y": 481.0269336166982
},
"positionAbsolute": {
"x": 550.7142554558844,
"y": 481.0269336166982
},
"selected": true,
"sourcePosition": "right",
"targetPosition": "left",
"type": "logicNode",
"width": 150
}
]
},
"history": [],
"messages": [],
"path": [],
"reference": []
},
"avatar": "data:image/png;base64,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
}