File size: 1,296 Bytes
b064311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import uvicorn
import logging
from .app import app, key_manager
from .config import Config

# 获取日志记录器
logger = logging.getLogger("sora-api.main")

def init_app():
    """初始化应用程序"""
    try:
        # 密钥管理器已在app.py中初始化并加载完成
        # 检查是否有可用的密钥
        if not key_manager.keys:
            logger.warning("未配置API key,将使用测试密钥")
            key_manager.add_key(
                key_value="Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjE5MzQ0ZTY1LWJiYzktNDRkMS1hOWQwLWY5NTdiMDc5YmQwZSIsInR5cCI6IkpXVCJ9...",
                name="默认测试密钥"
            )
        
        logger.info(f"API服务初始化完成,已加载 {len(key_manager.keys)} 个API key")
    except Exception as e:
        logger.error(f"API服务初始化失败: {str(e)}")
        raise

def start():
    """启动API服务"""
    # 初始化应用
    init_app()
    
    # 打印配置信息
    Config.print_config()
    
    # 启动服务
    logger.info(f"启动服务: {Config.HOST}:{Config.PORT}")
    uvicorn.run(
        "src.app:app",
        host=Config.HOST,
        port=Config.PORT,
        reload=Config.VERBOSE_LOGGING  # 仅在调试模式下开启自动重载
    )

if __name__ == "__main__":
    start()