Commit e422ca87 authored by 何家明's avatar 何家明

接口请求添加鉴权校验

parent 1090a97c
......@@ -103,7 +103,7 @@ class McpClient:
def deal_customer_permission(self, customer_id: str):
if not self.customer_resource:
logger.info("No customer resources found!")
return "访问受限,客户信息未配置!"
return "请告知用户:当前访问受限,客户信息未配置!"
if customer_id == "bme":
customer_resource = "客户资源如下(如果用户查询没有指定客户,请提示并要求用户传入客户信息):\n"
customer_resource += "\n".join(
......@@ -113,7 +113,7 @@ class McpClient:
else:
customer = list(filter(lambda c: str(c["customerId"]) == customer_id, self.customer_resource))
if not customer:
return "访问受限,客户信息未配置!"
return "请告知用户:当前访问受限,客户信息不存在!"
return f"""请使用下面的客户信息:
客户id:{customer[0]['customerId']}
客户名:{customer[0]['customerName']}
......
# 端口配置
port: 8000
#当前激活的模型
active: bme-qwen3-32b
# 模型配置
model:
# 公司:qwen2.5-32b
bme-qwen2.5-32b:
......@@ -16,16 +21,29 @@ model:
api_key: Tc7sY47hiU5d1LNGbJjGBfqfY13IE3khIc0uBvpJ11U
base_url: http://10.10.10.12:30100/v1
model_name: deepseek-v3
# mcp服务执行脚本
server:
# 运行命令
command: python
args:
- ./server/server.py
# 日志配置
log:
base_path: log
# 远程调用
remote:
headers:
customerId: '8888'
isSuper: 'true'
token: 'b4d751b5ffff882b2e410c5901c80dc0705bb96f1bc4e8b47e918ad49085f90e'
base_url:
bme-screen-service: https://vis.bmetech.com/vis
# bme-screen-service: https://vis.bmetech.com/vis
bme-screen-service: http://localhost:9070/screen
# 跨域配置
cors:
allow_origins:
- "*"
......@@ -34,6 +52,8 @@ cors:
- "*"
allow_headers:
- "*"
# 数据库连接串
db:
driver: mysql+asyncmy
username: root
......
......@@ -9,7 +9,11 @@ from config.system import config
mcp = FastMCP("BME-MCP")
base_url = config["remote"]["base_url"]
remote = config["remote"]
headers = remote["headers"]
base_url = remote["base_url"]
bme_screen_service = base_url["bme-screen-service"]
......@@ -54,7 +58,7 @@ def get_air_pm_10_month_focus(customer_id: int) -> []:
"customerId": customer_id,
"type": "1", # 随便传,该参数当前无用
"order": "1", # 随便传,该参数当前无用
})
}, headers=headers)
response_data = deal_request_exception(response).get("data", {}).get("title", [])
return [{
"rank": data.get("rank"),
......@@ -84,7 +88,7 @@ def get_air_pm_rank(customer_id: int, order: int, statistic_type: int) -> []:
"customerId": customer_id,
"type": statistic_type,
"order": order,
})
}, headers=headers)
response_data = deal_request_exception(response).get("data", {})
result = {
"PM10": [{
......@@ -129,7 +133,7 @@ def get_tsp_rank(customer_id: int, order: int, statistic_type: int, size: int) -
"pageNo": 1,
"pageSize": get_size_limit(size),
"type": statistic_type,
})
}, headers=headers)
response_data = deal_request_exception(response).get("data", {})
result = {
"total": response_data.get("areaCount", 0),
......@@ -155,7 +159,7 @@ def get_governance_process_statistics(customer_id: int) -> {}:
allCount: 今日污染发生次数(次)
openCount: 今日雾炮开启次数(次)
"""
response = requests.get(bme_screen_service + "/eq/selectEquCount", {"customerId": customer_id})
response = requests.get(bme_screen_service + "/eq/selectEquCount", {"customerId": customer_id}, headers=headers)
response_data = deal_request_exception(response).get("data", {})
result = {
"timeCount": response_data.get("timeCount", 0),
......@@ -199,7 +203,7 @@ def get_governance_process_records(customer_id: int, instruct_type: str, device_
"StopDate": end_time,
"pageNo": 1,
"pageSize": get_size_limit(size),
})
}, headers=headers)
response_data = deal_request_exception(response).get("data", {})
result = {
"total": response_data.get("total", 0),
......@@ -220,7 +224,7 @@ def get_all_available_customer() -> []:
获取所有的客户信息
:return: 客户信息数据
"""
response = requests.get(bme_screen_service + "/reportgen/customer")
response = requests.get(bme_screen_service + "/reportgen/customer", headers=headers)
response_data = deal_request_exception(response).get("data", [])
return [{
"customerId": data.get("customerId"),
......
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