File size: 4,768 Bytes
d8229c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/usr/bin/env python3
"""
Environment setup script for OpenAI API configuration
"""

import os
import sys


def check_openai_config():
    """Check current OpenAI configuration"""
    print("🔍 检查当前OpenAI配置")
    print("-" * 40)
    
    api_key = os.getenv("OPENAI_API_KEY")
    base_url = os.getenv("OPENAI_BASE_URL", "https://api.openai.com/v1")
    model = os.getenv("OPENAI_MODEL", "gpt-4o-mini")
    
    print(f"🔑 OPENAI_API_KEY: {'✅ 已设置' if api_key else '❌ 未设置'}")
    print(f"🌐 OPENAI_BASE_URL: {base_url}")
    print(f"🤖 OPENAI_MODEL: {model}")
    
    if api_key:
        # 隐藏API key的大部分内容,只显示前4位和后4位
        masked_key = f"{api_key[:4]}...{api_key[-4:]}" if len(api_key) > 8 else "***"
        print(f"    (API Key: {masked_key})")
        return True
    else:
        return False


def show_setup_guide():
    """显示设置指南"""
    print("\n🚀 OpenAI API 设置指南")
    print("=" * 50)
    
    print("1. 获取OpenAI API Key:")
    print("   • 访问: https://platform.openai.com/api-keys")
    print("   • 登录或注册OpenAI账户")
    print("   • 点击 'Create new secret key'")
    print("   • 复制生成的API key")
    
    print("\n2. 设置环境变量:")
    if sys.platform.startswith('win'):
        print("   Windows (Command Prompt):")
        print("   set OPENAI_API_KEY=your_api_key_here")
        print("   Windows (PowerShell):")
        print("   $env:OPENAI_API_KEY=\"your_api_key_here\"")
    else:
        print("   macOS/Linux:")
        print("   export OPENAI_API_KEY=your_api_key_here")
    
    print("\n3. 可选配置:")
    print("   • 自定义API基础URL (如果使用代理或其他OpenAI兼容服务):")
    if sys.platform.startswith('win'):
        print("     set OPENAI_BASE_URL=https://your-proxy.com/v1")
    else:
        print("     export OPENAI_BASE_URL=https://your-proxy.com/v1")
    
    print("   • 自定义模型 (默认: gpt-4o-mini):")
    if sys.platform.startswith('win'):
        print("     set OPENAI_MODEL=gpt-3.5-turbo")
    else:
        print("     export OPENAI_MODEL=gpt-3.5-turbo")
    
    print("\n4. 重启应用:")
    print("   python app.py")


def show_cost_info():
    """显示费用信息"""
    print("\n💰 OpenAI API 费用说明")
    print("=" * 30)
    print("• gpt-4o-mini (推荐):")
    print("  - 输入: $0.15/1M tokens")
    print("  - 输出: $0.60/1M tokens")
    print("• gpt-3.5-turbo:")
    print("  - 输入: $0.50/1M tokens")
    print("  - 输出: $1.50/1M tokens")
    print("• gpt-4:")
    print("  - 输入: $30.00/1M tokens")
    print("  - 输出: $60.00/1M tokens")
    
    print("\n📊 预估使用量:")
    print("• 每次challenge评分查询: ~100-200 tokens")
    print("• 每次计划生成: ~200-300 tokens")
    print("• 预计每1000次查询成本: $0.02-0.10 (使用gpt-4o-mini)")


def show_troubleshooting():
    """显示故障排除指南"""
    print("\n🔧 故障排除")
    print("=" * 20)
    print("如果遇到问题:")
    print("1. 确认API key正确设置且有效")
    print("2. 检查网络连接")
    print("3. 确认OpenAI账户有足够余额")
    print("4. 如果使用代理,确认OPENAI_BASE_URL正确")
    print("5. 查看应用日志中的详细错误信息")


def create_env_file():
    """创建.env文件示例"""
    env_content = """# OpenAI API Configuration
# 在此处设置您的OpenAI API Key
OPENAI_API_KEY=your_api_key_here

# 可选: 自定义API基础URL (用于代理或其他兼容服务)
# OPENAI_BASE_URL=https://api.openai.com/v1

# 可选: 自定义模型 (默认: gpt-4o-mini)
# OPENAI_MODEL=gpt-4o-mini
"""
    
    try:
        with open('.env.example', 'w', encoding='utf-8') as f:
            f.write(env_content)
        print("✅ 已创建 .env.example 文件")
        print("   请复制为 .env 并填入您的API key")
    except Exception as e:
        print(f"❌ 创建 .env.example 失败: {e}")


def main():
    print("🤖 AI Agent - OpenAI API 配置助手")
    print("=" * 50)
    
    # 检查当前配置
    has_api_key = check_openai_config()
    
    if has_api_key:
        print("\n✅ OpenAI API 已配置完成!")
        print("您可以直接运行应用: python app.py")
    else:
        print("\n❌ OpenAI API 未配置")
        show_setup_guide()
    
    # 显示费用信息
    show_cost_info()
    
    # 创建环境文件示例
    print("\n📝 创建配置文件示例")
    print("-" * 30)
    create_env_file()
    
    # 显示故障排除
    show_troubleshooting()
    
    print("\n" + "=" * 50)
    print("配置完成后,请运行: python app.py")
    print("=" * 50)


if __name__ == "__main__":
    main()