Как использовать ретриверы в LangChain?

Kak Ispol Zovat Retrivery V Langchain



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

В этом посте будет продемонстрирован процесс использования ретриверов в LangChain.

Как использовать ретриверы в LangChain?

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







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



Шаг 1. Установите модули
Сначала установите необходимые модули, такие как LangChain, чтобы библиотеки и зависимости продолжили процесс:



пункт установить Лангчейн





Установите векторное хранилище chromadb, которое можно использовать для данных базы данных, чтобы ретривер мог получать данные из хранилища:

пункт установить хромадб



Теперь установите инфраструктуру OpenAI, чтобы получить библиотеки для использования встраивания текста перед созданием ретривера:

пункт установить опенай

После установки всех необходимых модулей просто настройте среду с помощью ключа OpenAI API:

импортируйте нас
импортировать getpass

os.environ [ 'ОПЕНАЙ_API_KEY' ] = getpass.getpass ( «Ключ API OpenAI:» )

Шаг 2. Загрузите набор данных.
Теперь выполните следующий код, чтобы щелкнуть значок «Выбрать файлы» кнопку и загрузите документ или файл из локальной системы:

из файлов импорта google.colab
загружено = files.upload ( )

Шаг 3. Импортируйте библиотеки
Импортируйте необходимые библиотеки для создания и использования ретриверов в LangChain, например: « Список ', ' Обратные вызовы » и многое другое:

из abc импорт ABC, абстрактный метод
от ввода импорта Любой, Список
из документа импорта langchain.schema
из langchain.callbacks.manager импортировать обратные вызовы

Шаг 4. Создание однострочного индекса
На этом этапе создается индекс для средства извлечения, который можно использовать для получения данных для формирования векторного хранилища путем импорта необходимых библиотек:

из langchain.chains импортировать RetrivalQA
из langchain.llms импортировать OpenAI

Здесь загрузите данные, используя ТекстЗагрузчик() метод с путем к файлу, загруженному на шаге 2:

импортировать TextLoader из langchain.document_loaders
загрузчик = TextLoader ( 'state_of_the_union.txt' , кодирование '=' 'utf8' )

Импортировать библиотеку ВектормагазинИндексСоздатель из LangChain для создания индекса для базы данных:

импортировать VectorstoreIndexCreator из langchain.indexes

Определите индекс переменную с помощью метода VectorstoreIndexCreator() с использованием погрузчик переменная:

индекс = VectorstoreIndexCreator ( ) .from_loaders ( [ погрузчик ] )

Примените запрос для проверки индекса путем получения данных из документа:

запрос = «Что сказал в своем выступлении президент Зеленский»
индекс.запрос ( запрос )

Получите подробную информацию об индексе относительно того, какая база данных имеет индекс используя следующий код:

index.vectorstore

Следующий код объяснит все подробности об индексе, его типе и базе данных:

index.vectorstore.as_retriever ( )

Используйте индекс с методом query(), запрашивающим краткую информацию о документе, используя аргумент источника, чтобы использовать имя документа:

индекс.запрос ( «Общая сводка данных из этого документа» , ретривер_кваргс '=' { 'search_kwargs' : { 'фильтр' : { 'источник' : 'state_of_the_union.txt' } } } )

Шаг 5: Создайте встраивания
Загрузите документ для создания его встраивания и сохраните текст в числовой форме, используя векторное хранилище:

документы = loader.load ( )

Запустите процесс встраивания с помощью text_splitter с размером кусков и аргументами перекрытия:

из langchain.text_splitter импортировать CharacterTextSplitter
#используя text_splitter для создания небольших фрагментов документа для использования ретривера
text_splitter = Разделитель текста символов ( размер_куска '=' 1000 , chunk_overlap '=' 0 )
тексты = text_splitter.split_documents ( документы )

Примените метод OpenAIEmbeddings(), который можно импортировать из LangChain:

из langchain.embeddings импортировать OpenAIEmbeddings
вложения = OpenAIEembeddings ( )

Используйте хранилище chromadb для хранения вложений, созданных из документа:

из langchain.vectorstores импорт Chroma
db = Chroma.from_documents ( тексты, вложения )

Шаг 6: Проверьте ретривера
После того, как внедрения созданы и сохранены в базе данных, просто определите переменную ретривера:

ретривер = db.as_retriever ( )

Вызовите цепочки с помощью метода RetrivalQA() с функцией OpenAI() и ретривером в качестве аргументов:

qa = ПолучениеQA.from_chain_type ( лм =ОткрытьAI ( ) , цепочка_тип '=' 'вещи' , ретривер = ретривер )

Предоставьте входные данные для тестирования ретривера с помощью запрос переменная внутри метода qa.run():

запрос = «Что сказал в своем выступлении президент Зеленский»
qa.run ( запрос )

Просто настройте ВектормагазинИндексСоздатель () используя свои аргументы для установки разных значений:

index_creator = VectorstoreIndexCreator (
векторstore_cls =Цветность,
встраивание =OpenAIEmbeddings ( ) ,
text_splitter =РазделительТекста Символа ( размер_куска '=' 1000 , chunk_overlap '=' 0 )
)

Это все, что касается процесса начала работы с ретриверами в LangChain.

Заключение

Чтобы использовать ретриверы в LangChain, просто установите зависимости, необходимые для настройки среды OpenAI, а затем загрузите документ для тестирования ретриверов. После этого создайте средство извлечения, используя абстрактный базовый класс или библиотеку ABC, а затем создайте индекс для базы данных для извлечения данных. Настройте встраивания для документа и запустите средство извлечения, чтобы получить сопоставимые результаты из базы данных. В этом посте подробно описан процесс использования ретриверов в LangChain.