mirror of
https://github.com/encounter/adk-python.git
synced 2026-07-09 18:19:28 -07:00
feat: add support for session resumption(only transparent mode) config to run_config
This commit adds support for the session resumption configuration in the run_config. The SessionResumptionConfig is added to RunConfig to allow the user to set up a configuration for session resumption(only transparent mode for now). There are two modes of session resumption: manual and transparent. In manual mode, you have to manually bookkeeping the session information and restarts the session which is tricky to do right now. In transparent mode, the server does the bookkeeping for you and no hassle on ADK side. For now, the transparent mode should be enough. Also, added the relevant unit tests to check that every possible configuration is set properly and the run_config is correctly populated. This is needed for supporting the new session resumption feature. PiperOrigin-RevId: 786549455
This commit is contained in:
committed by
Copybara-Service
parent
16392984c5
commit
5e8aa15a50
@@ -79,6 +79,9 @@ class RunConfig(BaseModel):
|
||||
proactivity: Optional[types.ProactivityConfig] = None
|
||||
"""Configures the proactivity of the model. This allows the model to respond proactively to the input and to ignore irrelevant input."""
|
||||
|
||||
session_resumption: Optional[types.SessionResumptionConfig] = None
|
||||
"""Configures session resumption mechanism. Only support transparent session resumption mode now."""
|
||||
|
||||
max_llm_calls: int = 500
|
||||
"""
|
||||
A limit on the total number of llm calls for a given run.
|
||||
|
||||
@@ -74,6 +74,9 @@ class _BasicLlmRequestProcessor(BaseLlmRequestProcessor):
|
||||
llm_request.live_connect_config.proactivity = (
|
||||
invocation_context.run_config.proactivity
|
||||
)
|
||||
llm_request.live_connect_config.session_resumption = (
|
||||
invocation_context.run_config.session_resumption
|
||||
)
|
||||
|
||||
# TODO: handle tool append here, instead of in BaseTool.process_llm_request.
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -309,6 +309,7 @@ class MockModel(BaseLlm):
|
||||
@contextlib.asynccontextmanager
|
||||
async def connect(self, llm_request: LlmRequest) -> BaseLlmConnection:
|
||||
"""Creates a live connection to the LLM."""
|
||||
self.requests.append(llm_request)
|
||||
yield MockLlmConnection(self.responses)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user