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

接口请求添加鉴权校验

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