banner
Дом / Блог / Краткое руководство по LangChain для разработчиков программного обеспечения
Блог

Краткое руководство по LangChain для разработчиков программного обеспечения

Aug 31, 2023Aug 31, 2023

Джанакирам MSV

Инфомир |

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

LLM быстро становятся неотъемлемой частью современного программного обеспечения. Однако независимо от того, хотите ли вы использовать модель API, предлагаемую таким поставщиком, как OpenAI, или внедрить модель с открытым исходным кодом в свое приложение, создание приложений на базе LLM влечет за собой нечто большее, чем просто отправка запроса и ожидание ответа. Необходимо учитывать множество элементов: от настройки параметров до расширения подсказки и модерации ответа.

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

Другая проблема заключается в том, что не существует единого правила для LLM. Возможно, вам придется использовать несколько моделей, специализированных для разных сценариев, таких как анализ настроений, классификация, ответы на вопросы и обобщение. Работа с несколькими LLM сложна и требует немалого опыта.

LangChain — это SDK, предназначенный для упрощения интеграции LLM и приложений. Это решает большинство проблем, о которых мы говорили выше. LangChain похож на драйвер ODBC или JDBC, который абстрагирует базовую базу данных, позволяя вам сосредоточиться на стандартных операторах SQL. LangChain абстрагирует детали реализации базовых LLM, предоставляя простой и унифицированный API. Этот API позволяет разработчикам легко заменять и заменять модели без существенных изменений в коде.

LangChain появился примерно в то же время, что и ChatGPT. Харрисон Чейз, его создатель, взял на себя первое обязательство в конце октября 2022 года, как раз перед тем, как волна LLM достигла полной силы. С тех пор сообщество активно вносит свой вклад, сделав LangChain одним из лучших инструментов для взаимодействия с LLM.

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

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

Данные, полученные из некоторых внешних источников, необходимо преобразовать в векторы. Это делается путем передачи текста в модель встраивания слов, связанную с LLM. Например, модель OpenAI GPT-3.5 имеет связанную модель встраивания слов, которую необходимо использовать для отправки контекста. LangChain выбирает лучшую модель внедрения на основе выбранного LLM, устраняя необходимость догадок при объединении моделей в пары.

Сгенерированные векторные представления сохраняются в базе данных векторов для выполнения поиска по сходству. LangChain упрощает хранение и извлечение векторов из различных источников — от массивов в памяти до размещенных векторных баз данных, таких как Pinecone.

LangChain поддерживает основные LLM, предлагаемые OpenAI, Cohere и AI21, а также LLM с открытым исходным кодом, доступные на Hugging Face. Список поддерживаемых моделей и конечных точек API быстро растет.

Вышеупомянутый поток представляет собой ядро ​​структуры LangChain. Приложения на вершине стека взаимодействуют с одним из модулей LangChain через Python или JavaScript SDK. Давайте разберемся в роли этих модулей.