- DB: segments 用户输入文本(Alembic 0002) - Chat: 阶段检测/阶段提示/回复限制,编排与访谈/画像 prompts 调整 - Memoir: 忠实度检查 agent,叙事与分类等链路更新 - Core: agent 日志、Alembic 启动、LangChain/日志/配置等 - Story: time_hints;Memory 检索与相关测试 - Expo: 助手头像、会话页与消息拆分、实时会话与文案/i18n - Docs/scripts/tests: 迁移脚本、LLM JSON/记忆检索文档、新增单测
24 lines
704 B
Python
24 lines
704 B
Python
"""
|
||
HTTP 中间件:request_id 注入。
|
||
"""
|
||
|
||
import uuid
|
||
|
||
from app.core.logging import logger
|
||
from starlette.middleware.base import BaseHTTPMiddleware
|
||
from starlette.requests import Request
|
||
|
||
|
||
class RequestIdMiddleware(BaseHTTPMiddleware):
|
||
"""Inject request_id into request.state and response headers, bind to loguru context."""
|
||
|
||
async def dispatch(self, request: Request, call_next):
|
||
request_id = request.headers.get("X-Request-ID") or str(uuid.uuid4())
|
||
request.state.request_id = request_id
|
||
|
||
with logger.contextualize(request_id=request_id):
|
||
response = await call_next(request)
|
||
|
||
response.headers["X-Request-ID"] = request_id
|
||
return response
|