diff --git a/agent/canvas.py b/agent/canvas.py index 05d6e31f34c..0561c44b236 100644 --- a/agent/canvas.py +++ b/agent/canvas.py @@ -260,7 +260,7 @@ def get_tenant_id(self): def get_history(self, window_size): convs = [] - for role, obj in self.history[window_size * -2:]: + for role, obj in self.history[(window_size + 1) * -1:]: convs.append({"role": role, "content": (obj if role == "user" else '\n'.join(pd.DataFrame(obj)['content']))}) return convs diff --git a/agent/component/exesql.py b/agent/component/exesql.py index 6dde2708dfd..39ad4d02c57 100644 --- a/agent/component/exesql.py +++ b/agent/component/exesql.py @@ -77,7 +77,7 @@ def _run(self, history, **kwargs): except Exception as e: return ExeSQL.be_output("**Error**: \nDatabase Connection Failed! \n" + str(e)) sql_res = [] - for single_sql in re.split(r';', ans): + for single_sql in re.split(r';', ans.replace(r"\n", " ")): if not single_sql: continue try: diff --git a/agent/templates/DB Assistant.json b/agent/templates/DB Assistant.json index 2a036644270..5be936d05e1 100644 --- a/agent/templates/DB Assistant.json +++ b/agent/templates/DB Assistant.json @@ -63,7 +63,7 @@ } ], "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.", + "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 } @@ -102,7 +102,7 @@ } ], "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.", + "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 }