Add compaction flow
This commit is contained in:
29
chat.py
29
chat.py
@@ -3,6 +3,7 @@
|
||||
|
||||
import asyncio
|
||||
|
||||
from google import genai
|
||||
from google.adk.agents import LlmAgent
|
||||
from google.adk.runners import Runner
|
||||
from google.cloud.firestore_v1.async_client import AsyncClient
|
||||
@@ -22,7 +23,11 @@ root_agent = LlmAgent(
|
||||
|
||||
async def main() -> None:
|
||||
db = AsyncClient()
|
||||
session_service = FirestoreSessionService(db=db)
|
||||
session_service = FirestoreSessionService(
|
||||
db=db,
|
||||
compaction_token_threshold=800_000,
|
||||
genai_client=genai.Client(),
|
||||
)
|
||||
|
||||
runner = Runner(
|
||||
app_name=APP_NAME,
|
||||
@@ -30,11 +35,25 @@ async def main() -> None:
|
||||
session_service=session_service,
|
||||
)
|
||||
|
||||
session = await session_service.create_session(
|
||||
app_name=APP_NAME,
|
||||
user_id=USER_ID,
|
||||
# Reuse existing session or create a new one
|
||||
resp = await session_service.list_sessions(
|
||||
app_name=APP_NAME, user_id=USER_ID
|
||||
)
|
||||
print(f"Session {session.id} created. Type 'exit' to quit.\n")
|
||||
if resp.sessions:
|
||||
session = await session_service.get_session(
|
||||
app_name=APP_NAME,
|
||||
user_id=USER_ID,
|
||||
session_id=resp.sessions[0].id,
|
||||
)
|
||||
print(f"Resuming session {session.id}.")
|
||||
else:
|
||||
session = await session_service.create_session(
|
||||
app_name=APP_NAME,
|
||||
user_id=USER_ID,
|
||||
)
|
||||
print(f"Session {session.id} created.")
|
||||
|
||||
print("Type 'exit' to quit.\n")
|
||||
|
||||
while True:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user