Commit 86fa9fa8 by tinywell

1设备传感器数量查询接口接入;问题类型识别参数说明优化;工具返回数据结构精简

parent 031dfa1e
......@@ -22,6 +22,7 @@ class WarningArgs(BaseModel):
start_time: str = Field("", description="开始时间 (YYYY-MM-DD HH:mm:ss)")
end_time: str = Field("", description="结束时间 (YYYY-MM-DD HH:mm:ss)")
region_name: str = Field("", description="地区名称,如果要查询全国数据,请输入空字符串")
query_type: str = Field("1", description="查询类型,1 表示查询一段时间内的综合数据,2 表示查询指定年份全年按月度统计的虚警率,处置率等信息")
class WarningTool(BaseTool):
"""查询预警处置和虚警情况"""
......@@ -38,7 +39,7 @@ class WarningTool(BaseTool):
self.logger.info(f"初始化 WarningTool,base_url: {base_url}")
def _run(self, start_time: str, end_time: str, region_name: str="") -> Dict[str, Any]:
def _run(self, start_time: str, end_time: str, region_name: str="", query_type: str="1") -> Dict[str, Any]:
code = ""
if region_name != "":
self.logger.debug(f"查找区域代码: {region_name}")
......@@ -52,14 +53,12 @@ class WarningTool(BaseTool):
year = start_time.split("-")[0]
detail = self.get_warning_statistics(start_time, end_time, region_name, code)
monthly = self.get_warning_statistics_of_month(year, region_name, code)
if monthly['code'] != 200:
if query_type == "1":
detail = self.get_warning_statistics(start_time, end_time, region_name, code)
return detail
else:
monthly = self.get_warning_statistics_of_month(year, region_name, code)
return monthly
return {
"整体详细数据": detail['data'] if detail['code'] == 200 else detail['message'],
"各月数据": monthly['data'] if monthly['code'] == 200 else monthly['message']
}
def get_warning_statistics(self, start_time: str, end_time: str, region_name: str="", code: str="") -> Dict[str, Any]:
try:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment