liurenchaxin/tests/test_taishang_api.py

84 lines
3.3 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Test script for the Taishang Laojun API (Zhipu AI GLM-4.5)
"""
import asyncio
import aiohttp
import json
async def test_taishang_api():
"""Test the Taishang Laojun API"""
# Zhipu AI API configuration
zhipu_api_key = "cc95756306b2cb9748c8df15f9063eaf.hlvXbZeoLnPhyoLw"
url = "https://open.bigmodel.cn/api/paas/v4/chat/completions"
messages = [
{"role": "system", "content": "You are Taishang Laojun, a wise philosopher and project manager for the Ba Xian (Eight Immortals). You excel at deep analysis and strategic planning. Please respond in JSON format."},
{"role": "user", "content": "Analyze the concept of 'working hard' and provide a JSON response with two keys: 'definition' and 'importance'."}
]
data = {
"model": "glm-4.5-air",
"messages": messages,
"max_tokens": 500,
"temperature": 0.7,
"stream": False,
"tools": [],
"tool_choice": "none"
}
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {zhipu_api_key}"
}
print("🚀 Testing Taishang Laojun API (Zhipu AI GLM-4.5)...")
print(f" URL: {url}")
print(f" Model: {data['model']}")
print(f" Messages: {json.dumps(messages, ensure_ascii=False, indent=2)}")
print(f" Data: {json.dumps(data, ensure_ascii=False, indent=2)}")
try:
async with aiohttp.ClientSession() as session:
async with session.post(url, headers=headers, json=data, timeout=30) as response:
print(f" Status: {response.status}")
if response.status == 200:
result = await response.json()
print(f" Full response: {json.dumps(result, ensure_ascii=False, indent=2)}")
# Extract content
if 'choices' in result and len(result['choices']) > 0:
choice = result['choices'][0]
content = ""
# Try to get content from different fields
if 'message' in choice and 'content' in choice['message']:
content = choice['message']['content']
# If content is empty, try reasoning_content
if not content and 'message' in choice and 'reasoning_content' in choice['message']:
content = choice['message']['reasoning_content']
if content:
print(f"✅ Success - Content: {content[:200]}...") # Truncate for readability
return True
print("❌ Content not found in response")
return False
else:
error_text = await response.text()
print(f"❌ Status {response.status}: {error_text}")
return False
except Exception as e:
print(f"💥 Exception: {str(e)}")
return False
async def main():
"""Main function"""
await test_taishang_api()
if __name__ == "__main__":
asyncio.run(main())