← Справочные архитектуры / reference-architecture / diagrams / ai
Генерация с дополнением поиском (RAG)
Retrieval-Augmented Generation (RAG) представляет собой подход в обработке естественного языка, который сочетает механизмы поиска с генеративными моделями и повышает качество генерации текста.
Используя внешние знания из уже существующих источников, RAG решает задачу генерации контекстно релевантного и информативного текста. Такая интеграция позволяет RAG преодолеть ограничения традиционных генеративных моделей за счёт того, что сгенерированный текст опирается на фактическую информацию и контекст. RAG призван решить проблему информационной перегрузки, эффективно извлекая и включая в сгенерированный текст только наиболее релевантную информацию, что повышает связность и точность результата. В целом RAG представляет собой значительный шаг вперёд в области NLP, предлагая более надёжный и учитывающий контекст подход к генерации текста.
Примером применения этой технологии могут служить, в частности, чат-боты службы поддержки, которые используют базу знаний для ответов на обращения.
В контексте Retrieval-Augmented Generation (RAG) под seeding знаний понимают включение внешней информации из уже существующих источников в процесс генерации, а под запросом (querying) понимают механизм извлечения релевантных знаний из этих источников, которые затем используются для генерации связного и контекстно точного текста. Оба процесса показаны ниже.
Наполнение базы знаний
- Загрузка от клиента: Отправка POST-запроса с документами на конечную точку API.
- Обработка входных данных: Обработка входящего запроса с помощью Workers и отправлять сообщения в Queues для увеличения очереди обработки.
- Пакетная обработка: Используйте Queues чтобы инициировать потребитель которые обрабатывают входные документы пакетами, чтобы предотвратить перегрузку последующих этапов.
- Генерация эмбеддингов: Генерация векторов эмбеддингов через вызов Workers AI модели текстовых эмбеддингов для документов.
- Векторное хранилище: Добавление векторов эмбеддингов в Vectorize.
- Хранение документов: Добавление документов в D1 для постоянного хранения данных.
- Механизм Ack/Retry: Сигнализация об успехе или ошибке с помощью Queues Runtime API в потребителе для каждого документа. Queues при необходимости запланирует повторные попытки.
Запросы к базе знаний
- Клиентский запрос: Отправка GET-запроса с параметрами на конечную точку API.
- Генерация эмбеддингов: Генерация векторов эмбеддингов через вызов Workers AI модели текстовых эмбеддингов для входящего запроса.
- Векторный поиск: Запрос к Vectorize используя векторное представление запроса для получения связанных векторов.
- Поиск документов: Получение связанных документов из D1 на основе результатов поиска от Vectorize.
- Генерация текста: Передача исходного запроса и найденных документов в качестве контекста в Workers AI модели для генерации текста чтобы сгенерировать ответ.