LangChain: основы и практическое применение

LangChain — это фреймворк для разработки приложений с использованием больших языковых моделей, предоставляющий инструменты для создания агентов, работы с векторными хранилищами и прочего. Основной его интерфейс – Runnable, поддерживающий методы invoke, batch, и stream (и их асинхронные версии).
LangChain: основы и практическое применение
Изображение носит иллюстративный характер

Ключевой особенностью LangChain является язык выражений LangChain (LCEL), позволяющий строить цепочки обработки данных, где выход одного этапа становится входом для следующего. Цепочки могут быть созданы с использованием RunnableSequence, оператора | или метода .pipe(). RunnableParallel позволяет запускать несколько этапов параллельно, передавая входные данные всем элементам. LCEL автоматически преобразует Python-функции в RunnableLambda, облегчая интеграцию кода.

В LangChain важна работа с Messages (сообщениями), которые передаются языковым моделям, и Prompt Templates (шаблонами подсказок), служащими для форматирования запросов к моделям. Шаблоны бывают нескольких видов, включая StringPromptTemplate для простых строк и ChatPromptTemplate для форматирования диалогов. MessagesPlaceholder используется для вставки списка сообщений.

Языковые модели в LangChain вызываются через интерфейс BaseLanguageModel, который является Runnable, что позволяет использовать методы, такие как invoke. Для работы с моделями Hugging Face используется пакет langchain-huggingface. Можно загружать модели локально через HuggingFacePipeline или использовать serverless API через HuggingFaceEndpoint. Цепочки prompt | model объединяют форматированный промпт с языковой моделью. Дополнительные методы, такие как with_retry, with_fallbacks, bind, RunnablePassthrough и assing расширяют возможности по обработке данных и добавлению новых параметров.


Новое на сайте

19743Artemis: момент, который определит целое поколение 19742Почему в горах реже болеют диабетом? 19741Что скрывается подо льдами Антарктиды и почему страны могут начать за это бороться? 19740ДНК моркови и красного коралла на туринской плащанице 19739Что нового нашёл телескоп NASA в остатках сверхновой, которую китайские астрономы... 19738Куда исчезла минойская цивилизация 1973736 вредоносных npm-пакетов под видом плагинов Strapi: охота на криптовалютную платформу 19736Fortinet экстренно латает критическую дыру в FortiClient EMS, которую уже вовсю... 19735Что за существо, похожее на червя из «дюны», обнаружили в Китае задолго до кембрийского... 19734Может ли старый препарат для трансплантации отсрочить диабет 1 типа? 19733Викторина для любителей осьминогов: что вы знаете о головоногих? 19732Почти сто пусков за плечами, но Artemis II оказался чем-то совершенно другим 19731Как китайский смог оказался связан с арктическими штормами, а мыши избавились от диабета? 19730Почему аллергия передаётся по наследству не так просто, как кажется? 19729Веб-шеллы на PHP, управляемые через куки: как злоумышленники закрепляются на серверах...
Ссылка