Skip to content

Commit 01bb6ac

Browse files
committed
support long and short term memort in web
1 parent bfffbda commit 01bb6ac

File tree

2 files changed

+57
-10
lines changed

2 files changed

+57
-10
lines changed

veadk/cli/main.py

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import sys
2121
from importlib.util import module_from_spec, spec_from_file_location
2222
from pathlib import Path
23+
from typing import Any
2324

2425
import typer
2526
import uvicorn
@@ -206,22 +207,65 @@ def web(
206207
"--host",
207208
),
208209
):
209-
from google.adk.memory import in_memory_memory_service
210+
from google.adk.cli.utils.shared_value import SharedValue
211+
212+
from veadk.memory.short_term_memory import ShortTermMemory
213+
214+
def init_for_veadk(
215+
self,
216+
*,
217+
agent_loader: Any,
218+
session_service: Any,
219+
memory_service: Any,
220+
artifact_service: Any,
221+
credential_service: Any,
222+
eval_sets_manager: Any,
223+
eval_set_results_manager: Any,
224+
agents_dir: str,
225+
):
226+
self.agent_loader = agent_loader
227+
self.artifact_service = artifact_service
228+
self.credential_service = credential_service
229+
self.eval_sets_manager = eval_sets_manager
230+
self.eval_set_results_manager = eval_set_results_manager
231+
self.agents_dir = agents_dir
232+
# Internal propeties we want to allow being modified from callbacks.
233+
self.runners_to_clean = set()
234+
self.current_app_name_ref = SharedValue(value="")
235+
self.runner_dict = {}
236+
237+
short_term_memory_backend = os.getenv("SHORT_TERM_MEMORY_BACKEND", "local")
238+
logger.info(f"Short term memory: backend={short_term_memory_backend}")
239+
240+
long_term_memory_backend = os.getenv("LONG_TERM_MEMORY_BACKEND")
241+
long_term_memory = None
242+
243+
if long_term_memory_backend is not None:
244+
from veadk.memory.long_term_memory import LongTermMemory
245+
246+
logger.info(
247+
f"Long term memory: backend={os.getenv('LONG_TERM_MEMORY_BACKEND')}"
248+
)
249+
long_term_memory = LongTermMemory(backend=long_term_memory_backend)
250+
else:
251+
logger.info("No long term memory backend settings detected.")
252+
253+
self.session_service = ShortTermMemory(
254+
backend=short_term_memory_backend
255+
).session_service
210256

211-
from veadk.memory.long_term_memory import LongTermMemory
257+
self.memory_service = long_term_memory
212258

213-
in_memory_memory_service.InMemoryMemoryService = LongTermMemory
259+
import google.adk.cli.adk_web_server
214260

215-
from google.adk.cli import cli_tools_click
261+
google.adk.cli.adk_web_server.AdkWebServer.__init__ = init_for_veadk
262+
263+
import google.adk.cli.cli_tools_click as cli_tools_click
216264

217-
importlib.reload(cli_tools_click)
218265
agents_dir = os.getcwd()
219-
if not session_service_uri:
220-
session_service_uri = ""
266+
logger.info(f"Load agents from {agents_dir}")
221267

222-
cli_tools_click.cli_web.main(
223-
args=[agents_dir, "--session_service_uri", session_service_uri, "--host", host]
224-
)
268+
cli_tools_click.cli_web.main(args=[agents_dir, "--host", host])
225269

226270

227271
@app.command()

veadk/cli/services/vefaas/template/src/run.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ python3 -m pip install fastmcp
4343
USE_STUDIO=${USE_STUDIO:-False}
4444
USE_ADK_WEB=${USE_ADK_WEB:-False}
4545

46+
export SHORT_TERM_MEMORY_BACKEND=mysql
47+
export LONG_TERM_MEMORY_BACKEND=opensearch
48+
4649
if [ "$USE_STUDIO" = "True" ]; then
4750
echo "USE_STUDIO is True, running veadk studio"
4851
# running veadk studio

0 commit comments

Comments
 (0)