wx-agent/agent_role_request.py
2026-07-15 16:30:58 +08:00

157 lines
3.5 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# # bind_agents.py
# import requests
# import urllib3
# urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# BASE_URL = "https://devb.zdht.hjkl01.cn:65432"
# ROLE_BIND_API = f"{BASE_URL}/api/v1/agent-roles/association"
# HEADERS = {
# "Accept": "application/json",
# "Content-Type": "application/json",
# }
# TIMEOUT = 10
# INPUT_FILE = "agent_ids.txt"
# # 角色 ID
# AGENT_ROLE_0 = "1" # 1-8
# AGENT_ROLE_1 = "2" # 1-4
# AGENT_ROLE_2 = "3" # 5-6
# AGENT_ROLE_3 = "4" # 7-8
# def calc_role_id_by_index(index: int) -> str:
# if 1 <= index <= 4:
# return AGENT_ROLE_1
# elif 5 <= index <= 6:
# return AGENT_ROLE_2
# elif 7 <= index <= 8:
# return AGENT_ROLE_3
# else:
# raise ValueError("非法 icon_index")
# def bind_agent(agent_id: str, role_id: str):
# payload = [
# {
# "agent_id": agent_id,
# "agent_role_id": role_id,
# "is_active": True,
# }
# ]
# resp = requests.post(
# ROLE_BIND_API,
# headers=HEADERS,
# json=payload,
# verify=False,
# timeout=TIMEOUT,
# )
# print(f"[BIND] {agent_id} -> role {role_id} => {resp.status_code}")
# if resp.status_code not in (200, 201):
# print(" ↳", resp.text)
# def main():
# with open(INPUT_FILE, "r", encoding="utf-8") as f:
# agent_ids = [line.strip() for line in f if line.strip()]
# print(f"=== 读取到 {len(agent_ids)} 个 Agent ===")
# for idx, agent_id in enumerate(agent_ids, start=1):
# role_id = calc_role_id_by_index(idx)
# bind_agent(agent_id, role_id)
# print("\n✅ 绑定完成")
# if __name__ == "__main__":
# main()
import requests
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
BASE_URL = "http://192.168.0.46:22000"
ROLE_BIND_API = f"{BASE_URL}/api/v1/agent-roles/association"
HEADERS = {
"Accept": "application/json",
"Content-Type": "application/json",
}
TIMEOUT = 10
INPUT_FILE = "agent_ids.txt"
# 角色 ID
AGENT_ROLE_0 = "1" # 所有 Agent 必绑
AGENT_ROLE_1 = "2" # 1-4
AGENT_ROLE_2 = "3" # 5-6
AGENT_ROLE_3 = "4" # 7-8
def calc_role_id_by_index(index: int) -> str:
if 1 <= index <= 4:
return AGENT_ROLE_1
elif 5 <= index <= 6:
return AGENT_ROLE_2
elif 7 <= index <= 8:
return AGENT_ROLE_3
else:
raise ValueError("非法 index")
def bind_agent(agent_id: str, role_id: str):
payload = [
{
"agent_id": agent_id,
"agent_role_id": role_id,
"is_active": True,
}
]
resp = requests.post(
ROLE_BIND_API,
headers=HEADERS,
json=payload,
verify=False,
timeout=TIMEOUT,
)
print(f"[BIND] {agent_id} -> role {role_id} => {resp.status_code}")
if resp.status_code not in (200, 201):
print("", resp.text)
def main():
with open(INPUT_FILE, "r", encoding="utf-8") as f:
agent_ids = [line.strip() for line in f if line.strip()]
print(f"=== 读取到 {len(agent_ids)} 个 Agent ===")
for idx, agent_id in enumerate(agent_ids, start=1):
# 1⃣ 所有 Agent 统一绑定角色 1
bind_agent(agent_id, AGENT_ROLE_0)
# 2⃣ 再绑定分组角色
group_role = calc_role_id_by_index(idx)
# 防止重复绑定
if group_role != AGENT_ROLE_0:
bind_agent(agent_id, group_role)
print("\n✅ 绑定完成(角色 1 + 分组角色)")
if __name__ == "__main__":
main()