This commit is contained in:
@@ -3,8 +3,13 @@ FastAPI 后端 - 支持动态模型切换,使用 PostgreSQL 持久化记忆
|
||||
采用依赖注入模式,优雅管理资源生命周期
|
||||
"""
|
||||
|
||||
import warnings
|
||||
# 抑制 WebSocket 弃用警告(websockets 库升级导致,uvicorn 尚未跟进)
|
||||
warnings.filterwarnings("ignore", category=DeprecationWarning, module="websockets")
|
||||
warnings.filterwarnings("ignore", category=DeprecationWarning, module="uvicorn.protocols.websockets")
|
||||
|
||||
import os
|
||||
from app.config import DB_URI, BACKEND_PORT
|
||||
from ..config import DB_URI, BACKEND_PORT
|
||||
import uuid
|
||||
import json
|
||||
from contextlib import asynccontextmanager
|
||||
@@ -15,26 +20,26 @@ from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import StreamingResponse
|
||||
from pydantic import BaseModel
|
||||
from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver
|
||||
from .agent.agent_service import AIAgentService
|
||||
from .agent.agent_service import AIAgentService, create_serde
|
||||
from .agent.history import ThreadHistoryService
|
||||
from app.core.human_review import (
|
||||
from ..core.human_review import (
|
||||
ReviewManager,
|
||||
InMemoryReviewStore,
|
||||
ReviewStatus,
|
||||
HumanReview
|
||||
)
|
||||
from app.subgraphs.contact.api_client import ContactAPIClient
|
||||
from app.subgraphs.dictionary.api_client import DictionaryAPIClient
|
||||
from app.subgraphs.news_analysis.api_client import NewsAPIClient
|
||||
from ..subgraphs.contact.api_client import ContactAPIClient
|
||||
from ..subgraphs.dictionary.api_client import DictionaryAPIClient
|
||||
from ..subgraphs.news_analysis.api_client import NewsAPIClient
|
||||
from .db.init_db import init_subgraph_tables
|
||||
from .db.models import ContactRepository, DictionaryRepository, NewsRepository
|
||||
from app.logger import info, error
|
||||
from ..logger import info, error
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
"""应用生命周期管理:创建并注入全局服务"""
|
||||
# 1. 创建数据库连接池并初始化表(仅 checkpointer)
|
||||
async with AsyncPostgresSaver.from_conn_string(DB_URI) as checkpointer:
|
||||
async with AsyncPostgresSaver.from_conn_string(DB_URI, serde=create_serde()) as checkpointer:
|
||||
await checkpointer.setup()
|
||||
|
||||
# 1.5 初始化子图表
|
||||
|
||||
Reference in New Issue
Block a user