О чём урок
Этот ноутбук демонстрирует, как создать чат-бота на базе RAG с использованием endpoint Chat от Cohere. Чат-бот может извлекать релевантную информацию из внешних документов и генерировать проверяемые, встроенные цитаты в своих ответах. Прочитайте сопутствующую статью здесь. Это приложение будет использовать несколько API endpoint'ов Cohere: Chat: Для обработки основной логики чат-бота, включая преобразование сообщения пользователя в запросы, генерацию ответов и создание цитат Embed: Для преобразования текстовых документов в их представление embeddings, которое позже будет использоваться при извлечении (мы будем использовать новейшую, передовую модель Embed v3) Rerank: Для переранжирования извлеченных документов в соответствии с их релевантностью запросу Диаграмма ниже представляет обзор того, что мы будем создавать. Вот краткое изложение задействованных шагов. Начальная фаза: Шаг 0: Прием документов – получение документов, разбиение на чанки, создание embeddings и индексация. Для каждого взаимодействия пользователя с чат-ботом: Шаг 1: Получить сообщение пользователя Шаг 2: Вызвать endpoint Chat в режиме генерации запросов Если сгенерирован хотя бы один запрос Шаг 3: Извлечь и переранжировать релевантные документы Шаг 4: Вызвать endpoint Chat в режиме документа для генерации обоснованного ответа с цитатами Если запросы не сгенерированы Шаг 4: Вызвать endpoint Chat в обычном режиме для генерации ответа Сначала мы определяем список документов, которые хотим принять и сделать доступными для извлечения. В качестве примера мы будем использовать содержимое первого модуля Cohere LLM University: Что такое большие языковые модели?. Обычно количество документов для практических приложений огромно, поэтому нам потребуется эффективно искать документы. Это включает разбиение документов на чанки, генерацию embeddings и индексацию embeddings, как показано на изображении ниже. Мы реализуем это в классе Vectorstore ниже, который принимает список raw_documents в качестве входных данных. Три метода немедленно вызываются при создании объекта класса Vectorstore: load_and_chunk()Этот метод использует метод partition_html() из библиотеки unstructured для загрузки документов из URL и разбиения их на более мелкие чанки.
План урока
- Плотное извлечение
- Переранжирование
- Тестирование извлечения
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.