LangChain - это open-source фреймворк разработки приложений искусственного интеллекта на Python, предоставляющий модули и инструменты для создания AI-приложений на основе больших моделей. Разработчики могут легко интегрироваться с большими языковыми моделями (LLM) для выполнения задач, таких как генерация текста, ответы на вопросы, перевод и диалоги. LangChain снижает барьеры разработки AI-приложений, позволяя каждому создавать свои собственные творческие приложения на основе LLM.

Особенности LangChain:

  • LLM и Prompt: LangChain абстрагирует все API больших моделей LLM, унифицирует доступ к ним и предоставляет механизм управления шаблонами приглашений.
  • Chain: LangChain инкапсулирует распространенные сценарии в готовые модули, такие как контекстно-ориентированные системы ответов на вопросы, естественная генерация SQL-запросов и другие, названные "Chain", потому что процесс выполнения этих задач похож на рабочий процесс, выполняемый шаг за шагом.
  • LangChain Expression Language (LCEL): это основная особенность новой версии LangChain, используемая для решения проблем оркестрации рабочего процесса. Через выражения LCEL мы можем гибко настраивать поток обработки AI-задач, то есть гибко настраивать "Chain".
  • Retrieval Augmented Generation (RAG): поскольку большие языковые модели (LLM) не понимают новую информацию и не могут отвечать на новые вопросы, мы можем импортировать новую информацию в LLM для улучшения качества сгенерированного контента. Этот режим называется режимом RAG (Retrieval Augmented Generation).
  • Агенты: паттерн проектирования на основе больших языковых моделей (LLM), использующий способности естественного языка и рассуждения LLM (LLM как мозг) для автоматического вызова внешних систем и устройств для выполнения задач на основе требований пользователя. Например, когда пользователь вводит "взять выходной завтра", большая языковая модель (LLM) автоматически вызывает систему отпусков и инициирует заявку на отпуск.
  • Модель памяти: позволяет большой языковой модели (LLM) запоминать предыдущий контент разговора, способность, известная как "модель памяти".

Компоненты фреймворка LangChain

Фреймворк LangChain состоит из нескольких компонент, включая:

  • Библиотека LangChain: библиотеки Python и JavaScript. Она включает в себя основу для выполнения интерфейсов и интеграции различных компонентов, а также реализацию готовых цепочек и агентов.
  • Шаблоны LangChain: официальные шаблоны задач искусственного интеллекта, предоставленные LangChain.
  • LangServe: на основе FastAPI, публикует определенные LangChain цепочки в виде REST API.
  • LangSmith: платформа разработки, облачный сервис, поддерживающий отладку и мониторинг задач LangChain.

Библиотека LangChain (Библиотеки)

Сама библиотека LangChain состоит из нескольких различных пакетов.

  • langchain-core: базовые абстракции и язык выражений LangChain.
  • langchain-community: интеграции сторонних поставщиков, в основном, включающие сторонние компоненты, интегрированные с LangChain.
  • langchain: в основном включает цепочки, агентов и стратегии извлечения.

Поток обработки задач в LangChain

Как показано на изображении выше, LangChain предоставляет набор инструментов для управления приглашениями. Это позволяет обрабатывать приглашения с большими моделями и, наконец, обрабатывать возвращенные результаты.

Инкапсуляция больших моделей в LangChain включает в себя два типа: LLM и Chat Model.

  • LLM - модель ответов на вопросы, которая принимает входной текст и возвращает текстовый результат.
  • Chat Model - диалоговая модель, которая принимает набор сообщений диалога и возвращает сообщения диалога в разговорном формате.

Основные концепции

1. LLMs

Основные модели, инкапсулированные LangChain, которые принимают входной текст и возвращают текстовый результат.

2. Модели диалога

Модели диалога, специально разработанные для сценариев диалога, в отличие от LLM. Эти модели могут принимать набор сообщений диалога и возвращать сообщения диалога в разговорном формате.

3. Сообщения

Относится к содержанию сообщений в моделях диалога. Типы сообщений включают HumanMessage, AIMessage, SystemMessage, FunctionMessage и ToolMessage, среди других.

4. Приглашения

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

5. Парсеры вывода

Как упоминалось выше, после того как LangChain получает текстовое содержимое, возвращенное большой моделью (LLM), он может использовать специальные парсеры вывода для форматирования текстового содержимого, такие как разбор JSON или преобразование вывода LLM в объект Python.

5. Получение данных

Для удобного импорта частных данных в большую модель (LLM) и улучшения качества ответов модели, LangChain инкапсулирует рамки получения данных (Retrievers), которые облегчают загрузку, сегментацию, хранение и извлечение данных из документов.

6. Векторные хранилища

Для поддержки поиска семантической близости для частных данных LangChain поддерживает различные векторные базы данных.

7. Агенты

Агенты, обычно относящиеся к приложениям, разработанным с большой моделью (LLM) в качестве движка принятия решений, автоматически вызывают внешние системы и аппаратные устройства для выполнения задач пользователей на основе их ввода. Это шаблон проектирования с большой моделью (LLM) в его основе.

Сценарии применения

  • Чат-боты: создание интеллектуальных чат-ассистентов, чат-ботов для обслуживания клиентов и беседы.
  • База знаний вопрос-ответ: предоставление услуг по открытому вопросно-ответному обслуживанию путем интеграции с базами знаний.
  • Интеллектуальное письмо: например, написание статей, творческое письмо и текстовая резюмирование.