LangGraph. Гибкий инструмент для создания приложений на базе языковых моделей

Сегодня пост будет немного более технический, чем обычно, но полезный. Речь пойдет про LangGraph – библиотеку для создания приложений на базе больших языковых моделей. Рассказать о нем решила, потому что он, во-первых, бесплатный, и во-вторых, имеет множество встроенных возможностей для очень гибкой разработки. Им несложно пользоваться. Я сейчас, например, много экспериментирую с агентами, и с помощью LangGraph делаю систему для извлечения информации, дополненного поиском (RAG).
В общем, расскажу коротко, что к чему, вдруг вам пригодится.
Если вы не планируете писать код в ближайшее время, переходите сразу к разделу про LangFlow.

LangGraph, LangChain, LangSmith

Есть компания LangChain, которая появилась в 2022 году как проект с открытым исходным кодом. Она и по сей день остается таким проектом и продает только доступ к собственной платформе для разработок. Такая платформа может пригодиться, если у вас большой проект, которые не влезает на один компьютер. Она предоставляет место на сервере, среду для разработки и удобный интерфейс.
Чтобы не путаться в куче продуктов с похожими названиями, давайте все рассмотрим по порядку.

LangChain – это база, на которой выросло все остальное (и вообще вся компания). LangChain позволяет собрать самое простое приложение, для работы которого языковые модели вызываются последовательно. Здесь есть инструменты (например, для поиска в Интернете), векторные хранилища данных и доступ ко всем или почти всем популярным моделям. Если у вас есть платный доступ к GPT или Claude, можно использовать их. Если нет, доступны бесплатные Llama, Mistral и множество моделей с HuggingFace, так что небольшое базовое приложение можно собрать за 0 рублей ровно.

<i>(Схема компонентов с официального сайта LangChain. Здесь есть все, чтобы начать работу)</i>
(Схема компонентов с официального сайта LangChain. Здесь есть все, чтобы начать работу)

Одна из замечательных фишек библиотеки – память (она сейчас много у кого есть, и здесь тоже). Это функция, с помощью которой вы можете заставить ваших агентов запоминать предыдущие взаимодействия с вами, обратную связь, взаимодействия с другими агентами, найденную в открытых источниках информацию и так далее – все, что может потребоваться для дальнейшей работы (про работу с памятью у меня во вторник будет интересный пост в телеграме).
На основе LangChain был создан LangGraph. Он предназначен для создания более сложных систем, в том числе иерархических.

<i>(Пример структуры со сложным нелинейным взаимодействием)</i>
(Пример структуры со сложным нелинейным взаимодействием)

У LangGraph графовая структура (что следует из названия). Каждый узел может быть агентом, графом меньшего размера или какой-то функцией, которая осуществляет обработку данных, необходимую для передачи их на следующий этап.
Мультиагентные системы лучше строить именно с помощью LangGraph, потому что он поддерживает гораздо больше форматов взаимодействия и позволяет лучше контролировать процесс (LangChain объединяет агентов в цепочку, построить сложную иерархическую систему на нем будет тяжеловато).
Связанный продукт – ранее упомянутая платформа LangGraph Platform. Если честно, я пока не поняла, зачем ее использовать. Судя по описанию на сайте, можно сделать пользовательский интерфейс и следить за работой агентов (или передать систему коллегам, которые не пишут код). Но наличие следующего продукта, на мой взгляд, практически полностью лишает эту платформу смысла.

Следующий продукт – LangSmith. Вот это уже платформа для разработчиков, в которой можно собрать, протестировать и выпустить готовое приложение. Платформа также дает доступ к серверу, на котором можно разместить модели и данные.

<i>(Аккаунт (пока пустой) выглядит вот так)</i>
(Аккаунт (пока пустой) выглядит вот так)

Почти весь функционал можно использовать бесплатно, если вы индивидуальный разработчик. Ограничения есть только на число запусков (traces). Один запуск может включать в себя цепочку запросов, использование дополнительных инструментов и так далее – то есть вообще все ваше приложение. На месяц дают 5 000 таких запусков, чего должно хватить для комфортного рабочего процесса.

<i>(Цены)</i>
(Цены)

Если вы стартап, то можно получить скидку на командное использование, для этого нужно связаться с разработчиками и договориться об индивидуальных условиях.

LangFlow

Все, о чем шла речь ранее, – это инструменты для разработчиков, которые умеют работать с кодом. Если вы хотите приобщиться, но пока не уверены в своих программерских навыках, обратите внимание на LangFlow.

Этот продукт сделан на базе LangChain, но не является частью продуктовой линейки одноименной компании. У него drag-and-drop интерфейс (то есть, такой конструктор, в котором вы перетаскиваете элементы на нужное место). Он больше подходит для прототипирования, а не для полноценной разработки, но, если вы ищете, с чего начать – вот с него можно.

<i>(Такая логика)</i>
(Такая логика)

Вы можете завести бесплатный аккаунт и установить LangFlow на свой локальный сервер, если таковой имеется. К аккаунту можно подключить разные инструменты, использовать все модели, которые совместимы с LangChain (то есть, почти все вообще модели, какие есть).
За дополнительную плату можно подключить облачный сервер и получить некоторые расширенные возможности.
Для примера создала архитектуру приложения из готового шаблона (приложение для RAG с векторной базой данных, во введении к посту ровно про такое написано).

<i>(Для оценки масштаба: это все создано из шаблона без каких-либо усилий с моей стороны)</i>
(Для оценки масштаба: это все создано из шаблона без каких-либо усилий с моей стороны)
<i>(Это кусочек схемы поближе: здесь можно выбрать модель – можно бесплатную, – настроить базу данных, ввести промпт – все без единой строчки кода)</i>
(Это кусочек схемы поближе: здесь можно выбрать модель – можно бесплатную, – настроить базу данных, ввести промпт – все без единой строчки кода)

Там же можно запустить приложение и посмотреть, что из этого выйдет.

Заключение

Если вы собирались начать работать над собственными ИИ-инструментами, LangChain и LangFlow – это неплохой старт. Если вы умеете программировать, будет попроще, но, думаю, это ненадолго. Сейчас появляется много low-code / no-code инструментов (таких как LangFlow), нейросети все лучше справляются с написанием кода (и делают это быстрее, чем мы обычно пишем руками).
Так что начинайте пока потихоньку разбираться в основах агентности ИИ, а я вам с этим помогу. В плане на 6 декабря у меня стоит пост про low-code / no-code разработку в целом, он будет в телеграме, можете заглянуть. Про агентность там тоже много.

11
Начать дискуссию