Spaces:
Running
Running
| """ADK App + Runner 조립. | |
| - App 기반으로 Runner를 초기화한다 (agent 직접 전달은 레거시 패턴 — 금지) | |
| - 횡종단 관심사(턴 로깅)는 Plugin으로 등록한다 | |
| """ | |
| from __future__ import annotations | |
| from google.adk.apps import App | |
| from google.adk.plugins import BasePlugin | |
| from google.adk.runners import Runner | |
| from google.adk.sessions import InMemorySessionService | |
| from engine.agent import create_pocket_pipeline | |
| from engine.repositories.content import ContentRepository | |
| APP_NAME = "carmilla_pocket" | |
| def build_app(repo: ContentRepository | None = None, | |
| plugins: list[BasePlugin] | None = None, | |
| character_model=None, director_model=None) -> App: | |
| return App( | |
| name=APP_NAME, | |
| root_agent=create_pocket_pipeline(repo, character_model, director_model), | |
| plugins=plugins or [], | |
| ) | |
| def build_runner(app: App, session_service: InMemorySessionService | None = None) -> Runner: | |
| return Runner(app=app, session_service=session_service or InMemorySessionService()) | |