Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bme-mcp
Project
Project
Details
Activity
Releases
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
何家明
bme-mcp
Commits
08b6e43e
Commit
08b6e43e
authored
Nov 16, 2025
by
何家明
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加未来5分钟pm2.5的预测功能
parent
f147b406
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
1 deletion
+53
-1
config.yaml
config/config.yaml
+1
-1
server.py
server/server.py
+52
-0
No files found.
config/config.yaml
View file @
08b6e43e
...
...
@@ -41,8 +41,8 @@ remote:
isSuper
:
'
true'
token
:
'
b4d751b5ffff882b2e410c5901c80dc0705bb96f1bc4e8b47e918ad49085f90e'
base_url
:
bme-algorithm-prediction
:
http://10.10.10.17:43002
# 算法预测服务
bme-screen-service
:
https://vis.bmetech.com/vis
# bme-screen-service: http://localhost:9070/screen
bme-reduce-cost-screen-service
:
https://vis.bmetech.com/reducecostscreen
# bme-screen-service: http://192.168.138.158:4050/vis # 常州中天
# bme-reduce-cost-screen-service: http://192.168.138.158:4070/reducecostscreen # 常州中天
...
...
server/server.py
View file @
08b6e43e
...
...
@@ -20,6 +20,8 @@ bme_screen_service = base_url["bme-screen-service"]
bme_reduce_cost_screen_service
=
base_url
[
"bme-reduce-cost-screen-service"
]
bme_algorithm_prediction
=
base_url
[
"bme-algorithm-prediction"
]
def
deal_request_exception
(
response
):
"""
...
...
@@ -46,6 +48,56 @@ def get_size_limit(size: int, max_size=20, min_size=0) -> int:
size
=
min_size
if
size
<
min_size
else
size
return
size
@
mcp
.
tool
()
def
get_air_pm_25_prediction
(
customer_id
:
int
,
device_name
:
str
,
start_time
:
str
,
end_time
:
str
)
->
Any
:
"""
根据客户id和设备名称获取PM2.5未来节点(5分钟后)预测值
start_time如果没有指定,默认值是当前时间的一天前,如:2025-04-29 16:00:00;
end_time如果没有指定,默认值是当前时间,如:2025-04-30 16:00:00;
:param customer_id: 客户id
:param device_name: 设备名称
:param start_time: 开始时间,格式为yyyy-MM-dd HH:mm:ss
:param end_time: 结束时间,格式为yyyy-MM-dd HH:mm:ss
:return: 返回结构中的字段名解释:
flag:标记, True代表预测成功,data就是预测的值,False代表预测失败,data就是错误信息
data:预测结果,当Flag为True时才说明预测成功
"""
response
=
requests
.
get
(
bme_screen_service
+
"/monitor/getMonitorList"
,
{
"customerId"
:
customer_id
,
"order"
:
1
,
"type"
:
"1"
,
"pageNo"
:
"1"
,
"pageSize"
:
"1"
,
"index"
:
2
,
"typeId"
:
""
,
"deviceName"
:
device_name
},
headers
=
headers
)
device_records
=
deal_request_exception
(
response
)
.
get
(
"data"
,
{})
.
get
(
"page"
,
{})
.
get
(
"records"
,
[])
if
not
device_records
:
return
{
"flag"
:
False
,
"data"
:
"设备不存在"
}
device_no
=
device_records
[
0
]
.
get
(
"deviceNo"
)
response
=
requests
.
get
(
bme_screen_service
+
"/monitor/getMonitorDetailNew_new"
,
{
"customerId"
:
customer_id
,
"deviceNo"
:
device_no
,
"startTime"
:
start_time
,
"endTime"
:
end_time
},
headers
=
headers
)
assemble_data
=
deal_request_exception
(
response
)
.
get
(
"data"
,
{})
.
get
(
"assembleData"
,
[])
result
=
next
((
item
for
item
in
assemble_data
if
item
.
get
(
"name"
)
==
"PM2.5"
),
None
)
if
not
result
:
return
{
"flag"
:
False
,
"data"
:
"无历史数据"
}
history_data
=
result
.
get
(
"list"
,
[])
if
not
history_data
:
return
{
"flag"
:
False
,
"data"
:
"无历史数据"
}
signal_no
=
result
.
get
(
"signalNo"
)
response
=
requests
.
post
(
bme_algorithm_prediction
+
"/predict/pm2p5"
,
json
=
{
"deviceNo"
:
device_no
,
"signalNo"
:
signal_no
,
"historyList"
:
history_data
[
-
15
:],
})
predicted_result
=
next
(
iter
(
deal_request_exception
(
response
)
.
get
(
"predicted"
,
[{}])),
{})
return
{
"flag"
:
True
,
"data"
:
predicted_result
.
get
(
"value"
)}
@
mcp
.
tool
()
def
get_air_pm_10_month_focus
(
customer_id
:
int
)
->
Any
:
...
...
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