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