DB-GPT [Bug] [TEXT2SQL] 如果SQL语句中包含“< ”符号,将会出现错误,

kkbh8khc  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(51)

在询问之前搜索

  • 我在issues中进行了搜索,但没有找到类似的问题。

操作系统信息

Linux

Python版本信息

=3.11

DB-GPT版本

主版本

相关场景

  • 聊天数据
  • 聊天Excel
  • 聊天数据库
  • 聊天知识库
  • 模型管理
  • Jmeter 盘
  • 插件

安装信息

设备信息

GPI计数:1:24G

模型信息

LLM:chatglm3-6b

发生了什么事

对用户说的想法摘要.[response_table]SELECT * FROM excel_data WHERE "月工资金额" < 2000--- 记录错误 ---
Traceback (most recent call last):
File "/Users/luoxin/Desktop/git_repo/DB-GPT-main/dbgpt/agent/util/api_call.py", line 283, in display_sql_llmvis
self.update_from_context(llm_text)
File "/Users/luoxin/Desktop/git_repo/DB-GPT-main/dbgpt/agent/util/api_call.py", line 159, in update_from_context
api_call_element = ET.fromstring(api_context)
File "/Users/luoxin/miniforge3/envs/lx/dbgpt_env/lib/python3.10/xml/etree/ElementTree.py", line 1347, in XML
parser.feed(text)
xml.etree.ElementTree.ParseError:格式不正确(无效的标记):第1行,第90列
在处理上述异常时,另一个异常发生:

你期望发生什么

该输出结果应该可以被update_from_context方法解析:<api-call><name>[response_table]</name><args><sql>SELECT * FROM excel_data WHERE "月工资金额" < 2000</sql></args></api-call>

如何重现

修改./dbgpt/agent/util/api_call.py中的update_from_context方法

def update_from_context(self, all_context):
        """Modify the plugin status map based on the context."""
        api_context_map: Dict[int, str] = extract_content(
            all_context, self.agent_prefix, self.agent_end, True
        )
        for api_index, api_context in api_context_map.items():
            api_context = api_context.replace("\\n", "").replace("\n", "")
            api_call_element = ET.fromstring(api_context)

其他上下文

  • 无响应*

你是否愿意提交PR?

  • 是的,我愿意提交一个PR!
11dmarpk

11dmarpk1#

这个问题已经被标记为 stale,因为已经超过30天没有任何活动。

相关问题