File size: 1,051 Bytes
f646e0b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""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())