|
35 | 35 | from starlette.types import Lifespan |
36 | 36 | from watchdog.observers import Observer |
37 | 37 |
|
38 | | -from ..artifacts.in_memory_artifact_service import InMemoryArtifactService |
39 | 38 | from ..auth.credential_service.in_memory_credential_service import InMemoryCredentialService |
40 | 39 | from ..evaluation.local_eval_set_results_manager import LocalEvalSetResultsManager |
41 | 40 | from ..evaluation.local_eval_sets_manager import LocalEvalSetsManager |
42 | | -from ..memory.in_memory_memory_service import InMemoryMemoryService |
43 | 41 | from ..runners import Runner |
44 | | -from ..sessions.in_memory_session_service import InMemorySessionService |
45 | 42 | from .adk_web_server import AdkWebServer |
46 | | -from .service_registry import get_service_registry |
47 | 43 | from .service_registry import load_services_module |
48 | 44 | from .utils import envs |
49 | 45 | from .utils import evals |
50 | 46 | from .utils.agent_change_handler import AgentChangeEventHandler |
51 | 47 | from .utils.agent_loader import AgentLoader |
| 48 | +from .utils.service_factory import create_artifact_service_from_options |
| 49 | +from .utils.service_factory import create_memory_service_from_options |
| 50 | +from .utils.service_factory import create_session_service_from_options |
52 | 51 |
|
53 | 52 | logger = logging.getLogger("google_adk." + __name__) |
54 | 53 |
|
55 | 54 | _LAZY_SERVICE_IMPORTS: dict[str, str] = { |
56 | 55 | "AgentLoader": ".utils.agent_loader", |
57 | | - "InMemoryArtifactService": "..artifacts.in_memory_artifact_service", |
58 | | - "InMemoryMemoryService": "..memory.in_memory_memory_service", |
59 | | - "InMemorySessionService": "..sessions.in_memory_session_service", |
60 | 56 | "LocalEvalSetResultsManager": "..evaluation.local_eval_set_results_manager", |
61 | 57 | "LocalEvalSetsManager": "..evaluation.local_eval_sets_manager", |
62 | 58 | } |
@@ -112,48 +108,31 @@ def get_fast_api_app( |
112 | 108 | # Load services.py from agents_dir for custom service registration. |
113 | 109 | load_services_module(agents_dir) |
114 | 110 |
|
115 | | - service_registry = get_service_registry() |
116 | | - |
117 | 111 | # Build the Memory service |
118 | | - if memory_service_uri: |
119 | | - memory_service = service_registry.create_memory_service( |
120 | | - memory_service_uri, agents_dir=agents_dir |
| 112 | + try: |
| 113 | + memory_service = create_memory_service_from_options( |
| 114 | + base_dir=agents_dir, |
| 115 | + memory_service_uri=memory_service_uri, |
121 | 116 | ) |
122 | | - if not memory_service: |
123 | | - raise click.ClickException( |
124 | | - "Unsupported memory service URI: %s" % memory_service_uri |
125 | | - ) |
126 | | - else: |
127 | | - memory_service = InMemoryMemoryService() |
| 117 | + except ValueError as exc: |
| 118 | + raise click.ClickException(str(exc)) from exc |
128 | 119 |
|
129 | 120 | # Build the Session service |
130 | | - if session_service_uri: |
131 | | - session_kwargs = session_db_kwargs or {} |
132 | | - session_service = service_registry.create_session_service( |
133 | | - session_service_uri, agents_dir=agents_dir, **session_kwargs |
134 | | - ) |
135 | | - if not session_service: |
136 | | - # Fallback to DatabaseSessionService if the service registry doesn't |
137 | | - # support the session service URI scheme. |
138 | | - from ..sessions.database_session_service import DatabaseSessionService |
139 | | - |
140 | | - session_service = DatabaseSessionService( |
141 | | - db_url=session_service_uri, **session_kwargs |
142 | | - ) |
143 | | - else: |
144 | | - session_service = InMemorySessionService() |
| 121 | + session_service = create_session_service_from_options( |
| 122 | + base_dir=agents_dir, |
| 123 | + session_service_uri=session_service_uri, |
| 124 | + session_db_kwargs=session_db_kwargs, |
| 125 | + ) |
145 | 126 |
|
146 | 127 | # Build the Artifact service |
147 | | - if artifact_service_uri: |
148 | | - artifact_service = service_registry.create_artifact_service( |
149 | | - artifact_service_uri, agents_dir=agents_dir |
| 128 | + try: |
| 129 | + artifact_service = create_artifact_service_from_options( |
| 130 | + base_dir=agents_dir, |
| 131 | + artifact_service_uri=artifact_service_uri, |
| 132 | + strict_uri=True, |
150 | 133 | ) |
151 | | - if not artifact_service: |
152 | | - raise click.ClickException( |
153 | | - "Unsupported artifact service URI: %s" % artifact_service_uri |
154 | | - ) |
155 | | - else: |
156 | | - artifact_service = InMemoryArtifactService() |
| 134 | + except ValueError as exc: |
| 135 | + raise click.ClickException(str(exc)) from exc |
157 | 136 |
|
158 | 137 | # Build the Credential service |
159 | 138 | credential_service = InMemoryCredentialService() |
|
0 commit comments