Este repositório fornece um exemplo de aplicativo QnA desenvolvido pelo Dataworkz RAG Builder que demonstra o poder do RAG em vários conjuntos de dados. Nesta seção, mostraremos como fazer com que o aplicativo QnA de amostra seja executado em sua máquina local. Clique aqui para saber mais sobre o Dataworkz RAG Builder
Clonar o repositório dataworkz-qna-app usando git clone https://github.com/dataworkz-dev/dataworkz-qna-app.git
.
Se necessário, instale o node.js para sua plataforma (versão do Node > 16.0.0).
Uma chave de API padrão para o exemplo está incluída neste projeto. Você pode ignorar as etapas 4 e 5, a menos que planeje criar sua própria conta para desenvolvimento posterior.
Você precisará de uma chave de API do Dataworkz para acessar o serviço Dataworkz RAG QnA. Aqui estão as etapas para gerar uma chave de API. Observação: o nome da chave de API deve ser exclusivo para todos os usuários, portanto, escolha um nome adequado.
Coloque sua chave de API gerada no arquivo token.txt
. Você pode encontrar o arquivo em src/assets/token.txt
.
Execute npm install
para instalar dependências.
Execute npm run start
para executar um servidor Web local que hospeda o aplicativo QnA de amostra. Para acessar o aplicativo, abra um navegador e navegue até http://localhost:4200
Relate quaisquer problemas com o aplicativo QnA de amostra em Problemas
Dataworkz simplifica o desenvolvimento de aplicativos RAG para empresas. Dataworkz oferece RAG como serviço para que você possa construir aplicativos GenAI usando dados proprietários, utilizando APIs LLM públicas ou modelos básicos de código aberto hospedados de forma privada.
O construtor RAG da Dataworkz agiliza a construção de aplicativos GenAI para remover a complexidade associada à montagem de uma solução pronta para uso. Uma pilha de IA combinável oferece a capacidade de escolher o banco de dados vetorial, o modelo de incorporação, a estratégia de chunking e o modelo LLM. Você tem a flexibilidade de usar APIs LLM públicas, incluindo AWS Bedrock e OpenAI, ou hospedar um modelo de código aberto em uma VPC.
Para aplicativos RAG avançados, o Dataworkz oferece a capacidade de combinar pesquisa lexical e semântica com filtragem de metadados, permitindo assim que aplicativos RAG processem grandes volumes de dados não estruturados, semiestruturados ou estruturados.
Dataworkz se conecta a diferentes fontes de dados de negócios - serviços SaaS, bancos de dados relacionais, bancos de dados NoSQL, arquivos armazenados em armazenamentos de objetos em nuvem e fornece transformações sem código para tornar dados proprietários em qualquer formato prontos para aplicativos LLM. Ao combinar dados de diversas fontes, você também pode configurar a ordem de precedência para fontes de entrada usadas para construir o contexto para gerar a resposta LLM. A lista completa de conectores está disponível aqui.
O construtor RAG fornece uma API para qualquer desenvolvedor incorporar aplicativos GenAI em seu fluxo de trabalho existente com total flexibilidade para personalizar a aparência. O aplicativo de amostra neste repositório aproveita essa API para sua funcionalidade. Temos uma seção sobre a integração da API neste aplicativo e também sobre como usá-la em seus próprios aplicativos.
O surgimento de alucinações representa um obstáculo notável à adoção generalizada da Gen AI nas empresas. O Dataworkz permite que a GenAI faça referência às suas origens, melhorando consequentemente a rastreabilidade. Leia o blog do Dataworkz sobre como o Dataworkz avalia a resposta de um LLM.
Nesta seção, fornecemos algumas notas do desenvolvedor sobre como o aplicativo de amostra foi criado e quais APIs foram usadas para alimentar diversas seções. Você pode experimentar a API e o sistema de perguntas e respostas integrados ao seu próprio aplicativo. Você pode gerar uma chave API (se já gerada, a mesma chave pode ser usada) e conectar-se a este serviço.
A Dataworkz está trabalhando com parceiros estratégicos para demonstrar como nossa tecnologia está se integrando. Este exemplo de aplicativo QnA se conecta a https://ragapps.dataworkz.com como o serviço back-end RAG Partner Playground. Este serviço Partner Playground demonstra como Dataworkz e MongoDB Atlas Vector Search trabalham juntos para criar um sistema de QnA para documentos disponíveis publicamente, como registros de 10 mil de empresas listadas como Uber.
O sistema QnA de amostra demonstra como usar a API Dataworkz RAG Builder para listar sistemas QnA e fazer consultas avançadas nesse conjunto de dados.
Consulte a seção Geração de chave de API sobre como obter uma chave de API e como usá-la para invocar APIs QnA do Dataworkz. No aplicativo QnA de exemplo, o token da API é passado no cabeçalho Authentication
usando o formato SWSS <api-key>
.
O Dataworkz RAG Builder oferece suporte à configuração de vários sistemas QnA isolados. Os sistemas QnA são usados como domínios de sistemas de perguntas e respostas e podem ser aproveitados para separação entre vários projetos, grupos de fontes, grandes modelos de linguagem, versões ou diferentes subdomínios não relacionados em um projeto, etc. Sistemas de QnA. Quando uma pergunta é feita, ela é feita em relação a um sistema de QnA específico.
O aplicativo de exemplo QnA começa listando todos os sistemas QnA (como cartões) para o usuário selecionar aquele em que está interessado. Os desenvolvedores de aplicativos podem optar por listar os sistemas para seleção do usuário ou, se a escolha estiver clara no contexto, defina em código.
Aqui está a API para listar todos os sistemas QnA disponíveis - https://ragapps.dataworkz.com/api/qna/v1/systems. O systemId de QnA selecionado será necessário nas APIs subsequentes.
As informações sobre cada sistema QnA individual são recuperadas usando esta API - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}. Isso é usado no aplicativo QnA de exemplo para preencher os cartões individuais do sistema QnA.
As perguntas são respondidas por LLMs configurados no Dataworkz RAG Builder. LLMs configurados para sistemas podem ser do OpenAI, modelos hospedados de forma privada (como Llama-2) e Vertex AI do Google (o aplicativo de exemplo pode oferecer suporte a um ou mais deles). Esta API fornece uma lista de LLMProviders configurados pelo sistema QnA - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/llm-providers
O aplicativo QnA de exemplo usa isso para preencher o menu suspenso LLMProviders para permitir que o usuário selecione o LLM que deseja usar para responder à pergunta. Você deve armazenar o id do LLMProvider que deseja usar para fazer perguntas. Perguntas podem ser feitas a provedores LLM específicos identificados pelo llmProviderId
retornado por esta chamada de API.
A API para fazer uma pergunta ao sistema Dataworkz QnA é https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/answer
Esta API precisa do systemId
do sistema QnA que você está almejando e do llmProviderId
do LLM a ser usado. O aplicativo QnA de exemplo aproveita essa API para potencializar a página "Pesquisa de conhecimento". A resposta desta API inclui a resposta do LLM, bem como links para fontes autorizadas que respaldam a resposta.
O exemplo de aplicativo QnA fornece uma lista de perguntas feitas anteriormente de um sistema QnA. Este é um método conveniente para os usuários consultarem as perguntas respondidas anteriormente. A seguinte API é usada - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId)/questionshistory
Dataworkz fornece uma lista de perguntas respondidas anteriormente, juntamente com pontuações adicionais e análises sobre a qualidade da resposta. Leia mais sobre isso aqui. O exemplo de aplicativo QnA usa esta API para fornecer detalhes sobre cada pergunta respondida - https://ragapps.dataworkz.com/api/qna/v1/systems/{systemId}/questions/{questionId}