@@ -166,6 +166,23 @@ class RunAgentRequest(common.BaseModel):
166166 state_delta : Optional [dict [str , Any ]] = None
167167
168168
169+ class CreateSessionRequest (common .BaseModel ):
170+ session_id : Optional [str ] = Field (
171+ default = None ,
172+ description = (
173+ "The ID of the session to create. If not provided, a random session"
174+ " ID will be generated."
175+ ),
176+ )
177+ state : Optional [dict [str , Any ]] = Field (
178+ default = None , description = "The initial state of the session."
179+ )
180+ events : Optional [list [Event ]] = Field (
181+ default = None ,
182+ description = "A list of events to initialize the session with." ,
183+ )
184+
185+
169186class AddSessionToEvalSetRequest (common .BaseModel ):
170187 eval_id : str
171188 session_id : str
@@ -452,6 +469,10 @@ async def list_sessions(app_name: str, user_id: str) -> list[Session]:
452469 if not session .id .startswith (EVAL_SESSION_ID_PREFIX )
453470 ]
454471
472+ @deprecated (
473+ "Please use create_session instead. This will be removed in future"
474+ " releases."
475+ )
455476 @app .post (
456477 "/apps/{app_name}/users/{user_id}/sessions/{session_id}" ,
457478 response_model_exclude_none = True ,
@@ -484,18 +505,24 @@ async def create_session_with_id(
484505 async def create_session (
485506 app_name : str ,
486507 user_id : str ,
487- state : Optional [dict [str , Any ]] = None ,
488- events : Optional [list [Event ]] = None ,
508+ req : Optional [CreateSessionRequest ] = None ,
489509 ) -> Session :
510+ if not req :
511+ return await self .session_service .create_session (
512+ app_name = app_name , user_id = user_id
513+ )
514+
490515 session = await self .session_service .create_session (
491- app_name = app_name , user_id = user_id , state = state
516+ app_name = app_name ,
517+ user_id = user_id ,
518+ state = req .state ,
519+ session_id = req .session_id ,
492520 )
493521
494- if events :
495- for event in events :
522+ if req . events :
523+ for event in req . events :
496524 await self .session_service .append_event (session = session , event = event )
497525
498- logger .info ("New session created" )
499526 return session
500527
501528 @app .delete ("/apps/{app_name}/users/{user_id}/sessions/{session_id}" )
0 commit comments