#!/usr/bin/env python3
"""
Grok API测试程序
测试与34ku.com服务器的通讯，并请求生成99乘法表
"""

import requests
import json
import sys

def test_grok_api():
    # 从文件读取API配置
    try:
        with open('34ku.txt', 'r') as f:
            lines = f.readlines()
            api_key = lines[0].strip()
            api_base = lines[3].strip()
    except Exception as e:
        print(f"❌ 读取配置文件失败: {e}")
        return False

    # API配置
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    # 构造请求数据 - 请求生成99乘法表
    data = {
        "model": "grok-beta",
        "messages": [
            {
                "role": "user",
                "content": "请编写一个完整的99乘法表，格式清晰易读"
            }
        ],
        "stream": False,
        "temperature": 0.7
    }

    print(f"🔍 测试Grok API通讯...")
    print(f"📡 API地址: {api_base}")
    print(f"🔑 API密钥: {api_key[:20]}...")
    print(f"\n📤 发送请求: 编写99乘法表\n")

    try:
        # 发送请求
        response = requests.post(
            f"{api_base}/v1/chat/completions",
            headers=headers,
            json=data,
            timeout=30
        )

        # 检查响应状态
        if response.status_code == 200:
            result = response.json()

            # 提取回复内容
            if 'choices' in result and len(result['choices']) > 0:
                content = result['choices'][0]['message']['content']

                print("✅ API通讯成功!")
                print(f"\n📥 Grok响应:\n")
                print("=" * 60)
                print(content)
                print("=" * 60)

                # 保存响应到文件
                with open('grok_response.txt', 'w', encoding='utf-8') as f:
                    f.write(content)
                print(f"\n💾 响应已保存到: grok_response.txt")

                return True
            else:
                print(f"❌ 响应格式异常: {json.dumps(result, indent=2, ensure_ascii=False)}")
                return False
        else:
            print(f"❌ API请求失败")
            print(f"状态码: {response.status_code}")
            print(f"响应: {response.text}")
            return False

    except requests.exceptions.Timeout:
        print("❌ 请求超时")
        return False
    except requests.exceptions.ConnectionError:
        print("❌ 连接失败，无法连接到服务器")
        return False
    except Exception as e:
        print(f"❌ 发生错误: {e}")
        return False

if __name__ == "__main__":
    success = test_grok_api()
    sys.exit(0 if success else 1)
