1- from typing import Optional , Any , Dict
1+ from typing import Any , Dict , Optional
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 ,
10- get_session_manager ,
119 get_current_user ,
10+ get_session_manager ,
1211 require_permission ,
1312)
1413from session_manager import User
14+ from utils .logging_config import get_logger
1515
1616logger = get_logger (__name__ )
1717
@@ -20,7 +20,7 @@ def _openrag_user_id(user: User) -> str:
2020 return getattr (user , "db_user_id" , None ) or user .user_id
2121
2222
23- async def _assert_owns (session_id : Optional [ str ] , user_id : str ) -> None :
23+ async def _assert_owns (session_id : str | None , user_id : str ) -> None :
2424 """Raise 403 if `session_id` is set but not owned by `user_id`.
2525
2626 No-op when `session_id` is None (new conversation, nothing to check).
@@ -30,6 +30,7 @@ async def _assert_owns(session_id: Optional[str], user_id: str) -> None:
3030 if not session_id :
3131 return
3232 from services .session_ownership_service import session_ownership_service
33+
3334 owner = await session_ownership_service .get_session_owner (session_id )
3435 if owner is None :
3536 raise HTTPException (status_code = 404 , detail = {"error" : "session_not_found" })
@@ -39,15 +40,15 @@ async def _assert_owns(session_id: Optional[str], user_id: str) -> None:
3940
4041class ChatBody (BaseModel ):
4142 prompt : str
42- previous_response_id : Optional [ str ] = None
43+ previous_response_id : str | None = None
4344 # OpenRAG sidebar/thread id. Distinct from previous_response_id so a retry
4445 # after an error can stay in the same chat while starting a fresh Langflow session.
45- conversation_id : Optional [ str ] = None
46+ conversation_id : str | None = None
4647 stream : bool = False
47- filters : Optional [ Dict [ str , Any ]] = None
48+ filters : dict [ str , Any ] | None = None
4849 limit : int = 10
4950 scoreThreshold : float = 0
50- filter_id : Optional [ str ] = None
51+ filter_id : str | None = None
5152
5253
5354async def chat_endpoint (
@@ -67,9 +68,11 @@ async def chat_endpoint(
6768
6869 if body .filters :
6970 from auth_context import set_search_filters
71+
7072 set_search_filters (body .filters )
7173
72- from auth_context import set_search_limit , set_score_threshold
74+ from auth_context import set_score_threshold , set_search_limit
75+
7376 set_search_limit (body .limit )
7477 set_score_threshold (body .scoreThreshold )
7578
@@ -123,9 +126,11 @@ async def langflow_endpoint(
123126
124127 if body .filters :
125128 from auth_context import set_search_filters
129+
126130 set_search_filters (body .filters )
127131
128- from auth_context import set_search_limit , set_score_threshold
132+ from auth_context import set_score_threshold , set_search_limit
133+
129134 set_search_limit (body .limit )
130135 set_score_threshold (body .scoreThreshold )
131136
@@ -171,9 +176,7 @@ async def langflow_endpoint(
171176
172177 except Exception as e :
173178 logger .exception ("[CHAT] Langflow request failed" )
174- return JSONResponse (
175- {"error" : f"Langflow request failed: { str (e )} " }, status_code = 500
176- )
179+ return JSONResponse ({"error" : f"Langflow request failed: { str (e )} " }, status_code = 500 )
177180
178181
179182async def chat_history_endpoint (
@@ -186,9 +189,7 @@ async def chat_history_endpoint(
186189 return JSONResponse (history )
187190 except Exception as e :
188191 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- )
192+ return JSONResponse ({"error" : f"Failed to get chat history: { str (e )} " }, status_code = 500 )
192193
193194
194195async def langflow_history_endpoint (
@@ -201,9 +202,7 @@ async def langflow_history_endpoint(
201202 return JSONResponse (history )
202203 except Exception as e :
203204 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- )
205+ return JSONResponse ({"error" : f"Failed to get langflow history: { str (e )} " }, status_code = 500 )
207206
208207
209208async def delete_session_endpoint (
@@ -221,11 +220,8 @@ async def delete_session_endpoint(
221220 return JSONResponse ({"message" : "Session deleted successfully" })
222221 else :
223222 return JSONResponse (
224- {"error" : result .get ("error" , "Failed to delete session" )},
225- status_code = 500
223+ {"error" : result .get ("error" , "Failed to delete session" )}, status_code = 500
226224 )
227225 except Exception as e :
228226 logger .error (f"Error deleting session: { e } " )
229- return JSONResponse (
230- {"error" : f"Failed to delete session: { str (e )} " }, status_code = 500
231- )
227+ return JSONResponse ({"error" : f"Failed to delete session: { str (e )} " }, status_code = 500 )
0 commit comments