diff --git a/app.py b/app.py index 2bc6d324..7d92601f 100644 --- a/app.py +++ b/app.py @@ -1,7 +1,13 @@ import os +import sys +import asyncio os.environ["NUMEXPR_MAX_THREADS"] = "12" +# Fix for Windows asyncio compatibility with psycopg +if sys.platform == 'win32': + asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) + from fastapi import FastAPI, HTTPException, Depends, Body, status, Response from fastapi.middleware.cors import CORSMiddleware from fastapi.openapi.models import OAuthFlows as OAuthFlowsModel diff --git a/modules/features/chatBot/utils/checkpointer.py b/modules/features/chatBot/utils/checkpointer.py index 957f5f5d..a51e7455 100644 --- a/modules/features/chatBot/utils/checkpointer.py +++ b/modules/features/chatBot/utils/checkpointer.py @@ -1,8 +1,17 @@ """PostgreSQL checkpointer utilities for LangGraph memory.""" +import sys +import asyncio import logging from typing import Optional +# Fix for Windows asyncio compatibility with psycopg (backup in case app.py fix didn't apply) +if sys.platform == 'win32': + try: + asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) + except RuntimeError: + pass # Already set + from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver from psycopg_pool import AsyncConnectionPool from psycopg.rows import dict_row diff --git a/requirements.txt b/requirements.txt index 2378ca97..4a089c4b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ ## Web Framework & API -fastapi==0.104.1 +fastapi==0.115.0 # Upgraded for Pydantic v2 compatibility websockets==12.0 uvicorn==0.23.2 python-multipart==0.0.6