Forráskód Böngészése

智能选址添加人口查询接口

liutao 1 hónapja
szülő
commit
ee6539ed16

+ 1 - 5
aiAgent_gd/qwen_agent/planning/plan_executor.py

@@ -80,7 +80,6 @@ class PlanExecutor:
             if plan.action_name == 'generate_chart':
                 plan_context.add_executing_agent_info(agent.name, llm_name, plan.instruction)
             elif plan.action_name in ['LandSupplySqlAgent', 'LandUseSqlAgent', 'LandApprovalSqlAgent', 'SpatialAnalysisAgent','LandFindSqlAgent', 'LandSiteSelectionSqlAgent', 'GisSurroundingFacilitiesQueryAgent', 'KfqEvalSqlAgent']:
-            # elif plan.action_name == 'TenderResultSqlAgent' or plan.action_name == 'SiteSelSqlAgent' or plan.action_name == 'TradeSqlAgent' or plan.action_name == 'LandSupplySqlAgent' or plan.action_name == 'LandUseSqlAgent':
                 plan_context.add_executing_agent_info(agent.name, llm_name, plan.instruction, add_to_context=True,
                                                       add_to_final=True)
 
@@ -96,7 +95,4 @@ class PlanExecutor:
                     return
                 yield rsp
             plan.executed = True
-            # if isinstance(agent, SqlAgent) and agent.is_success and hasattr(agent, 'empty_data') and agent.empty_data == False:
-            #     plan_context.plans.insert(idx+1, PlanInfo(action_name='TenderResultSqlAgent', instruction="已经获取到相关数据,我需要你再给我一些具体的招投标记录展示给用户,不要超过50条"))
-            # if agent.is_success and hasattr(agent, 'empty_data') and agent.empty_data == False:
-            #     plan_context.has_sql_data = True
+

+ 2 - 12
aiAgent_gd/qwen_agent/sub_agent/sql/land_site_selection_sql_agent.py

@@ -16,8 +16,6 @@ from qwen_agent.tools.tools import async_db
 class LandSiteSelectionSqlAgent(BaseSubAgent):
     def __init__(self, llm=None, llm_name=None, stream=False, name='LandSiteSelectionSqlAgent'):
         super(LandSiteSelectionSqlAgent, self).__init__(llm, llm_name, stream, name=name)
-        # self.llm_name = 'Code'
-        # self.llm_name = llm.model
         self.llm = llm
         self.tool_list = [{
             'name_for_human': '查询土地公开出让信息数据库',
@@ -95,8 +93,7 @@ class LandSiteSelectionSqlAgent(BaseSubAgent):
         if self.retriever:
             self.SubAgent_PROMPT = self.SubAgent_PROMPT.format(refs='\n'.join(
                 [f"{i}\t{n}:{q}" for i, (n, q) in enumerate(self.retriever.get_relevant_documents(query, top_k=2))]))
-        # print('Examples:','\n'.join([f"{i}\t{n}:{q}" for i,(n,q) in enumerate(self.retriever.get_relevant_documents(plan_context.user_request,top_k=5))]))
-        # local_message, is_success = self._core(query,messages)
+
         async for msg in self._core(query, messages):
             yield msg
             if isinstance(msg, ChatResponseChoice):
@@ -107,10 +104,6 @@ class LandSiteSelectionSqlAgent(BaseSubAgent):
         if self.is_success:
 
             sql_json_res = json.loads(self.exec_res.replace('\n', '').lstrip('```json').rstrip('```'))
-
-            # print("sql_json_res:",sql_json_res)
-            # headers = sql_json_res.keys()
-            # result = zip(*sql_json_res.values())
             headers = list(sql_json_res[0].keys())
             exec_res = copy.deepcopy(sql_json_res)
             if 'bid' in headers:
@@ -138,8 +131,7 @@ class LandSiteSelectionSqlAgent(BaseSubAgent):
             yield ChatResponseChoice(role='info', content=self.SubAgent_Summary_Prompt.format(obs=markdown_table))
 
             plan_context.has_sql_data = True
-            # if self.plugin_args:
-            #     self.sql_code = json.loads(self.plugin_args)['sql_code']
+
             print('sql plugin args:', self.plugin_args)
         else:
             self.empty_data = True
@@ -193,5 +185,3 @@ class LandSiteSelectionSqlAgent(BaseSubAgent):
         except:
             traceback.print_exc()
             return f"ERROR:{traceback.format_exc()}", plugin_args, False
-
-

+ 12 - 1
aiAgent_gd/xuanzhi_query.py

@@ -4,7 +4,10 @@ from fastapi import FastAPI, APIRouter
 
 from qwen_agent.tools.tools import async_db
 from qwen_agent.tools.gis.spatial_analysis.geo_analysis import intersect_kfq, intersect_gyyd
+
 router = APIRouter()
+
+
 @router.get("/kgQuery")
 async def kgQuery(id: str):
     sql = f'select id, xzqmc, xzqdm, dymc, yddm, ydxz, ydmj, rjlsx, rjlxx, jzmdsx, jzmdxx, jzgdsx, jzgdxx, ldlsx, ldlxx, pfwh, pfsj, st_area(shape::geography) as pfmarea,st_astext(shape) as geom, st_astext(st_centroid(shape)) as center_wkt from sde.kzxxxgh where id in ({id})'
@@ -29,6 +32,14 @@ async def yjjbntQuery(id: str):
     return json.loads(result)
 
 
+@router.get("/populationQuery")
+async def populationQuery(name: str):
+    sql = f"select pop_age_o as 老年人口, pop_age_m as 中青年人口,pop_sex_m as 男性人口,pop_sex_f as 女性人口,pop as 人口总量 from sde.layer_poi_population where name = '{name}'"
+    res_tuples = await async_db.run(sql)
+    result, success = res_tuples
+    return json.loads(result)
+
+
 @router.get("/kfqintersect")
 async def kfqintersect(wkt: str):
     result = await intersect_kfq(
@@ -39,4 +50,4 @@ async def kfqintersect(wkt: str):
 @router.get("/gyydintersect")
 async def gyydintersect(wkt: str):
     result = await intersect_gyyd(wkt)
-    return result
+    return result