ADK Google Gemini: «Сеанс не найден: по умолчанию при» при использовании InMemoryRunner с LlmAgentPython

Программы на Python
Ответить
Anonymous
 ADK Google Gemini: «Сеанс не найден: по умолчанию при» при использовании InMemoryRunner с LlmAgent

Сообщение Anonymous »

Я пытаюсь использовать агент Google ADK LLM (

Код: Выделить всё

gemini-2.5-flash-lite
) в проекте Flask для проверки тестов и просмотра содержимого тестов. Я использую InMemoryRunner и InMemorySessionService для запуска своих агентов.
Вот вспомогательная функция, которую я использую для запуска агента:

Код: Выделить всё

import asyncio
from google.adk.agents.llm_agent import Agent
from google.adk.runners import InMemoryRunner
from google.adk.sessions import InMemorySessionService
from google.genai.types import Content, Part

_APP_USER_ID = "system"
_APP_SESSION_ID = "default"
_SESSION_SERVICE = InMemorySessionService()

async def _run_agent(agent: Agent, prompt: str) -> str:
# Attempt to create a session
session = await _SESSION_SERVICE.create_session(
app_name="duck_pa",
user_id=_APP_USER_ID,
session_id=_APP_SESSION_ID
)

runner = InMemoryRunner(agent)
input_content = Content(parts=[Part(text=prompt)])

async for event in runner.run_async(
new_message=input_content,
user_id=session.user_id,
session_id=session.id
):
if event.is_final_response():
return "".join(
part.text for part in event.content.parts if getattr(part, "text", None)
)

raise RuntimeError("Agent did not return a final response")
Проблема:

Когда я запускаю агент с помощью этой функции, я получаю следующую ошибку:

Код: Выделить всё

Session not found: default
Я это проверил:
  • Код: Выделить всё

    InMemorySessionService
    используется для создания сеанса.
  • Те же user_id и session_id передаются в runner.run_async.
  • Объект Content сконструирован правильно.
Я не уверен, почему бегун не может найти сеанс I только что создан. Я подозреваю, что это как-то связано с тем, как InMemoryRunner и InMemorySessionService взаимодействуют в текущей версии ADK (1.21.0).
Вопрос:

Как правильно запустить агент LLM с помощью InMemoryRunner и InMemorySessionService, чтобы сеанс распознавался, и я не получал сообщение «Сессия не найдена»: default?
Будем очень признательны за любые рекомендации или рабочие примеры.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ner-with-l
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»