В этом руководстве мы рассмотрим, как LangGraph позволяет нам структурированно управлять потоками бесед, а также даёт возможность «путешествия во времени» через контрольные точки.
Создание чат-бота
Мы создадим чат-бота, который объединяет бесплатную модель Gemini и инструмент Wikipedia. Это позволит нам:
* добавить несколько шагов в диалог;
* записать каждую контрольную точку;
* воспроизвести полную историю состояний;
* возобновить работу с прошлого состояния.
Такой практический подход позволяет нам в режиме реального времени увидеть, как конструкция LangGraph облегчает отслеживание и управление ходом беседы с ясностью и контролем.
Установка необходимых библиотек
Для начала мы устанавливаем необходимые библиотеки, настраиваем ключ API Gemini и импортируем все необходимые модули. Затем мы инициализируем модель Gemini с помощью LangChain, чтобы использовать её в качестве основного LLM в нашем рабочем процессе LangGraph.
Поиск в Википедии
Мы настраиваем инструмент поиска в Википедии с помощью пользовательской сессии, повторных попыток и вежливого пользовательского агента. Мы определяем wikisearch_raw для запроса к MediaWiki API, а затем оборачиваем его как инструмент LangChain, что позволяет нам легко вызывать его в рамках нашего рабочего процесса LangGraph.
Определение состояния графа
Мы определяем наше состояние графа для хранения текущего потока сообщений и связываем нашу модель Gemini с инструментом wiki_search, что позволяет ей вызывать его при необходимости. Мы добавляем узел chatbot и узел tools, соединяем их условными рёбрами и включаем контрольные точки с помощью сохраняющего в памяти saver. Теперь мы компилируем граф, чтобы можно было добавлять шаги, воспроизводить историю и возобновлять работу с любой контрольной точки.
Вспомогательные функции
Мы добавляем вспомогательные функции, чтобы упростить контроль над нашим рабочим процессом LangGraph. Мы используем printlastmessage для аккуратного отображения последнего ответа, showstatehistory для вывода списка всех сохранённых контрольных точек и pickcheckpointby_next для поиска контрольной точки, в которой граф собирается запустить определённый узел, например, шаг tools.
Симуляция взаимодействий пользователя
Мы моделируем два взаимодействия пользователя в одном потоке, передавая события через граф. Сначала мы предоставляем системные инструкции и просим помощника исследовать LangGraph, затем продолжаем со вторым сообщением пользователя о создании автономного агента. Каждый шаг сохраняется в контрольной точке, что позволяет нам позже воспроизвести или возобновить работу с этих состояний.
Воспроизведение и возобновление
Мы воспроизводим полную историю контрольных точек, чтобы увидеть, как наша беседа развивается по шагам, и определяем полезную точку для возобновления. Затем мы «путешествуем во времени», перезапуская работу с выбранной контрольной точки, и при необходимости с любого ручного индекса, чтобы продолжить диалог именно с сохранённого состояния.
В заключение мы получили более чёткое представление о том, как возможности контрольных точек и «путешествия во времени» в LangGraph обеспечивают гибкость и прозрачность управления беседой. Пройдя через несколько шагов пользователя, воспроизведя историю состояний и возобновив работу с предыдущих точек, мы можем на собственном опыте убедиться в мощности этого фреймворка при создании надёжных исследовательских агентов или автономных помощников.
Это рабочий процесс не просто демонстрация, а основа, которую мы можем расширить до более сложных приложений, где воспроизводимость и отслеживаемость важны так же, как и ответы.
1. Какие инструменты и библиотеки используются для создания чат-бота с помощью LangGraph?
Для создания чат-бота с помощью LangGraph используются следующие инструменты и библиотеки: модель Gemini, инструмент поиска в Википедии, пользовательская сессия, повторные попытки, вежливый пользовательский агент, а также модули LangChain.
2. Как в LangGraph обеспечивается возможность «путешествия во времени» через контрольные точки?
В LangGraph возможность «путешествия во времени» через контрольные точки обеспечивается путём сохранения каждого шага диалога в контрольной точке. Это позволяет воспроизвести полную историю состояний и возобновить работу с любого сохранённого состояния.
3. Какие функции добавляются для упрощения контроля над рабочим процессом LangGraph?
Для упрощения контроля над рабочим процессом LangGraph добавляются вспомогательные функции, такие как printlastmessage для отображения последнего ответа, showstatehistory для вывода списка всех сохранённых контрольных точек и pickcheckpointby_next для поиска контрольной точки, в которой граф собирается запустить определённый узел.
4. Какие шаги необходимо выполнить для симуляции взаимодействий пользователя в одном потоке с помощью LangGraph?
Для симуляции взаимодействий пользователя в одном потоке с помощью LangGraph необходимо выполнить следующие шаги: предоставить системные инструкции, попросить помощника исследовать LangGraph, продолжить со вторым сообщением пользователя о создании автономного агента, сохранить каждый шаг в контрольной точке.
5. Какие преимущества предоставляет использование контрольных точек и «путешествия во времени» в LangGraph при создании исследовательских агентов или автономных помощников?
Использование контрольных точек и «путешествия во времени» в LangGraph при создании исследовательских агентов или автономных помощников обеспечивает гибкость и прозрачность управления беседой, а также позволяет воспроизвести или возобновить работу с предыдущих состояний.