В этом репозитории представлен пример приложения QnA на базе Dataworkz RAG Builder, который демонстрирует возможности RAG на нескольких наборах данных. В этом разделе мы покажем вам, как запустить пример приложения QnA на локальном компьютере. Перейдите сюда, чтобы узнать больше о Dataworkz RAG Builder
Клонируйте репозиторий dataworkz-qna-app с помощью git clone https://github.com/dataworkz-dev/dataworkz-qna-app.git
.
При необходимости установите node.js для вашей платформы (версия узла > 16.0.0).
Ключ API по умолчанию для примера включен в этот проект. Вы можете игнорировать шаги №4 и №5, если не планируете создавать собственную учетную запись для дальнейшего развития.
Для доступа к службе Dataworkz RAG QnA вам понадобится ключ API Dataworkz. Вот шаги для создания ключа API. Примечание. Имя ключа API должно быть уникальным для всех пользователей, поэтому выбирайте имя соответственно.
Поместите сгенерированный ключ API в файл token.txt
. Вы можете найти файл по адресу src/assets/token.txt
.
Запустите npm install
чтобы установить зависимости.
Запустите npm run start
, чтобы запустить локальный веб-сервер, на котором размещен пример приложения QnA. Чтобы получить доступ к приложению, откройте браузер и перейдите по адресу http://localhost:4200
Сообщайте о любых проблемах с примером приложения QnA в разделе «Проблемы».
Dataworkz упрощает разработку приложений RAG для бизнеса. Dataworkz предлагает RAG как услугу, чтобы вы могли создавать приложения GenAI, используя собственные данные, используя либо общедоступные API-интерфейсы LLM, либо частные базовые модели с открытым исходным кодом.
Конструктор RAG от Dataworkz упрощает создание приложений GenAI, устраняя сложности, связанные со сборкой готового решения. Компонуемый стек искусственного интеллекта предоставляет возможность выбора векторной базы данных, модели внедрения, стратегии фрагментирования и модели LLM. У вас есть возможность использовать общедоступные API-интерфейсы LLM, включая AWS Bedrock и OpenAI, или разместить модель с открытым исходным кодом в VPC.
Для расширенных приложений RAG Dataworkz предоставляет возможность сочетать лексический и семантический поиск с фильтрацией метаданных, что позволяет приложениям RAG обрабатывать большие объемы неструктурированных, полуструктурированных или структурированных данных.
Dataworkz подключается к различным источникам бизнес-данных — сервисам SaaS, реляционным базам данных, базам данных NoSQL, файлам, хранящимся в хранилищах облачных объектов, и обеспечивает преобразования без кода, чтобы подготовить собственные данные в любом формате для приложений LLM. При объединении данных из нескольких источников вы также можете настроить порядок приоритета входных источников, используемых для построения контекста для генерации ответа LLM. Полный список разъемов доступен здесь.
RAG Builder предоставляет любому разработчику API для встраивания приложений GenAI в существующий рабочий процесс с полной гибкостью настройки внешнего вида. Пример приложения в этом репозитории использует этот API для своей функциональности. У нас есть раздел об интеграции API в это приложение, а также о том, как использовать его в ваших собственных приложениях.
Появление галлюцинаций представляет собой заметное препятствие на пути широкого внедрения Gen AI на предприятиях. Dataworkz позволяет GenAI ссылаться на свое происхождение, что повышает отслеживаемость. Прочтите блог Dataworkz о том, как Dataworkz оценивает реакцию LLM.
В этом разделе мы приводим некоторые заметки разработчиков о том, как был создан пример приложения и какие API использовались для работы различных разделов. Вы можете опробовать API и систему вопросов и ответов, интегрированную в ваше собственное приложение. Вы можете сгенерировать ключ API (если он уже сгенерирован, можно использовать тот же ключ) и подключиться к этому сервису.
Dataworkz работает со стратегическими партнерами, чтобы продемонстрировать, как наши технологии интегрируются. В этом примере приложение QnA подключается к https://ragapps.dataworkz.com в качестве серверной службы RAG Partner Playground. Эта служба «Площадка для партнеров» демонстрирует, как Dataworkz и MongoDB Atlas Vector Search работают вместе, создавая систему QnA для общедоступных документов, таких как 10 тысяч документов зарегистрированных на бирже компаний, таких как Uber.
Пример системы QnA демонстрирует, как использовать API Dataworkz RAG Builder для составления списка систем QnA и создания расширенных запросов к этому набору данных.
Подробную информацию о том, как получить ключ API и использовать его для вызова API Dataworkz QnA, см. в разделе «Генерация ключей API». В примере приложения QnA токен API передается в заголовке Authentication
в форме SWSS <api-key>
.
Dataworkz RAG Builder поддерживает настройку нескольких изолированных систем QnA. Системы QnA используются как домены систем вопросов и ответов и могут использоваться для разделения между несколькими проектами, группами источников, большими языковыми моделями, версиями или различными несвязанными поддоменами в проекте и т. д. Приложение может иметь один или несколько Системы QnA. Когда задается вопрос, он задается в отношении конкретной системы QnA.
Пример приложения QnA начинается с перечисления всех систем QnA (в виде карточек), чтобы пользователь мог выбрать интересующую его систему. Разработчики приложений могут выбрать список систем для выбора пользователя или, если выбор ясен из контекста, затем установить это в коде.
Вот API для вывода списка всех доступных систем QnA — https://ragapps.dataworkz.com/api/qna/v1/systems. Выбранный системный идентификатор QnA понадобится в последующих API.
Информация о каждой отдельной системе QnA извлекается с помощью этого API — https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}. Это используется в примере приложения QnA для заполнения отдельных системных карточек QnA.
На вопросы отвечают LLM, настроенные в Dataworkz RAG Builder. LLM, настроенные для систем, могут быть из OpenAI, частных моделей (например, Llama-2) и Vertex AI от Google (пример приложения может поддерживать один или несколько из них). Этот API предоставляет список настроенных LLMProviders системой QnA — https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/llm-providers.
В примере приложения QnA это используется для заполнения раскрывающегося списка LLMProviders, чтобы пользователь мог выбрать LLM, который он хочет использовать для ответа на вопрос. Вам следует сохранить идентификатор LLMProvider, которому вы хотите использовать, чтобы задавать вопросы. Вопросы можно задавать конкретным поставщикам LLM, указанным в llmProviderId
, возвращаемом этим вызовом API.
API, позволяющий задать вопрос системе QnA Dataworkz: https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/answer.
Для этого API требуется systemId
целевой системы QnA и llmProviderId
используемого LLM. Пример приложения QnA использует этот API для работы страницы «Поиск знаний». Ответ этого API включает ответ от LLM, а также ссылки на авторитетные источники, подтверждающие ответ.
Пример приложения QnA предоставляет список ранее заданных вопросов из системы QnA. Это удобный метод, позволяющий пользователям просматривать вопросы, на которые ранее были даны ответы. Используется следующий API — https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId)/questionshistory.
Dataworkz предоставляет список вопросов, на которые ранее были даны ответы, а также дополнительные оценки и анализ качества ответа. Подробнее об этом читайте здесь. Пример приложения QnA использует этот API для предоставления подробной информации по каждому отвеченному вопросу — https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/questions/{questionId}.