소스 검색

找图找数agent修改

liutao 1 개월 전
부모
커밋
baa0b2937f

+ 2 - 2
aiAgent_gd/qwen_agent/memory/data/sqls/sql_examples_找图找数.jsonl

@@ -2,11 +2,11 @@
   {
     "query_type": "land_find",
     "query": "请帮我查一下萧山区永久基本农田面积大于100亩的地块",
-    "sql_code": "select objectid from dlgis.gcs330000g2001_yjjbnt_gx_xsb where xzqmc ='萧山区' and yjjbnttbmj >100*666.67 limit 10"
+    "sql_code": "select objectid from ddd.gcs330000g2001_yjjbnt_gx_xsb where xzqmc ='萧山区' and yjjbnttbmj >100*666.67 limit 10"
   },
   {
     "query_type": "land_find",
     "query": "请帮我查一下西湖区永久基本农田面积小于100亩的地块",
-    "sql_code": "select objectid from dlgis.gcs330000g2001_yjjbnt_gx_xsb where xzqmc ='西湖区' and yjjbnttbmj <100*666.67 limit 10"
+    "sql_code": "select objectid from ddd.gcs330000g2001_yjjbnt_gx_xsb where xzqmc ='西湖区' and yjjbnttbmj <100*666.67 limit 10"
   }
 ]

+ 1 - 3
aiAgent_gd/qwen_agent/sub_agent/sql/land_find_sql_agent.py

@@ -31,7 +31,7 @@ class LandFindSqlAgent(BaseSubAgent):
         self.SubAgent_Summary_Prompt = "通过查询数据库,检索数据库得到的信息为:\n{obs}\n"
         self.SubAgent_PROMPT = """你是一个PostgreSQL专家,当前需要根据用户问题和上下文,生成语法正确的PostgreSQL查询语句。'
          #数据库表的表名和表结构如下:
-        `dlgis.gcs330000g2001_yjjbnt_gx_xsb`(
+        `ddd.gcs330000g2001_yjjbnt_gx_xsb`(
             `objectid` COMMENTS '主键ID',
             `xzqmc` COMMENTS '所属区县(行政区代码) 用来指定‘区’或者‘县’',
             `xzqdm` COMMENTS '行政区代码 6位,前2位代表省,前4位代表市,前6位代表区县',
@@ -50,8 +50,6 @@ class LandFindSqlAgent(BaseSubAgent):
         注意6: 生成sql时,只对涉及表结构中的字段进行条件设置,不可生成不在表字段列表中的查询条件,不可生成任何不在表字段中的条件,比如周边5公里有什么设施
         注意7: 查询语句select只包含objectid这个字段
         注意8: 只准生成查询 的sql 语句,不可生成任何 修改数据的语句, 比如:update, delete, insert, truncate 等
-        注意9: gcs330000g2001_yjjbnt_gx_xsb数据表的schema是dlgis
-        注意10: 永久基本农田的表名是dlgis.gcs330000g2001_yjjbnt_gx_xsb
         """
         self.retriever = SqlRetriever(query_type='land_find')
 

+ 6 - 1
aiAgent_gd/qwen_agent/sub_agent/summary_agent.py

@@ -6,7 +6,7 @@ from httpx import RemoteProtocolError
 from qwen_agent.planning.planner import PlanResponseContextManager
 from qwen_agent.sub_agent.BaseSubAgent import BaseSubAgent
 from qwen_agent.messages.context_message import ChatResponseChoice, ChatResponseStreamChoice
-
+import re
 SYSTEM_PROMPT = """
 你是一个对前面提到的分析过程和结果进行总结摘要的专家,给你一段用户的提问,以及之前代码执行的过程和执行结果,你可以对整个分析的过程进行总结摘要,来回答用户提出的问题。
 那么我问你,请对前面提到的分析过程和结果进行总结摘要,回答用户的问题。
@@ -33,6 +33,9 @@ agents_prompt = dict({
     'SpatialAnalysisAgent': """
         1. 总结时不要输出图形的wkt信息或者其他坐标点信息
     """,
+    'LandFindSqlAgent':"""
+       不对结果进行总结,请直接回答没有相关数据
+    """,
     'GisLayerOperationAgent':"""
        不对结果进行总结,请直接回答没有相关数据
     """,
@@ -104,6 +107,8 @@ class SummaryAgent(BaseSubAgent):
                     res = rsp
                     yield ChatResponseChoice(role='assistant', content=rsp)
                 print(f'summary input: {query} \n summary output: {res}')
+                pattern = r'<think>.*?</think>\n*'
+                res = re.sub(pattern, '', res, flags=re.DOTALL)
                 self.exec_res = res
                 self.is_success = True
                 break

+ 1 - 1
aiAgent_gd/run_server_async.py

@@ -194,7 +194,7 @@ async def klyzyQuery(id: str):
 
 @app.get("/yjjbntQuery")
 async def yjjbntQuery(id: str):
-    sql = f'select *,st_astext(shape) as geom from dlgis.gcs330000g2001_yjjbnt_gx_xsb where objectid in ({id})'
+    sql = f'select *,st_astext(shape) as geom from ddd.gcs330000g2001_yjjbnt_gx_xsb where objectid in ({id})'
     res_tuples = await async_xzdb.run(sql)
     result, success = res_tuples
     return json.loads(result)