84 lines
3.3 KiB
Python
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()) |