File size: 2,259 Bytes
2809c18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
"""

xAI API相关功能模块 - 提供xAI API的调用和验证功能

"""
import requests

def validate_api_key(api_key):
    """

    验证xAI API密钥是否有效

    

    Args:

        api_key (str): 需要验证的xAI API密钥

    

    Returns:

        dict: 包含验证结果的字典,包括:

            - success (bool): API密钥验证成功为True,失败为False

            - return_message (str): 验证响应的具体消息,成功时为"200: Success!",失败时为错误详情

            - balance (float): 账户余额,固定为0

            - states (str): 账户状态,xAI没有Tier等级,默认为空字符串

    """
    url = "https://api.x.ai/v1/chat/completions"
    
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    
    payload = {
        "model": "grok-2-1212",
        "max_tokens": 1,
        "messages": [
            {"role": "user", "content": "Hello"}
        ]
    }
    
    try:
        response = requests.post(url, headers=headers, json=payload)
        
        if response.status_code == 200:
            return {
                "success": True,
                "return_message": "200: Success!",
                "balance": 0,
                "states": ""
            }
        else:
            return_message = ""
            try:
                error_data = response.json()
                if "error" in error_data:
                    return_message = error_data["error"].get("message", "")
                    return_message = f"{response.status_code}: {return_message}"
            except:
                return_message = f"{response.status_code}: {response.text or f'HTTP错误'}"
                
            return {
                "success": False,
                "return_message": return_message,
                "balance": 0,
                "states": ""
            }
    except Exception as e:
        error_str = str(e)
        print(f"验证API密钥时出错: {error_str}")
        return {
            "success": False,
            "return_message": f"500: 请求异常: {error_str}",
            "balance": 0,
            "states": ""
        }