Files

72 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""
OpenAI Responses API ↔ DeepSeek Chat API 流式转发代理
启动:
python main.py --port 12345
"""
import argparse
import sys
# ===================== 命令行参数 =====================
parser = argparse.ArgumentParser(description="Codex DeepSeek Proxy")
parser.add_argument(
"--port", type=int, default=12345, help="服务运行端口,默认 12345"
)
parser.add_argument(
"--host", type=str, default="0.0.0.0", help="绑定地址,默认 0.0.0.0"
)
parser.add_argument(
"--debug",
action="store_true",
help="启用调试日志(覆盖 DEEPSEEK_DEBUG 环境变量)",
)
args = parser.parse_args()
# ===================== 初始化 API Key =====================
# 必须在 FastAPI 应用创建前完成,因为 config 模块在 import 时加载 .env
from app.config import ensure_api_key, ensure_my_api_key
key = ensure_api_key()
if not key:
sys.exit(1)
my_key = ensure_my_api_key()
if not my_key:
sys.exit(1)
# ===================== FastAPI 应用创建 =====================
from fastapi import FastAPI
from routers import register_routes
from routers.lifespan import create_lifespan
from routers.middleware import setup_middleware
app = FastAPI(
title="Codex DeepSeek Proxy",
description="OpenAI Responses API ↔ DeepSeek Chat API 流式转发代理",
version="0.2.0",
lifespan=create_lifespan,
)
@app.get("/health")
async def health_check():
"""健康检查端点"""
return {"status": "ok"}
# 配置中间件
setup_middleware(app)
# 注册路由
register_routes(app)
# ===================== 服务启动 =====================
if __name__ == "__main__":
import uvicorn
uvicorn.run(
app,
host=args.host,
port=args.port,
access_log=True,
)