Este repositorio proporciona una aplicación QnA de muestra impulsada por Dataworkz RAG Builder que demuestra el poder de RAG en varios conjuntos de datos. En esta sección, le mostraremos cómo ejecutar la aplicación QnA de muestra en su máquina local. Vaya aquí para obtener más información sobre Dataworkz RAG Builder
Clonar el repositorio dataworkz-qna-app usando git clone https://github.com/dataworkz-dev/dataworkz-qna-app.git
.
Si es necesario, instale node.js para su plataforma (Versión de Nodo > 16.0.0).
En este proyecto se incluye una clave API predeterminada para la muestra. Puede ignorar los pasos 4 y 5 a menos que planee crear su propia cuenta para un mayor desarrollo.
Necesitará una clave API de Dataworkz para acceder al servicio QnA de Dataworkz RAG. Estos son los pasos para generar una clave API. Nota: El nombre de la clave API debe ser único para todos los usuarios, así que elija el nombre correspondiente.
Coloque su clave API generada en el archivo token.txt
. Puede encontrar el archivo en src/assets/token.txt
.
Ejecute npm install
para instalar dependencias.
Ejecute npm run start
para ejecutar un servidor web local que aloja la aplicación QnA de ejemplo. Para acceder a la aplicación, abra un navegador y navegue hasta http://localhost:4200
Informe cualquier problema con la aplicación QnA de muestra en Problemas.
Dataworkz simplifica el desarrollo de aplicaciones RAG para empresas. Dataworkz ofrece RAG como servicio para que pueda crear aplicaciones GenAI utilizando datos propietarios, utilizando API LLM públicas o modelos básicos de código abierto alojados de forma privada.
El generador RAG de Dataworkz agiliza la creación de aplicaciones GenAI para eliminar la complejidad asociada con la unión de una solución llave en mano. Una pila de IA componible brinda la posibilidad de elegir la base de datos vectorial, el modelo de incrustación, la estrategia de fragmentación y el modelo LLM. Tiene la flexibilidad de utilizar API públicas de LLM, incluidas AWS Bedrock y OpenAI, o alojar un modelo de código abierto en una VPC.
Para aplicaciones RAG avanzadas, Dataworkz brinda la capacidad de combinar búsqueda léxica y semántica con filtrado de metadatos, lo que permite que las aplicaciones RAG procesen grandes volúmenes de datos no estructurados, semiestructurados o estructurados.
Dataworkz se conecta a diferentes fuentes de datos comerciales: servicios SaaS, bases de datos relacionales, bases de datos NoSQL, archivos almacenados en almacenes de objetos en la nube y proporciona transformaciones sin código para preparar datos propietarios en cualquier formato para aplicaciones LLM. Al combinar datos de múltiples fuentes, también puede configurar el orden de prioridad de las fuentes de entrada utilizadas para crear el contexto para generar la respuesta LLM. La lista completa de conectores está disponible aquí.
RAG Builder proporciona una API para que cualquier desarrollador integre aplicaciones GenAI en su flujo de trabajo existente con total flexibilidad para personalizar la apariencia. La aplicación de muestra en este repositorio aprovecha esta API para su funcionalidad. Tenemos una sección sobre la integración de API en esta aplicación y sobre cómo usarla en sus propias aplicaciones.
La aparición de alucinaciones presenta un obstáculo notable en la adopción generalizada de Gen AI dentro de las empresas. Dataworkz permite a GenAI hacer referencia a sus orígenes, mejorando en consecuencia la trazabilidad. Lea el blog de Dataworkz sobre cómo Dataworkz evalúa la respuesta de un LLM.
En esta sección, proporcionamos algunas notas para desarrolladores sobre cómo se creó la aplicación de muestra y qué API se utilizaron para impulsar varias secciones. Puede probar la API y el sistema de preguntas y respuestas integrados en su propia aplicación. Puede generar una clave API (si ya se generó, se puede usar la misma clave) y conectarse a este servicio.
Dataworkz está trabajando con socios estratégicos para demostrar cómo nuestra tecnología se está integrando. Esta aplicación QnA de ejemplo se conecta a https://ragapps.dataworkz.com como el servicio backend de RAG Partner Playground. Este servicio Partner Playground demuestra cómo Dataworkz y MongoDB Atlas Vector Search trabajan juntos para crear un sistema QnA para documentos disponibles públicamente, como presentaciones de 10.000 archivos de empresas que cotizan en bolsa como Uber.
El sistema QnA de muestra demuestra cómo utilizar la API Dataworkz RAG Builder para enumerar los sistemas QnA y realizar consultas enriquecidas en este conjunto de datos.
Consulte la sección Generación de claves API sobre cómo obtener una clave API y cómo usarla para invocar las API QnA de Dataworkz. En la aplicación QnA de ejemplo, el token de API se pasa en el encabezado Authentication
mediante el formulario SWSS <api-key>
.
Dataworkz RAG Builder admite la configuración de múltiples sistemas QnA aislados. Los sistemas QnA se utilizan como dominios de sistemas de preguntas y respuestas y se pueden aprovechar para la separación entre múltiples proyectos, grupos de fuentes, modelos de lenguaje grandes, versiones o diferentes subdominios no relacionados en un proyecto, etc. Una aplicación puede tener uno o más Sistemas QnA. Cuando se hace una pregunta, se hace frente a un sistema QnA específico.
La aplicación de ejemplo de QnA comienza enumerando todos los sistemas QnA (como tarjetas) para que el usuario seleccione el que le interesa. Los desarrolladores de aplicaciones pueden optar por enumerar los sistemas para la selección del usuario o, si la elección es clara según el contexto, entonces configurar en código.
Aquí está la API para enumerar todos los sistemas QnA disponibles: https://ragapps.dataworkz.com/api/qna/v1/systems. El ID del sistema de QnA seleccionado será necesario en las API posteriores.
La información sobre cada sistema QnA individual se recupera mediante esta API: https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}. Esto se utiliza en la aplicación QnA de ejemplo para completar las tarjetas individuales del sistema QnA.
Las preguntas son respondidas por LLM configurados en Dataworkz RAG Builder. Los LLM configurados para sistemas pueden ser de OpenAI, modelos alojados de forma privada (como Llama-2) y Vertex AI de Google (la aplicación de muestra puede admitir uno o más de estos). Esta API proporciona una lista de LLMProviders configurados por el sistema QnA: https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/llm-providers
La aplicación QnA de ejemplo usa esto para completar el menú desplegable LLMProviders y permitir al usuario seleccionar el LLM que desea usar para responder la pregunta. Debe almacenar la identificación del LLMProvider que desea utilizar para hacer preguntas. Se pueden hacer preguntas a proveedores de LLM específicos identificados por el llmProviderId
devuelto por esta llamada API.
La API para hacer una pregunta al sistema QnA de Dataworkz es https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/answer
Esta API necesita el systemId
del sistema QnA al que se dirige y el llmProviderId
del LLM que se utilizará. La aplicación QnA de ejemplo aprovecha esta API para impulsar la página "Búsqueda de conocimientos". La respuesta de esta API incluye la respuesta del LLM, así como enlaces a fuentes autorizadas que respaldan la respuesta.
La aplicación QnA de ejemplo proporciona una lista de preguntas formuladas anteriormente desde un sistema QnA. Este es un método conveniente para que los usuarios vean las preguntas respondidas anteriormente. Se utiliza la siguiente API: https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId)/questionshistory
Dataworkz proporciona una lista de preguntas respondidas previamente junto con puntuaciones adicionales y análisis sobre la calidad de la respuesta. Lea más sobre esto aquí. La aplicación QnA de ejemplo utiliza esta API para proporcionar detalles sobre cada pregunta respondida: https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/questions/{questionId}