Files
aiagent/publish_agent.py
2026-01-23 09:49:45 +08:00

103 lines
2.9 KiB
Python

#!/usr/bin/env python3
"""
发布Agent脚本
"""
import requests
import sys
BASE_URL = "http://localhost:8037"
def login(username="admin", password="123456"):
"""用户登录"""
login_data = {
"username": username,
"password": password
}
try:
response = requests.post(f"{BASE_URL}/api/v1/auth/login", data=login_data)
if response.status_code != 200:
print(f"❌ 登录失败: {response.status_code}")
return None, None
token = response.json().get("access_token")
if not token:
print("❌ 登录失败: 未获取到token")
return None, None
print(f"✅ 登录成功 (用户: {username})")
headers = {"Authorization": f"Bearer {token}"}
return token, headers
except Exception as e:
print(f"❌ 登录异常: {str(e)}")
return None, None
def deploy_agent(agent_id, headers):
"""发布Agent"""
try:
response = requests.post(
f"{BASE_URL}/api/v1/agents/{agent_id}/deploy",
headers=headers
)
if response.status_code == 200:
agent = response.json()
print(f"✅ Agent发布成功: {agent.get('name')} (状态: {agent.get('status')})")
return True
else:
print(f"❌ 发布失败: {response.status_code}")
print(f"响应: {response.text}")
return False
except Exception as e:
print(f"❌ 发布异常: {str(e)}")
return False
def find_agent_by_name(agent_name, headers):
"""通过名称查找Agent"""
try:
response = requests.get(
f"{BASE_URL}/api/v1/agents",
headers=headers,
params={"search": agent_name, "limit": 100}
)
if response.status_code != 200:
print(f"❌ 获取Agent列表失败: {response.status_code}")
return None
agents = response.json()
for agent in agents:
if agent.get("name") == agent_name:
return agent
return None
except Exception as e:
print(f"❌ 查找Agent异常: {str(e)}")
return None
if __name__ == "__main__":
agent_name = sys.argv[1] if len(sys.argv) > 1 else "知识库问答助手"
print(f"📝 发布Agent: {agent_name}\n")
# 登录
token, headers = login()
if not token:
sys.exit(1)
# 查找Agent
print(f"🔍 查找Agent: {agent_name}")
agent = find_agent_by_name(agent_name, headers)
if not agent:
print(f"❌ 未找到Agent: {agent_name}")
sys.exit(1)
print(f"✅ 找到Agent: {agent.get('name')} (ID: {agent.get('id')}, 状态: {agent.get('status')})")
# 发布Agent
print(f"\n🚀 发布Agent...")
if deploy_agent(agent.get('id'), headers):
print("\n✅ 完成!")
else:
sys.exit(1)