В этом посте будет продемонстрирован процесс использования ретриверов в LangChain.
Как использовать ретриверы в LangChain?
Ретриверы действуют как интерфейс между моделями и людьми, поэтому они могут использовать его для получения желаемого результата, используя входные данные, представленные на естественных языках. Хранилища векторов используются для хранения данных, которые можно использовать для получения/извлечения информации/данных.
Однако ретриверы более общие, чем эти базы данных. Они не хранят никаких данных и используются только для получения или извлечения данных для пользователей. Чтобы изучить процесс создания и использования ретриверов через LangChain, выполните следующие шаги:
Шаг 1. Установите модули
Сначала установите необходимые модули, такие как LangChain, чтобы библиотеки и зависимости продолжили процесс:
пункт установить Лангчейн
Установите векторное хранилище chromadb, которое можно использовать для данных базы данных, чтобы ретривер мог получать данные из хранилища:
пункт установить хромадб
Теперь установите инфраструктуру OpenAI, чтобы получить библиотеки для использования встраивания текста перед созданием ретривера:
пункт установить опенай
После установки всех необходимых модулей просто настройте среду с помощью ключа OpenAI API:
импортируйте насимпортировать getpass
os.environ [ 'ОПЕНАЙ_API_KEY' ] = getpass.getpass ( «Ключ API OpenAI:» )
Шаг 2. Загрузите набор данных.
Теперь выполните следующий код, чтобы щелкнуть значок «Выбрать файлы» кнопку и загрузите документ или файл из локальной системы:
загружено = files.upload ( )
Шаг 3. Импортируйте библиотеки
Импортируйте необходимые библиотеки для создания и использования ретриверов в LangChain, например: « Список ', ' Обратные вызовы » и многое другое:
от ввода импорта Любой, Список
из документа импорта langchain.schema
из langchain.callbacks.manager импортировать обратные вызовы
Шаг 4. Создание однострочного индекса
На этом этапе создается индекс для средства извлечения, который можно использовать для получения данных для формирования векторного хранилища путем импорта необходимых библиотек:
из 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: Создайте встраивания
Загрузите документ для создания его встраивания и сохраните текст в числовой форме, используя векторное хранилище:
Запустите процесс встраивания с помощью 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 импорт Chromadb = Chroma.from_documents ( тексты, вложения )
Шаг 6: Проверьте ретривера
После того, как внедрения созданы и сохранены в базе данных, просто определите переменную ретривера:
Вызовите цепочки с помощью метода 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.