Язык выражения LangChain (LCEL) - это декларативный метод оркестрации рабочих процессов искусственного интеллекта, который позволяет легко объединять несколько этапов обработки, подобно звеньям в цепи. Поэтому рабочие процессы, определенные с помощью LCEL, в LangChain называются "Цепями". От самой простой цепи "подсказка + LLM" до самых сложных цепей (например, цепей, состоящих из сотен шагов).

Особенности языка выражения LangChain включают в себя:

  • Поддержка потоковой обработки: При построении цепей с использованием LCEL для быстрого получения содержимого, возвращаемого моделью LLM, LCEL также поддерживает потоковую обработку, достигая эффектов, аналогичных извлечению содержимого по символам, как в ChatGPT.

  • Поддержка асинхронности: Любая цепь, построенная с использованием LCEL, может использоваться как синхронно, так и асинхронно. Цель использования асинхронных API - улучшение производительности и поддержка более высоких параллельных запросов.

  • Поддержка параллельного выполнения: Когда ваша цепь LCEL имеет шаги, которые могут быть выполнены параллельно (например, если вы извлекаете документы из нескольких источников), мы автоматически выполним их как для синхронных, так и для асинхронных интерфейсов, чтобы достичь минимальной задержки.

  • Повтор и откат: Настройте повтор и откат для любой части цепи LCEL.

  • Поддержка доступа к промежуточным результатам: В случае сложных цепей рабочих процессов часто необходимо иметь возможность просматривать промежуточные результаты между различными этапами задач во время отладки.

  • Режимы ввода и вывода: Режимы ввода и вывода выводятся на основе структуры цепи, предоставляя схемы Pydantic и JSONSchema для каждой цепи LCEL. Это можно использовать для валидации ввода и вывода и является частью LangServe.

  • Поддержка интеграции с сервисом мониторинга LangSmith: Поскольку цепи становятся все более сложными, точное понимание того, что происходит на каждом этапе, становится все более важным. С LCEL все шаги автоматически регистрируются в LangSmith для достижения максимальной наблюдаемости и отладки.

  • Поддержка развертывания LangServe: Любую цепь, созданную с использованием LCEL, можно легко развернуть с помощью LangServe.