完全对齐模板:修正所有细节差异

- 修正 Bearer token 解析:添加空格检查(Bearer 后必须有空格)
- 修正 run_api_server.py:添加启动信息打印,格式与模板一致
- 修正 Dockerfile:添加 PYTHONDONTWRITEBYTECODE 环境变量
- 修正 Dockerfile HEALTHCHECK:添加 start-period 和 retries 参数
- 修正 requirements.txt:添加注释分组,与模板格式一致
This commit is contained in:
zhanggangyong
2026-01-24 09:13:15 +00:00
parent 746535bd83
commit d89edd3e74
4 changed files with 25 additions and 5 deletions
+8 -1
View File
@@ -1,10 +1,17 @@
FROM python:3.12-slim
WORKDIR /app
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
RUN apt-get update && apt-get install -y gcc curl && rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost:8000/health || exit 1
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8000/health || exit 1
CMD ["python", "run_api_server.py"]
+7
View File
@@ -1,6 +1,13 @@
# Pydantic AI
pydantic-ai>=0.0.14
# MCP
mcp>=0.9.0
fastmcp>=0.1.0
# FastAPI
fastapi>=0.109.0
uvicorn[standard]>=0.27.0
# HTTP Client
aiohttp>=3.9.0
+8 -2
View File
@@ -1,11 +1,17 @@
#!/usr/bin/env python
"""启动获客 Agent API 服务器"""
"""启动 API 服务器"""
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent))
if __name__ == '__main__':
from src.server.api_server import app
import uvicorn
import os
uvicorn.run(app, host=os.getenv('API_HOST', '0.0.0.0'), port=int(os.getenv('API_PORT', '8000')), log_level="info")
host = os.getenv('API_HOST', '0.0.0.0')
port = int(os.getenv('API_PORT', '8000'))
print(f"🚀 启动 Agent API: http://{host}:{port}")
uvicorn.run(app, host=host, port=port, log_level="info")
+2 -2
View File
@@ -55,7 +55,7 @@ async def verify_api_key(
return api_key.strip()
if authorization:
key = authorization[7:].strip() if authorization.startswith("Bearer") else authorization.strip()
key = authorization[7:].strip() if authorization.startswith("Bearer ") else authorization.strip()
if key and key != "sk":
return key
@@ -68,7 +68,7 @@ def get_api_key_from_request(request: Request) -> Optional[str]:
if not api_key:
auth = request.headers.get("Authorization")
if auth:
api_key = auth[7:] if auth.startswith("Bearer") else auth
api_key = auth[7:] if auth.startswith("Bearer ") else auth
return api_key