154 lines
5.7 KiB
Python
154 lines
5.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
通过Google Cloud Console查看Memory Bank资源
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import asyncio
|
|
import json
|
|
import subprocess
|
|
from datetime import datetime
|
|
sys.path.append('src')
|
|
|
|
from config.doppler_config import get_google_genai_config
|
|
|
|
def get_access_token():
|
|
"""获取Google Cloud访问令牌"""
|
|
try:
|
|
result = subprocess.run(
|
|
['gcloud', 'auth', 'print-access-token'],
|
|
capture_output=True,
|
|
text=True,
|
|
check=True
|
|
)
|
|
return result.stdout.strip()
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"❌ 获取访问令牌失败: {e}")
|
|
return None
|
|
|
|
def make_api_request(url, token):
|
|
"""发起API请求"""
|
|
import requests
|
|
|
|
headers = {
|
|
'Authorization': f'Bearer {token}',
|
|
'Content-Type': 'application/json'
|
|
}
|
|
|
|
try:
|
|
response = requests.get(url, headers=headers)
|
|
return response.status_code, response.json() if response.content else {}
|
|
except Exception as e:
|
|
return None, str(e)
|
|
|
|
def main():
|
|
print("🔍 通过GCP API查看Memory Bank资源")
|
|
print("=" * 60)
|
|
|
|
# 获取配置
|
|
config = get_google_genai_config()
|
|
project_id = config.get('project_id')
|
|
location = config.get('location', 'us-central1')
|
|
|
|
print(f"📊 项目ID: {project_id}")
|
|
print(f"📍 位置: {location}")
|
|
print(f"🕐 查询时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
|
print()
|
|
|
|
# 获取访问令牌
|
|
print("🔑 获取访问令牌...")
|
|
token = get_access_token()
|
|
if not token:
|
|
print("❌ 无法获取访问令牌")
|
|
return
|
|
print(f"✅ 访问令牌: {token[:20]}...")
|
|
print()
|
|
|
|
# 尝试不同的API端点
|
|
api_endpoints = [
|
|
# Vertex AI API
|
|
f"https://aiplatform.googleapis.com/v1/projects/{project_id}/locations/{location}/operations",
|
|
f"https://aiplatform.googleapis.com/v1beta1/projects/{project_id}/locations/{location}/operations",
|
|
|
|
# Generative Language API
|
|
f"https://generativelanguage.googleapis.com/v1beta/projects/{project_id}/locations/{location}/operations",
|
|
|
|
# 尝试Memory Bank相关端点
|
|
f"https://aiplatform.googleapis.com/v1/projects/{project_id}/locations/{location}/memoryBanks",
|
|
f"https://aiplatform.googleapis.com/v1beta1/projects/{project_id}/locations/{location}/memoryBanks",
|
|
|
|
# 尝试其他可能的端点
|
|
f"https://generativelanguage.googleapis.com/v1beta/projects/{project_id}/locations/{location}/memoryBanks",
|
|
f"https://generativelanguage.googleapis.com/v1/projects/{project_id}/locations/{location}/memoryBanks",
|
|
]
|
|
|
|
print("🌐 测试API端点...")
|
|
print("-" * 40)
|
|
|
|
for i, endpoint in enumerate(api_endpoints, 1):
|
|
print(f"{i}. 测试: {endpoint.split('/')[-2]}/{endpoint.split('/')[-1]}")
|
|
|
|
status_code, response = make_api_request(endpoint, token)
|
|
|
|
if status_code == 200:
|
|
print(f" ✅ 成功 (200): 找到 {len(response.get('operations', response.get('memoryBanks', [])))} 个资源")
|
|
if response:
|
|
print(f" 📄 响应预览: {str(response)[:100]}...")
|
|
elif status_code == 404:
|
|
print(f" ⚠️ 未找到 (404): 端点不存在")
|
|
elif status_code == 403:
|
|
print(f" 🚫 权限不足 (403): 需要更多权限")
|
|
elif status_code:
|
|
print(f" ❌ 错误 ({status_code}): {str(response)[:50]}...")
|
|
else:
|
|
print(f" 💥 请求失败: {response}")
|
|
print()
|
|
|
|
# 查看项目信息
|
|
print("📋 项目信息...")
|
|
project_url = f"https://cloudresourcemanager.googleapis.com/v1/projects/{project_id}"
|
|
status_code, response = make_api_request(project_url, token)
|
|
|
|
if status_code == 200:
|
|
print(f" ✅ 项目名称: {response.get('name', 'N/A')}")
|
|
print(f" 📊 项目编号: {response.get('projectNumber', 'N/A')}")
|
|
print(f" 🏷️ 项目ID: {response.get('projectId', 'N/A')}")
|
|
print(f" 📅 创建时间: {response.get('createTime', 'N/A')}")
|
|
print(f" 🔄 生命周期: {response.get('lifecycleState', 'N/A')}")
|
|
else:
|
|
print(f" ❌ 无法获取项目信息: {status_code}")
|
|
print()
|
|
|
|
# 查看启用的服务
|
|
print("🔧 查看启用的AI相关服务...")
|
|
services_url = f"https://serviceusage.googleapis.com/v1/projects/{project_id}/services"
|
|
status_code, response = make_api_request(services_url, token)
|
|
|
|
if status_code == 200:
|
|
services = response.get('services', [])
|
|
ai_services = [s for s in services if 'ai' in s.get('config', {}).get('name', '').lower() or 'generative' in s.get('config', {}).get('name', '').lower()]
|
|
|
|
print(f" 📊 总服务数: {len(services)}")
|
|
print(f" 🤖 AI相关服务: {len(ai_services)}")
|
|
|
|
for service in ai_services[:10]: # 显示前10个
|
|
name = service.get('config', {}).get('name', 'Unknown')
|
|
state = service.get('state', 'Unknown')
|
|
print(f" • {name}: {state}")
|
|
else:
|
|
print(f" ❌ 无法获取服务信息: {status_code}")
|
|
|
|
print()
|
|
print("🎯 Memory Bank访问建议:")
|
|
print(" 1. 在Google Cloud Console中访问:")
|
|
print(f" https://console.cloud.google.com/vertex-ai/generative/memory-banks?project={project_id}")
|
|
print(" 2. 或者访问Vertex AI主页:")
|
|
print(f" https://console.cloud.google.com/vertex-ai?project={project_id}")
|
|
print(" 3. Memory Bank功能可能在'生成式AI'或'实验性功能'部分")
|
|
print()
|
|
print("🎉 GCP API查询完成!")
|
|
print("=" * 60)
|
|
|
|
if __name__ == "__main__":
|
|
main() |