Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
LAE
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
文靖昊
LAE
Commits
d7261e1c
Commit
d7261e1c
authored
Nov 26, 2024
by
tinywell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
在线率工具兼容新接口;增加月度统计数据
parent
5f4098e7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
227 additions
and
74 deletions
+227
-74
tool_rate.py
src/agent/tool_rate.py
+187
-40
run_tool_picker_monitor.py
test/run_tool_picker_monitor.py
+9
-1
run_tool_picker_rate.py
test/run_tool_picker_rate.py
+31
-33
No files found.
src/agent/tool_rate.py
View file @
d7261e1c
...
@@ -66,12 +66,12 @@ class BaseRateTool(BaseTool):
...
@@ -66,12 +66,12 @@ class BaseRateTool(BaseTool):
class
RegionRateArgs
(
BaseModel
):
class
RegionRateArgs
(
BaseModel
):
"""地区在线率查询参数"""
"""地区在线率查询参数"""
region_name
:
str
=
Field
(
...
,
description
=
"地区名称,如果要查询全国数据,请输入空字符串"
)
region_name
:
str
=
Field
(
""
,
description
=
"地区名称,如果要查询全国数据,请输入空字符串"
)
start_time
:
str
=
Field
(
...
,
description
=
"开始时间 (YYYY-MM-DD)"
)
start_time
:
str
=
Field
(
""
,
description
=
"开始时间 (YYYY-MM-DD)"
)
end_time
:
str
=
Field
(
...
,
description
=
"结束时间 (YYYY-MM-DD)"
)
end_time
:
str
=
Field
(
""
,
description
=
"结束时间 (YYYY-MM-DD)"
)
month_statistics
:
bool
=
Field
(
False
,
description
=
"是否按月度查看一年内的在线率统计结果,默认不需要"
)
month_statistics
:
bool
=
Field
(
False
,
description
=
"是否按月度查看一年内的在线率统计结果,默认不需要"
)
device_items
:
str
=
Field
(
None
,
description
=
"监测项集合,多个逗号隔开,支持:滑坡仪、设备、传感器、雨量、地表位移、裂缝、倾角、加速度、土壤含水率、泥水位,默认为空"
)
device_items
:
str
=
Field
(
""
,
description
=
"监测项集合,多个逗号隔开,支持:滑坡仪、设备、传感器、雨量、地表位移、裂缝、倾角、加速度、土壤含水率、泥水位,默认为空"
)
manufacturer_name
:
str
=
Field
(
None
,
description
=
"设备厂商,默认为空"
)
manufacturer_name
:
str
=
Field
(
""
,
description
=
"设备厂商,默认为空"
)
class
RegionRateTool
(
BaseRateTool
):
class
RegionRateTool
(
BaseRateTool
):
"""查询全国或者特定地区设备在线率的工具"""
"""查询全国或者特定地区设备在线率的工具"""
...
@@ -85,13 +85,7 @@ class RegionRateTool(BaseRateTool):
...
@@ -85,13 +85,7 @@ class RegionRateTool(BaseRateTool):
self
.
client
=
RateClient
(
base_url
=
base_url
)
self
.
client
=
RateClient
(
base_url
=
base_url
)
self
.
logger
.
info
(
f
"初始化 RegionRateTool,base_url: {base_url}"
)
self
.
logger
.
info
(
f
"初始化 RegionRateTool,base_url: {base_url}"
)
def
_run
(
self
,
start_time
:
str
,
end_time
:
str
,
region_name
:
str
=
""
,
month_statistics
:
bool
=
False
,
device_items
:
str
=
None
,
manufacturer_name
:
str
=
None
)
->
Dict
[
str
,
Any
]:
def
_run
(
self
,
start_time
:
str
,
end_time
:
str
,
region_name
:
str
=
""
,
month_statistics
:
bool
=
False
,
device_items
:
str
=
""
,
manufacturer_name
:
str
=
""
)
->
Dict
[
str
,
Any
]:
return
self
.
get_region_online_rate
(
start_time
,
end_time
,
region_name
,
month_statistics
,
device_items
,
manufacturer_name
)
def
get_region_online_rate
(
self
,
start_time
:
str
,
end_time
:
str
,
region_name
:
str
=
""
,
month_statistics
:
bool
=
False
,
device_items
:
str
=
None
,
manufacturer_name
:
str
=
None
)
->
Dict
[
str
,
Any
]:
agent_start
=
time
.
time
()
self
.
logger
.
info
(
f
"查询地区在线率: {region_name}, 时间范围: {start_time} 至 {end_time}, 厂商: {manufacturer_name}, 监测项: {device_items}, 按月度查询统计: {month_statistics}"
)
code
=
""
code
=
""
if
region_name
!=
""
:
if
region_name
!=
""
:
self
.
logger
.
debug
(
f
"查找区域代码: {region_name}"
)
self
.
logger
.
debug
(
f
"查找区域代码: {region_name}"
)
...
@@ -103,43 +97,196 @@ class RegionRateTool(BaseRateTool):
...
@@ -103,43 +97,196 @@ class RegionRateTool(BaseRateTool):
code
=
codes
[
0
][
1
]
code
=
codes
[
0
][
1
]
self
.
logger
.
debug
(
f
"找到区域代码: {code}"
)
self
.
logger
.
debug
(
f
"找到区域代码: {code}"
)
if
month_statistics
:
# 按月度查询一年内的统计结果
if
month_statistics
:
year
=
start_time
.
split
(
'-'
)[
0
]
return
self
.
get_region_online_rate_of_month
(
region_name
,
code
,
start_time
,
end_time
)
self
.
logger
.
debug
(
f
"按月度查询,年份: {year}"
)
else
:
else
:
try
:
return
self
.
get_region_online_rate
(
start_time
,
end_time
,
region_name
,
code
,
month_statistics
,
device_items
,
manufacturer_name
)
start
=
time
.
time
()
df
=
self
.
client
.
query_rates_sync
(
code
,
start_time
,
end_time
)
def
get_region_online_rate
(
self
,
start_time
:
str
,
end_time
:
str
,
region_name
:
str
=
""
,
code
:
str
=
""
,
month_statistics
:
bool
=
False
,
device_items
:
str
=
None
,
manufacturer_name
:
str
=
None
)
->
Dict
[
str
,
Any
]:
query_time
=
time
.
time
()
-
start
agent_start
=
time
.
time
()
self
.
logger
.
debug
(
f
"API调用耗时: {query_time:.2f}秒"
)
self
.
logger
.
info
(
f
"查询地区在线率: {region_name}, 时间范围: {start_time} 至 {end_time}, 厂商: {manufacturer_name}, 监测项: {device_items}, 按月度查询统计: {month_statistics}"
)
try
:
start
=
time
.
time
()
df
=
self
.
client
.
query_rates_sync
(
code
,
start_time
,
end_time
,
manufacturer_name
,
device_items
)
query_time
=
time
.
time
()
-
start
self
.
logger
.
debug
(
f
"API调用耗时: {query_time:.2f}秒"
)
if
df
.
type
!=
1
or
df
.
resultdata
is
None
or
len
(
df
.
resultdata
)
==
0
:
if
df
.
type
!=
1
or
df
.
resultdata
is
None
or
len
(
df
.
resultdata
)
==
0
:
error_msg
=
f
'未找到{region_name}在{start_time}至{end_time}期间的数据,请检查是否有相关数据权限'
error_msg
=
f
'未找到{region_name}在{start_time}至{end_time}期间的数据,请检查是否有相关数据权限'
self
.
logger
.
warning
(
error_msg
)
self
.
logger
.
warning
(
error_msg
)
return
{
'code'
:
400
,
'message'
:
error_msg
}
return
{
'code'
:
400
,
'message'
:
error_msg
}
self
.
logger
.
debug
(
f
"查询结果: {df.resultdata}"
)
self
.
logger
.
debug
(
f
"查询结果: {df.resultdata}"
)
markdown
=
self
.
to_markdown
(
df
.
resultdata
)
# markdown = self.to_markdown(df.resultdata)
result_data
=
[]
for
item
in
df
.
resultdata
:
rate_date
=
self
.
_extract_rate_data
(
item
)
result_data
.
append
(
rate_date
)
data
=
{
data
=
{
'region'
:
region_name
,
'region'
:
region_name
,
'region_code'
:
code
,
'region_code'
:
code
,
'rate_data'
:
df
.
resultdata
,
'rate_data'
:
result_data
,
'markdown'
:
markdown
,
}
'date_range'
:
{
'start'
:
start_time
,
'end'
:
end_time
}
}
total_time
=
time
.
time
()
-
agent_start
total_time
=
time
.
time
()
-
agent_start
self
.
logger
.
info
(
f
"查询完成 {region_name}(code: {code}) 在线率,总耗时: {total_time:.2f}秒"
)
self
.
logger
.
info
(
f
"查询完成 {region_name}(code: {code}) 在线率,总耗时: {total_time:.2f}秒"
)
return
data
return
data
except
Exception
as
e
:
except
Exception
as
e
:
self
.
logger
.
error
(
f
"查询失败: {str(e)}"
,
exc_info
=
True
)
self
.
logger
.
error
(
f
"查询失败: {str(e)}"
,
exc_info
=
True
)
raise
raise
def
get_region_online_rate_of_month
(
self
,
region_name
:
str
,
code
:
str
,
start_time
:
str
,
end_time
:
str
,
device_items
:
str
=
None
)
->
Dict
[
str
,
Any
]:
"""查询指定地区在指定时间段内的月度在线率"""
year
=
start_time
.
split
(
'-'
)[
0
]
self
.
logger
.
debug
(
f
"按月度查询,年份: {year}"
)
try
:
df
=
self
.
client
.
query_rates_month_sync
(
year
,
code
,
device_items
)
if
df
.
type
!=
1
or
df
.
resultdata
is
None
or
len
(
df
.
resultdata
)
==
0
:
error_msg
=
f
'未找到{region_name}(code: {code})在{year}年内的数据,请检查是否有相关数据权限'
self
.
logger
.
warning
(
error_msg
)
return
{
'code'
:
400
,
'message'
:
error_msg
}
result_data
=
{}
for
index
,
item
in
enumerate
(
df
.
resultdata
):
month_data
=
self
.
_extract_rate_data
(
item
)
result_data
[
item
[
'month'
]]
=
month_data
# 排序
self
.
logger
.
debug
(
f
"查询结果: {df.resultdata}"
)
# markdown = self.to_markdown(df.resultdata)
data
=
{
'region'
:
region_name
,
'region_code'
:
code
,
'rate_data'
:
result_data
}
return
data
except
Exception
as
e
:
self
.
logger
.
error
(
f
"查询失败: {str(e)}"
,
exc_info
=
True
)
raise
def
_extract_rate_data
(
self
,
item
:
Dict
[
str
,
Any
])
->
Dict
[
str
,
Any
]:
"""提取月度数据"""
rate_date
=
{}
if
item
.
get
(
"name"
)
is
not
None
:
rate_date
[
'名称'
]
=
item
.
get
(
"name"
)
if
item
.
get
(
"rate"
)
is
not
None
:
rate_date
[
'在线率'
]
=
item
.
get
(
"rate"
)
if
item
.
get
(
"rtuCount"
)
is
not
None
:
rate_date
[
'在线数量'
]
=
item
.
get
(
"rtuCount"
)
if
item
.
get
(
"monitorRate"
)
is
not
None
:
rate_date
[
'滑坡仪在线率'
]
=
item
.
get
(
"monitorRate"
)
if
item
.
get
(
"sensorRate"
)
is
not
None
:
rate_date
[
'传感器在线率'
]
=
item
.
get
(
"sensorRate"
)
if
item
.
get
(
"monitorCount"
)
is
not
None
:
rate_date
[
'滑坡仪数量'
]
=
item
.
get
(
"monitorCount"
)
if
item
.
get
(
"sensorCount"
)
is
not
None
:
rate_date
[
'传感器数量'
]
=
item
.
get
(
"sensorCount"
)
if
item
.
get
(
"lfRate"
)
is
not
None
:
rate_date
[
'裂缝在线率'
]
=
item
.
get
(
"lfRate"
)
if
item
.
get
(
"lfCount"
)
is
not
None
:
rate_date
[
'裂缝数量'
]
=
item
.
get
(
"lfCount"
)
if
item
.
get
(
"gpRate"
)
is
not
None
:
rate_date
[
'地表位移在线率'
]
=
item
.
get
(
"gpRate"
)
if
item
.
get
(
"gpCount"
)
is
not
None
:
rate_date
[
'地表位移数量'
]
=
item
.
get
(
"gpCount"
)
if
item
.
get
(
"swRate"
)
is
not
None
:
rate_date
[
'深部位移在线率'
]
=
item
.
get
(
"swRate"
)
if
item
.
get
(
"swCount"
)
is
not
None
:
rate_date
[
'深部位移数量'
]
=
item
.
get
(
"swCount"
)
if
item
.
get
(
"jsRate"
)
is
not
None
:
rate_date
[
'加速度在线率'
]
=
item
.
get
(
"jsRate"
)
if
item
.
get
(
"jsCount"
)
is
not
None
:
rate_date
[
'加速度数量'
]
=
item
.
get
(
"jsCount"
)
if
item
.
get
(
"qjRate"
)
is
not
None
:
rate_date
[
'倾角在线率'
]
=
item
.
get
(
"qjRate"
)
if
item
.
get
(
"qjCount"
)
is
not
None
:
rate_date
[
'倾角数量'
]
=
item
.
get
(
"qjCount"
)
if
item
.
get
(
"zdRate"
)
is
not
None
:
rate_date
[
'振动在线率'
]
=
item
.
get
(
"zdRate"
)
if
item
.
get
(
"zdCount"
)
is
not
None
:
rate_date
[
'振动数量'
]
=
item
.
get
(
"zdCount"
)
if
item
.
get
(
"ylRate"
)
is
not
None
:
rate_date
[
'应力在线率'
]
=
item
.
get
(
"ylRate"
)
if
item
.
get
(
"ylCount"
)
is
not
None
:
rate_date
[
'应力数量'
]
=
item
.
get
(
"ylCount"
)
if
item
.
get
(
"tyRate"
)
is
not
None
:
rate_date
[
'土压力在线率'
]
=
item
.
get
(
"tyRate"
)
if
item
.
get
(
"tyCount"
)
is
not
None
:
rate_date
[
'土压力数量'
]
=
item
.
get
(
"tyCount"
)
if
item
.
get
(
"csRate"
)
is
not
None
:
rate_date
[
'次声在线率'
]
=
item
.
get
(
"csRate"
)
if
item
.
get
(
"csCount"
)
is
not
None
:
rate_date
[
'次声数量'
]
=
item
.
get
(
"csCount"
)
if
item
.
get
(
"dsRate"
)
is
not
None
:
rate_date
[
'地声在线率'
]
=
item
.
get
(
"dsRate"
)
if
item
.
get
(
"dsCount"
)
is
not
None
:
rate_date
[
'地声数量'
]
=
item
.
get
(
"dsCount"
)
if
item
.
get
(
"ylRate"
)
is
not
None
:
rate_date
[
'雨量在线率'
]
=
item
.
get
(
"ylRate"
)
if
item
.
get
(
"ylCount"
)
is
not
None
:
rate_date
[
'雨量数量'
]
=
item
.
get
(
"ylCount"
)
if
item
.
get
(
"qwRate"
)
is
not
None
:
rate_date
[
'气温在线率'
]
=
item
.
get
(
"qwRate"
)
if
item
.
get
(
"qwCount"
)
is
not
None
:
rate_date
[
'气温数量'
]
=
item
.
get
(
"qwCount"
)
if
item
.
get
(
"twRate"
)
is
not
None
:
rate_date
[
'土壤湿度在线率'
]
=
item
.
get
(
"twRate"
)
if
item
.
get
(
"twCount"
)
is
not
None
:
rate_date
[
'土壤湿度数量'
]
=
item
.
get
(
"twCount"
)
if
item
.
get
(
"hsRate"
)
is
not
None
:
rate_date
[
'土壤含水率在线率'
]
=
item
.
get
(
"hsRate"
)
if
item
.
get
(
"hsCount"
)
is
not
None
:
rate_date
[
'土壤含水率数量'
]
=
item
.
get
(
"hsCount"
)
if
item
.
get
(
"dbRate"
)
is
not
None
:
rate_date
[
'地表水温/水位在线率'
]
=
item
.
get
(
"dbRate"
)
if
item
.
get
(
"dbCount"
)
is
not
None
:
rate_date
[
'地表水温/水位数量'
]
=
item
.
get
(
"dbCount"
)
if
item
.
get
(
"syRate"
)
is
not
None
:
rate_date
[
'孔隙水温/水压在线率'
]
=
item
.
get
(
"syRate"
)
if
item
.
get
(
"syCount"
)
is
not
None
:
rate_date
[
'孔隙水温/水压数量'
]
=
item
.
get
(
"syCount"
)
if
item
.
get
(
"stRate"
)
is
not
None
:
rate_date
[
'渗透压力在线率'
]
=
item
.
get
(
"stRate"
)
if
item
.
get
(
"stCount"
)
is
not
None
:
rate_date
[
'渗透压力数量'
]
=
item
.
get
(
"stCount"
)
if
item
.
get
(
"lsRate"
)
is
not
None
:
rate_date
[
'流速在线率'
]
=
item
.
get
(
"lsRate"
)
if
item
.
get
(
"lsCount"
)
is
not
None
:
rate_date
[
'流速数量'
]
=
item
.
get
(
"lsCount"
)
if
item
.
get
(
"cjRate"
)
is
not
None
:
rate_date
[
'沉降在线率'
]
=
item
.
get
(
"cjRate"
)
if
item
.
get
(
"cjCount"
)
is
not
None
:
rate_date
[
'沉降数量'
]
=
item
.
get
(
"cjCount"
)
if
item
.
get
(
"qyRate"
)
is
not
None
:
rate_date
[
'气压在线率'
]
=
item
.
get
(
"qyRate"
)
if
item
.
get
(
"qyCount"
)
is
not
None
:
rate_date
[
'气压数量'
]
=
item
.
get
(
"qyCount"
)
if
item
.
get
(
"spRate"
)
is
not
None
:
rate_date
[
'视频在线率'
]
=
item
.
get
(
"spRate"
)
if
item
.
get
(
"spCount"
)
is
not
None
:
rate_date
[
'视频数量'
]
=
item
.
get
(
"spCount"
)
if
item
.
get
(
"nwRate"
)
is
not
None
:
rate_date
[
'泥水位在线率'
]
=
item
.
get
(
"nwRate"
)
if
item
.
get
(
"nwCount"
)
is
not
None
:
rate_date
[
'泥水位数量'
]
=
item
.
get
(
"nwCount"
)
if
item
.
get
(
"ldRate"
)
is
not
None
:
rate_date
[
'雷达在线率'
]
=
item
.
get
(
"ldRate"
)
if
item
.
get
(
"ldCount"
)
is
not
None
:
rate_date
[
'雷达数量'
]
=
item
.
get
(
"ldCount"
)
if
item
.
get
(
"lbRate"
)
is
not
None
:
rate_date
[
'预警喇叭在线率'
]
=
item
.
get
(
"lbRate"
)
if
item
.
get
(
"lbCount"
)
is
not
None
:
rate_date
[
'预警喇叭数量'
]
=
item
.
get
(
"lbCount"
)
return
rate_date
def
to_llm
(
self
,
region_name
:
str
,
start_time
:
str
,
end_time
:
str
,
data
:
Dict
[
str
,
Any
])
->
str
:
def
to_llm
(
self
,
region_name
:
str
,
start_time
:
str
,
end_time
:
str
,
data
:
Dict
[
str
,
Any
])
->
str
:
"""将数据转换为 LLM 可理解的格式"""
"""将数据转换为 LLM 可理解的格式"""
self
.
logger
.
debug
(
"开始将数据转换为 LLM 可理解的格式"
)
self
.
logger
.
debug
(
"开始将数据转换为 LLM 可理解的格式"
)
...
...
test/run_tool_picker_monitor.py
View file @
d7261e1c
...
@@ -75,7 +75,15 @@ def run_examples():
...
@@ -75,7 +75,15 @@ def run_examples():
"disaster_type"
:
"滑坡"
,
"disaster_type"
:
"滑坡"
,
}
}
}
}
}
},{
"query"
:
"甘肃省监控点的状态如何?"
,
"expected"
:
{
"tool"
:
"monitor_points_query"
,
"params"
:
{
"key"
:
"甘肃省陇南市"
}
}
},
]
]
# 为每个测试案例创建一个表格
# 为每个测试案例创建一个表格
...
...
test/run_tool_picker_rate.py
View file @
d7261e1c
...
@@ -21,14 +21,15 @@ def run_examples():
...
@@ -21,14 +21,15 @@ def run_examples():
model_name
=
"Qwen2-7B"
,
model_name
=
"Qwen2-7B"
,
verbose
=
True
verbose
=
True
)
)
base_url
=
"http://172.30.0.37:30007"
# 初始化工具
# 初始化工具
tools
=
[
tools
=
[
RegionRateTool
(),
RegionRateTool
(
base_url
=
base_url
),
RankingRateTool
(),
RankingRateTool
(
base_url
=
base_url
),
MonitorPointTool
(),
MonitorPointTool
(
base_url
=
base_url
),
]
]
tool_dict
=
{
tool
.
name
:
tool
for
tool
in
tools
}
# 初始化 ToolPicker
# 初始化 ToolPicker
picker
=
ToolPicker
(
llm
,
tools
)
picker
=
ToolPicker
(
llm
,
tools
)
...
@@ -42,7 +43,7 @@ def run_examples():
...
@@ -42,7 +43,7 @@ def run_examples():
"start_time"
:
"2024-11-19"
,
"start_time"
:
"2024-11-19"
,
"end_time"
:
"2024-11-19"
,
"end_time"
:
"2024-11-19"
,
"region_name"
:
""
,
"region_name"
:
""
,
"month_
required
"
:
False
"month_
statistics
"
:
False
}
}
}
}
},
},
...
@@ -54,7 +55,7 @@ def run_examples():
...
@@ -54,7 +55,7 @@ def run_examples():
"start_time"
:
"2024-11-19"
,
"start_time"
:
"2024-11-19"
,
"end_time"
:
"2024-11-19"
,
"end_time"
:
"2024-11-19"
,
"region_name"
:
"甘肃省"
,
"region_name"
:
"甘肃省"
,
"month_
required
"
:
False
"month_
statistics
"
:
False
}
}
}
}
},
},
...
@@ -77,15 +78,6 @@ def run_examples():
...
@@ -77,15 +78,6 @@ def run_examples():
}
}
},
},
{
{
"query"
:
"甘肃省监控点的状态如何?"
,
"expected"
:
{
"tool"
:
"monitor_points_query"
,
"params"
:
{
"key"
:
"甘肃省"
}
}
},
{
"query"
:
"2023年甘肃省每月的设备在线率分别是多少?"
,
"query"
:
"2023年甘肃省每月的设备在线率分别是多少?"
,
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
...
@@ -93,7 +85,7 @@ def run_examples():
...
@@ -93,7 +85,7 @@ def run_examples():
"start_time"
:
"2023-01-01"
,
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"甘肃省"
,
"region_name"
:
"甘肃省"
,
"month_
required
"
:
True
"month_
statistics
"
:
True
}
}
}
}
},
},
...
@@ -105,28 +97,28 @@ def run_examples():
...
@@ -105,28 +97,28 @@ def run_examples():
"start_time"
:
"2024-01-01"
,
"start_time"
:
"2024-01-01"
,
"end_time"
:
"2024-12-31"
,
"end_time"
:
"2024-12-31"
,
"region_name"
:
"甘肃省"
,
"region_name"
:
"甘肃省"
,
"month_
required
"
:
True
"month_
statistics
"
:
True
}
}
}
}
},
},
{
{
"query"
:
"2024年10月15日,
成都市武侯区
的设备在线率是多少?"
,
"query"
:
"2024年10月15日,
兰州市
的设备在线率是多少?"
,
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2024-10-15"
,
"start_time"
:
"2024-10-15"
,
"end_time"
:
"2024-10-15"
,
"end_time"
:
"2024-10-15"
,
"region_name"
:
"
成都市武侯区
"
,
"region_name"
:
"
兰州市
"
,
"month_
required
"
:
False
"month_
statistics
"
:
False
}
}
}
}
},
},
{
{
"query"
:
"2024年,
成都市武侯区
的设备在线率是多少?"
,
"query"
:
"2024年,
兰州市榆中县
的设备在线率是多少?"
,
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2024-
01-01"
,
"region_name"
:
"成都市武侯区"
,
"month_required
"
:
False
"start_time"
:
"2024-
11-26"
,
"region_name"
:
"兰州市榆中县"
,
"month_statistics
"
:
False
}
}
}
}
},
},
...
@@ -135,7 +127,7 @@ def run_examples():
...
@@ -135,7 +127,7 @@ def run_examples():
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"甘肃省"
,
"month_
required
"
:
True
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"甘肃省"
,
"month_
statistics
"
:
True
}
}
}
}
},
},
...
@@ -144,7 +136,7 @@ def run_examples():
...
@@ -144,7 +136,7 @@ def run_examples():
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2023-01-01"
,
"region_name"
:
"甘肃省"
,
"month_
required
"
:
True
"start_time"
:
"2023-01-01"
,
"region_name"
:
"甘肃省"
,
"month_
statistics
"
:
True
}
}
}
}
},
},
...
@@ -153,25 +145,25 @@ def run_examples():
...
@@ -153,25 +145,25 @@ def run_examples():
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2023-01-01"
,
"region_name"
:
""
,
"month_
required
"
:
True
"start_time"
:
"2023-01-01"
,
"region_name"
:
""
,
"month_
statistics
"
:
True
}
}
}
}
},
},
{
{
"query"
:
"2023年1月-2023年12月期间
西藏
实验点在线率是多少?"
,
"query"
:
"2023年1月-2023年12月期间
青海
实验点在线率是多少?"
,
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"
西藏"
,
"month_required
"
:
False
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"
青海"
,
"month_statistics
"
:
False
}
}
}
}
},
},
{
{
"query"
:
"2023年1月-2023年12月期间
西藏
实验点各月在线率是多少?"
,
"query"
:
"2023年1月-2023年12月期间
青海
实验点各月在线率是多少?"
,
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"
西藏"
,
"month_required
"
:
True
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"
青海"
,
"month_statistics
"
:
True
}
}
}
}
},
},
...
@@ -180,7 +172,7 @@ def run_examples():
...
@@ -180,7 +172,7 @@ def run_examples():
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2022-01-01"
,
"end_time"
:
"2022-12-31"
,
"region_name"
:
""
,
"month_
required
"
:
True
"start_time"
:
"2022-01-01"
,
"end_time"
:
"2022-12-31"
,
"region_name"
:
""
,
"month_
statistics
"
:
True
}
}
}
}
},
},
...
@@ -189,7 +181,7 @@ def run_examples():
...
@@ -189,7 +181,7 @@ def run_examples():
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"西藏"
,
"month_
required
"
:
True
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"西藏"
,
"month_
statistics
"
:
True
}
}
}
}
},
},
...
@@ -198,7 +190,7 @@ def run_examples():
...
@@ -198,7 +190,7 @@ def run_examples():
"expected"
:
{
"expected"
:
{
"tool"
:
"region_online_rate"
,
"tool"
:
"region_online_rate"
,
"params"
:
{
"params"
:
{
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"西藏"
,
"month_
required
"
:
True
"start_time"
:
"2023-01-01"
,
"end_time"
:
"2023-12-31"
,
"region_name"
:
"西藏"
,
"month_
statistics
"
:
True
}
}
}
}
}
}
...
@@ -237,7 +229,13 @@ def run_examples():
...
@@ -237,7 +229,13 @@ def run_examples():
actual_value
,
actual_value
,
"✓"
if
expected_value
==
actual_value
else
"✗"
"✓"
if
expected_value
==
actual_value
else
"✗"
)
)
tool
=
tool_dict
[
result
[
"tool"
]]
params
=
result
[
"params"
]
result
=
tool
.
invoke
(
params
)
print
(
result
)
except
Exception
as
e
:
except
Exception
as
e
:
table
.
add_row
(
"错误"
,
""
,
str
(
e
),
"✗"
)
table
.
add_row
(
"错误"
,
""
,
str
(
e
),
"✗"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment