1- from typing import Optional , Any , Dict
1+ from typing import Any
22
33from fastapi import Depends , HTTPException
4- from pydantic import BaseModel
54from fastapi .responses import JSONResponse , StreamingResponse
6- from utils . logging_config import get_logger
5+ from pydantic import BaseModel
76
87from dependencies import (
98 get_chat_service ,
109 get_session_manager ,
11- get_current_user ,
1210 require_permission ,
1311)
1412from session_manager import User
13+ from utils .logging_config import get_logger
1514
1615logger = get_logger (__name__ )
1716
@@ -20,7 +19,7 @@ def _openrag_user_id(user: User) -> str:
2019 return getattr (user , "db_user_id" , None ) or user .user_id
2120
2221
23- async def _assert_owns (session_id : Optional [ str ] , user_id : str ) -> None :
22+ async def _assert_owns (session_id : str | None , user_id : str ) -> None :
2423 """Raise 403 if `session_id` is set but not owned by `user_id`.
2524
2625 No-op when `session_id` is None (new conversation, nothing to check).
@@ -30,6 +29,7 @@ async def _assert_owns(session_id: Optional[str], user_id: str) -> None:
3029 if not session_id :
3130 return
3231 from services .session_ownership_service import session_ownership_service
32+
3333 owner = await session_ownership_service .get_session_owner (session_id )
3434 if owner is None :
3535 raise HTTPException (status_code = 404 , detail = {"error" : "session_not_found" })
@@ -39,15 +39,15 @@ async def _assert_owns(session_id: Optional[str], user_id: str) -> None:
3939
4040class ChatBody (BaseModel ):
4141 prompt : str
42- previous_response_id : Optional [ str ] = None
42+ previous_response_id : str | None = None
4343 # OpenRAG sidebar/thread id. Distinct from previous_response_id so a retry
4444 # after an error can stay in the same chat while starting a fresh Langflow session.
45- conversation_id : Optional [ str ] = None
45+ conversation_id : str | None = None
4646 stream : bool = False
47- filters : Optional [ Dict [ str , Any ]] = None
47+ filters : dict [ str , Any ] | None = None
4848 limit : int = 10
4949 scoreThreshold : float = 0
50- filter_id : Optional [ str ] = None
50+ filter_id : str | None = None
5151
5252
5353async def chat_endpoint (
@@ -67,9 +67,11 @@ async def chat_endpoint(
6767
6868 if body .filters :
6969 from auth_context import set_search_filters
70+
7071 set_search_filters (body .filters )
7172
72- from auth_context import set_search_limit , set_score_threshold
73+ from auth_context import set_score_threshold , set_search_limit
74+
7375 set_search_limit (body .limit )
7476 set_score_threshold (body .scoreThreshold )
7577
@@ -123,9 +125,11 @@ async def langflow_endpoint(
123125
124126 if body .filters :
125127 from auth_context import set_search_filters
128+
126129 set_search_filters (body .filters )
127130
128- from auth_context import set_search_limit , set_score_threshold
131+ from auth_context import set_score_threshold , set_search_limit
132+
129133 set_search_limit (body .limit )
130134 set_score_threshold (body .scoreThreshold )
131135
@@ -171,9 +175,7 @@ async def langflow_endpoint(
171175
172176 except Exception as e :
173177 logger .exception ("[CHAT] Langflow request failed" )
174- return JSONResponse (
175- {"error" : f"Langflow request failed: { str (e )} " }, status_code = 500
176- )
178+ return JSONResponse ({"error" : f"Langflow request failed: { str (e )} " }, status_code = 500 )
177179
178180
179181async def chat_history_endpoint (
@@ -186,9 +188,7 @@ async def chat_history_endpoint(
186188 return JSONResponse (history )
187189 except Exception as e :
188190 logger .exception ("[CHAT] Failed to get chat history" )
189- return JSONResponse (
190- {"error" : f"Failed to get chat history: { str (e )} " }, status_code = 500
191- )
191+ return JSONResponse ({"error" : f"Failed to get chat history: { str (e )} " }, status_code = 500 )
192192
193193
194194async def langflow_history_endpoint (
@@ -201,9 +201,7 @@ async def langflow_history_endpoint(
201201 return JSONResponse (history )
202202 except Exception as e :
203203 logger .exception ("[CHAT] Failed to get langflow history" )
204- return JSONResponse (
205- {"error" : f"Failed to get langflow history: { str (e )} " }, status_code = 500
206- )
204+ return JSONResponse ({"error" : f"Failed to get langflow history: { str (e )} " }, status_code = 500 )
207205
208206
209207async def delete_session_endpoint (
@@ -221,11 +219,8 @@ async def delete_session_endpoint(
221219 return JSONResponse ({"message" : "Session deleted successfully" })
222220 else :
223221 return JSONResponse (
224- {"error" : result .get ("error" , "Failed to delete session" )},
225- status_code = 500
222+ {"error" : result .get ("error" , "Failed to delete session" )}, status_code = 500
226223 )
227224 except Exception as e :
228225 logger .error (f"Error deleting session: { e } " )
229- return JSONResponse (
230- {"error" : f"Failed to delete session: { str (e )} " }, status_code = 500
231- )
226+ return JSONResponse ({"error" : f"Failed to delete session: { str (e )} " }, status_code = 500 )
0 commit comments