Quellcode durchsuchen

Fix component exesql bug (#2042)

### What problem does this PR solve?

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

---------

Co-authored-by: Kevin Hu <kevinhu.sh@gmail.com>
tags/v0.10.0
H vor 1 Jahr
Ursprung
Commit
f2c4d53c58
Es ist kein Account mit der E-Mail-Adresse des Committers verbunden
3 geänderte Dateien mit 7 neuen und 4 gelöschten Zeilen
  1. 1
    1
      agent/canvas.py
  2. 5
    2
      agent/component/exesql.py
  3. 1
    1
      api/apps/canvas_app.py

+ 1
- 1
agent/canvas.py Datei anzeigen

@@ -274,7 +274,7 @@ class Canvas(ABC):
def get_embedding_model(self):
return self._embed_id

def _find_loop(self, max_loops=2):
def _find_loop(self, max_loops=6):
path = self.path[-1][::-1]
if len(path) < 2: return False


+ 5
- 2
agent/component/exesql.py Datei anzeigen

@@ -14,7 +14,7 @@
# limitations under the License.
#
from abc import ABC
import re
import pandas as pd
from peewee import MySQLDatabase, PostgresqlDatabase
from agent.component.base import ComponentBase, ComponentParamBase
@@ -59,6 +59,9 @@ class ExeSQL(ComponentBase, ABC):

ans = self.get_input()
ans = "".join(ans["content"]) if "content" in ans else ""
ans = re.sub(r'^.*?SELECT ', 'SELECT ', repr(ans), flags=re.IGNORECASE)
ans = re.sub(r';.*?SELECT ', '; SELECT ', ans, flags=re.IGNORECASE)
ans = re.sub(r';[^;]*$', r';', ans)
if not ans:
return ExeSQL.be_output("SQL statement not found!")

@@ -75,7 +78,7 @@ class ExeSQL(ComponentBase, ABC):
sql_res = [{"content": rec + "\n"} for rec in [str(i) for i in query.fetchall()]]
db.close()
except Exception as e:
return ExeSQL.be_output("**Error**:" + str(e))
return ExeSQL.be_output("**Error**:" + str(e) + "\nError SQL Statement:" + ans)

if not sql_res:
return ExeSQL.be_output("No record in the database!")

+ 1
- 1
api/apps/canvas_app.py Datei anzeigen

@@ -175,6 +175,6 @@ def test_db_connect():
password=req["password"])
db.connect()
db.close()
return get_json_result(retmsg="Database Connection Successful!")
return get_json_result(data="Database Connection Successful!")
except Exception as e:
return server_error_response(e)

Laden…
Abbrechen
Speichern