feat/ internal eval平台现支持实机联调。 1. 显示当前本地数据库里登录用户的历史聊天,已生成的回忆录。支持在网页直接对话,不依赖手机app。

This commit is contained in:
Kevin
2026-04-20 11:58:32 +08:00
parent 1194e1ed71
commit e848f26354
18 changed files with 1339 additions and 12 deletions

View File

@@ -5,6 +5,7 @@ from fastapi import APIRouter, Depends, File, HTTPException, UploadFile, status
from fastapi.responses import FileResponse
from PIL import Image
from app.core.config import settings
from app.core.dependencies import get_current_user
from app.core.logging import get_logger
from app.features.auth.deps import get_auth_service
@@ -12,6 +13,7 @@ from app.features.auth.schemas import (
ChangePasswordRequest,
ChangePhoneRequest,
LoginRequest,
MockSmsLoginRequest,
RefreshTokenRequest,
RegisterRequest,
ResetPasswordRequest,
@@ -73,6 +75,13 @@ def _check_terms(agreed: bool) -> None:
)
def _mock_sms_login_route_enabled() -> bool:
env = (settings.app_environment or "").lower().strip()
if env == "production":
return False
return bool(settings.mock_sms_login_enabled)
# ── registration & login ─────────────────────────────────────
@@ -410,6 +419,36 @@ async def login_with_sms(
)
@router.post(
"/mock/sms-login",
response_model=TokenResponse,
summary="[评测] Mock 短信登录(跳过验证码)",
description=(
"需 MOCK_SMS_LOGIN_ENABLED=1 且 APP_ENV 非 production。"
"供 Eval Web 等内网工具联调,勿在生产环境开启。"
),
responses={404: {"description": "未启用或生产环境已禁用"}},
)
async def mock_sms_login_route(
request: MockSmsLoginRequest,
service: AuthService = Depends(get_auth_service),
):
if not _mock_sms_login_route_enabled():
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Not Found")
_check_terms(request.agreed_to_terms)
try:
result = await service.mock_sms_login(
phone=request.phone,
nickname=request.nickname,
)
except AuthError as e:
raise _map_auth_error(e)
return TokenResponse(
access_token=result["access_token"],
refresh_token=result["refresh_token"],
)
@router.post(
"/register/sms",
response_model=TokenResponse,