Slide 30
Slide 30 text
Runner オブジェクトを
使った簡易アプリの例
30
class LocalApp:
def __init__(self, agent, app_name, user_id):
self._agent = agent
self._app_name = app_name
self._user_id = user_id
self._runner = Runner(
app_name=self._app_name,
agent=self._agent,
artifact_service=InMemoryArtifactService(),
session_service=InMemorySessionService(),
memory_service=InMemoryMemoryService(),
)
self._session = None
async def stream(self, query):
if not self._session:
self._session = await self._runner.session_service.create_session(
app_name=self._app_name,
user_id=self._user_id,
session_id=uuid.uuid4().hex,
)
content = Content(role='user', parts=[Part.from_text(text=query)])
async_events = self._runner.run_async(
user_id=self._user_id,
session_id=self._session.id,
new_message=content,
)
result = []
async for event in async_events:
if (event.content and event.content.parts):
response = '\n'.join([p.text for p in event.content.parts if p.text])
if response:
print(response)
result.append(response)
return result
User ID / Session ID /
Message を Runner に送信
Runner ら受 取った
Event 群 らユーザーに
表示 るメッセージを選択
SessionService を使って
新 いセッションを用意
Runner オブジェクトを生成
事前に用意 た LlmAgent
オブジェクトを保存