Skip to content

Commit 219815d

Browse files
DeanChensjcopybara-github
authored andcommitted
chore: Update create_session endpoint to use Request message as post body
Also deprecate create_session_with_id which is not very RESTful. PiperOrigin-RevId: 802357718
1 parent a503a0c commit 219815d

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

src/google/adk/cli/adk_web_server.py

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
169186
class 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

Comments
 (0)