f4b9ee156c
- GameState (TypedDict) с полями: topic, setup, choices, selected_choice, ending - story_node: генерация завязки → interrupt() → генерация концовки - Цикл обработки __interrupt__ с Command(resume=...) - Поддержка questionary и fallback на input() - requirements.txt, .env.example, README.md
1.1 KiB
1.1 KiB
Задание 4: Текстовая игра на основе LLM + interrupt
Описание
Интерактивная история «выбери свою историю» с LangGraph:
- LLM придумывает завязку и 3 варианта поступка
- Граф ставит на паузу через
interrupt() - Пользователь выбирает вариант в консоли
- LLM дописывает концовку на основе выбора
Стек
- Python 3.10+
- langchain-core, langchain-openai, langgraph, questionary
Установка
pip install -r requirements.txt
cp .env.example .env
# Заполнить OPENAI_API_KEY в .env
Запуск
python main.py "космический кот"
Архитектура
GameState— TypedDict с полями: topic, setup, choices, selected_choice, endingstory_node— узел графа: генерация завязки → interrupt → генерация концовкиrun_game()— цикл: stream → обработка interrupt → Command(resume=...) → результат