Используйте поиск и разговор в Google Vertex AI, чтобы создать чат-бота RAG.
Создайте чат-бота RAG с помощью поиска и общения в Google Vertex AI.

Компания Google недавно выпустила свою управляемую службу RAG (Retrieval Augmented Generator), Vertex AI Search & Conversation, для использования в общедоступном режиме (GA — General Availability). Эта служба, ранее известная как Google Enterprise Search, дополняет уже процветающий рынок чат-ботов с использованием крупных языковых моделей (LLM — Large Language Model).
В этой статье мы предполагаем, что у вас есть некоторые знания о методологии RAG для создания чат-ботов на базе крупных языковых моделей. Диаграмма ниже, предоставленная компанией Langchain, хорошо введет вас в RAG:

В этой статье мы сосредоточимся на настройке чат-бота на базе крупных языковых моделей с использованием службы Vertex AI Search & Conversation от Google (в остальной части статьи мы будем называть ее Vertex AI Search).
Диаграмма решения

Datastore (Хранилище данных)
- 5 бесплатных книг, чтобы освоить машинное обучение
- Проложение пути в совместном генерировании зрительных и языковых данных раскрытие силы генеративных вокенов с помощью MiniGPT-5
- Революционизация настройки языковых моделей достижение беспрецедентных результатов с помощью шумных вложений NEFTune.
В настоящее время Vertex AI Search поддерживает исходные данные в форматах html, pdf и csv.

Служба Vertex AI Search в настоящее время поддерживает исходные данные в форматах html, pdf и csv. Исходные данные собираются из поискового индекса Google (того же самого индекса, который используется для поиска Google). Это большое преимущество по сравнению с другими поставщиками, которые требуют отдельных механизмов для сбора информации с веб-сайтов.
Для неструктурированных данных (в настоящее время поддерживаются только pdf и html), файлы должны быть загружены в бакет Cloud Storage. Этот бакет хранения может находиться в любом доступном регионе.
⚠️ Хранилище данных в службе Vertex AI Search отличается от хранилища Cloud Storage. Оно схоже с так называемыми “векторными базами данных”, предлагаемыми другими поставщиками.
У каждого приложения на службе Vertex AI Search в настоящее время может быть свое собственное хранилище(а). В рамках одного приложения можно иметь несколько хранилищ данных.

В демонстрационных целях мы будем использовать образец студенческого справочника в формате pdf, доступный в Интернете (https://www.bcci.edu.au/images/pdf/student-handbook.pdf). Обратите внимание: мы не связаны с этой организацией (это всего лишь образец pdf-файла, который мы нашли в Интернете…)
Шаг 1 – Подготовка файлов в формате pdf:
Разделите один справочник в формате pdf на несколько страниц с помощью Python. Это занимает всего несколько секунд.
from PyPDF2 import PdfWriter, PdfReaderinputpdf = PdfReader(open("student-handbook.pdf", "rb"))for i in range(len(inputpdf.pages)): output = PdfWriter() output.add_page(inputpdf.pages[i]) with open("./split_pdfs_student_handbook/document-page%s.pdf" % i, "wb") as outputStream: output.write(outputStream)
Шаг 2 — Загрузка в бакет GCS:
Нам потребуется загрузить PDF-файлы в Google Cloud Storage. Вы можете сделать это через Google Console или использовать GCP SDK с любым выбранным вами языком.
Если требуется только один PDF-документ, для этой демонстрации достаточно будет использовать ‘clickops’.
Давайте поместим PDF-файлы в бакет Cloud Storage.

Шаг 3 — Настройка приложения и хранилища данных:

В консоли GCP найдите «Search and Conversation» и нажмите «Создать приложение». Выберите тип приложения Chat. Настройте приложение, указав название компании и агента. Примечание: агент доступен только в Глобальном регионе.

Затем создайте хранилище данных. Выберите «Cloud Storage» и выберите созданный в шаге 2 бакет.

Затем вас попросят создать базу данных. Ещё раз, это на самом деле векторное хранилище данных, которое хранит вложения для семантического поиска и работы LLM.
Выберите «Cloud Storage». Затем выберите хранилище данных, которое мы создали на предыдущем шаге.

После этого нажмите «Продолжить». Затем начнётся импорт вложений. Этот процесс займет от нескольких минут до часа, в зависимости от объема данных. Кроме того, у GCP есть клиентские библиотеки SDK с асинхронными клиентами, которые могут ускорить всю процедуру. В противном случае вы всегда можете использовать консоль GCP. По умолчанию она использует синхронные вызовы API.
Вы можете проверить прогресс импорта (вложения) в разделе активности.

После завершения импорта перейдите на страницу «Предварительный просмотр» слева, она перекинет вас в консоль Dialogflow CX.
Шаг 4 — Dialogflow:

На консоли Dialogflow нажмите «Стартовая страница». Откроется настройка хранилища данных справа. Вы можете выбрать несколько хранилищ данных (веб-сайт, PDF-файлы и т. д.) одновременно. В этом случае оставьте настройку для справочника студента, который мы создали на Шаге 3.
Найдите “Генератор” в настройках хранилища данных.

Добавьте следующую подсказку:
Вы виртуальный ассистент, работающий в Лучшем колледже. Вы будете давать общие советы студенту на основании справочника студента. Всегда отвечайте вежливо и конструктивно. Предыдущий разговор: $разговор \nЭто вопрос пользователя $последний-запрос-пользователя \nВот некоторые контекстуальные знания, которые вам нужно знать: $запрос.знание.ответы \nВаш ответ:
$разговор, $последний-запрос-пользователя, $запрос.знание.ответы – это параметры Dialogflow.

В поле «Входной параметр» введите $последний-запрос-пользователя. Это передаст вопрос пользователя генератору. В поле «Выходной параметр» введите $запрос.производственный.студентский-ассистент-ответ. Всегда не забывайте нажимать кнопку «Сохранить» в верхней части!

В поле «Говорит агент» не забудьте ввести $запрос.производственный.студентский-ассистент-ответ. Это обеспечит отображение вывода от генератора в чате агента.
Шаг 5 — Тестирование и интеграция:
Чтобы протестировать этого бота, вы можете либо кликнуть на симулятор «Тестового агента» в правом верхнем углу, либо использовать вкладку «Управление» слева для выбора интеграции. Я предпочитаю использовать «Мессенджер Dialogflow» для тестирования агента, так как это показывает мне окончательный формат ответа.

После того, как вы выберете «Мессенджер Dialogflow», выберите «включить невыигрышный API». Это только для тестирования. В реальном случае, в зависимости от ваших требований аутентификации, вы можете выбрать, хотите ли вы включить это.


Теперь вы можете вводить свои вопросы. Ответы, сгенерированные RAG, будут основаны на PDF-справочнике студента. Он также содержит ссылку на страницу PDF-файла с нужной информацией в конце. Если вы на нее нажмете, вы перейдете на конкретную страницу PDF, содержащую эту информацию.