Saltar para o conteúdo principal
Versão: 2.0.0

DynamicRAG

O DynamicRAG é uma aplicação Web baseada em React que implementa um sistema dinâmico de Geração de Recuperação-Aumentada (RAG). Permite que os utilizadores introduzam texto, o processem em embeddings e executem tarefas de resposta a perguntas utilizando uma combinação de pesquisa vetorial e modelos de linguagem de grande dimensão.

informação

O código-fonte completo e as instruções detalhadas para configurar e executar este exemplo podem ser encontrados no repositório Gaia Cookbook.

Capturas de ecrã

Texto de entrada baseado no Dynamic RAG

screencapture-localhost-3000-2024-12-24-00_55_11

Github Repo para RAG dinâmico

imagem

Caraterísticas

  • Processamento de texto em tempo real e fragmentação
  • Criação de uma base de dados vetorial dinâmica utilizando Qdrant
  • Processamento em lote de grandes entradas de texto
  • Integração com um nó Gaia local
  • Análise do repositório do GitHub utilizando o GitIngest
  • Acompanhamento do progresso e tratamento de erros
  • IU limpa e reactiva utilizando CSS Tailwind e componentes shadcn/ui

Pré-requisitos

  • Node.js (v16 ou superior)
  • Python (para a instalação do GitIngest)
  • Uma instância Qdrant em execução (local ou remota)
  • Um servidor LLM local através de Gaia a correr na porta 8080 (Tutorial: https://docs.gaianet.ai/node-guide/quick-start)
  • O nómico-embutido modelo de incorporação (descarregado automaticamente em gaianet quando o Gaia CLI estiver instalado)
  • O lhama 3.2 modelo linguístico (descarregado automaticamente em gaianet quando o Gaia CLI é instalado. O modelo pode ser substituído consoante o caso de utilização)

Configuração

  1. Clonar o repositório:
git clone https://github.com/harishkotra/dynamic-rag-gaia
cd dynamic-rag
  1. Instalar dependências:
npm install
  1. Instalar o GitIngest:
pip install gitingest
  1. Certifique-se de que o seu servidor Qdrant está a funcionar e acessível em http://localhost:6333
  2. Certifique-se de que o seu nó Gaia está a funcionar e acessível em http://localhost:8080 (Tutorial: https://docs.gaianet.ai/node-guide/quick-start)
  3. Inicie o servidor de desenvolvimento:
npm run dev

Utilização

  1. Selecionar Modo de entrada:
    • Entrada de texto: Cole o texto da sua base de conhecimentos na área de texto de entrada
    • Repositório do GitHub: Introduzir um URL do repositório GitHub para analisar o seu conteúdo
  2. Fazer perguntas: Introduza a sua pergunta no campo de perguntas.
  3. Processar: Clique em "Submeter" para processar a sua consulta. O sistema irá:
    • Para a introdução de texto: Dividir o texto de entrada em partes manejáveis
    • Para repositórios do GitHub: Obter e processar o conteúdo do repositório usando GitIngest
    • Criar embeddings para cada pedaço
    • Armazenar embeddings numa coleção temporária de Qdrant
    • Encontrar contexto relevante utilizando a pesquisa de semelhança de vectores
    • Gerar uma resposta utilizando o Nó Gaia local
  4. Ver resultados: O sistema apresentará a resposta gerada com base no contexto relevante encontrado.

Dados técnicos

Processamento de texto

  • Tamanho máximo do bloco: 2000 caracteres
  • Tamanho do processamento em lote: 3 blocos de cada vez
  • Os blocos são criados com base nos limites naturais do texto (parágrafos e frases)

Base de dados vetorial

  • Utiliza Qdrant para armazenamento de vectores e pesquisa de semelhanças
  • Cria colecções temporárias para cada sessão de consulta
  • Limpa automaticamente as colecções após a utilização
  • Utiliza vectores de 768 dimensões para as incorporações

Integração da API

  • Compatível com pontos de extremidade de API do tipo OpenAI
  • Suporta pontos finais de incorporação e de conclusão de conversação
  • Utiliza o nómico-embutido modelo para incrustações
  • Utiliza o lhama modelo para geração de texto
  • Integra-se com o GitIngest para análise de repositórios
  • Rotas da API NextJS para integração de ferramentas de linha de comando

Componentes

  • DynamicRAG.js: Componente principal da aplicação do sistema RAG
  • app/api/gitingest/route.js: Rota da API para processamento do repositório GitHub
  • Tratamento e validação de entradas
  • Acompanhamento do progresso e visualização de erros
  • Gestão de bases de dados vectoriais
  • Integração do LLM

Tratamento de erros

O sistema inclui um tratamento de erros abrangente para:

  • Falhas no processamento de texto
  • Erros de busca e análise do repositório do GitHub
  • Erros de criação de incorporação
  • Operações de bases de dados vectoriais
  • Falhas de consulta LLM
  • Problemas de rede

Dependências

  • Reagir
  • Tailwind CSS
  • componentes shadcn/ui
  • Lodash para funções de utilidade
  • Vários componentes de IU (@/components/ui/*)
informação

O código-fonte completo e as instruções detalhadas para configurar e executar este exemplo podem ser encontrados no repositório Gaia Cookbook.