| Recommend this page to a friend! |
| Packages of Rodrigo Faustino | PHP Nano RAG | README.md | Download |
|
|||||||||||||||||||||
Nano RAG for PHPNano RAG é uma biblioteca PHP de código aberto que implementa uma arquitetura de Geração Aumentada por Recuperação (RAG - Retrieval-Augmented Generation) utilizando puramente PHP e armazenamento em arquivos locais (JSON). O projeto foi desenhado para ambientes onde bancos de dados vetoriais complexos (como Pinecone ou Milvus) não estão disponíveis, permitindo a criação de Agentes de IA com memória persistente e contextual em servidores de hospedagem compartilhada. Parte 1: Guia de Instalação e UsoPré-requisitos do Sistema
Configuração do OllamaO Nano RAG depende do Ollama para processamento de linguagem natural. Você precisa instalar o servidor e dois modelos específicos: um para gerar vetores (Embeddings) e outro para o chat (LLM).
Nota: Você pode utilizar outros modelos, mas deve atualizar a configuração na instanciação da classe OllamaClient. Instalação da BibliotecaNa raiz do seu projeto, execute a instalação das dependências (atualmente configurado para autoload PSR-4):
Para iniciar a interface web de demonstração:
Como UtilizarO sistema opera através de um fluxo de ingestão (aprendizado) e consulta (chat). 1. Ingestão de Dados (Aprendizado)Para que a IA responda sobre seus dados, você deve "ensinar" o sistema enviando arquivos de texto (.txt). * O sistema lê o arquivo. * O texto é dividido em fragmentos menores (chunks). Cada fragmento é convertido em um vetor matemático e salvo naMemória de Longo Prazo*. 2. Realizando ConsultasAo fazer uma pergunta, o sistema utiliza uma Camada de Atenção para decidir se deve buscar a resposta nos arquivos que você enviou ou no histórico da conversa atual. Parte 2: Aspectos Técnicos e ArquiteturaO Nano RAG diferencia-se por sua arquitetura modular inspirada em processos cognitivos, dividida em três pilares principais gerenciados por um orquestrador central. 1. O Cérebro (Brain Class)A classe 2. Memória de Longo Prazo (Long-Term Memory)
3. Memória de Curto Prazo (Short-Term Memory)
4. Camada de Atenção (Attention Layer)Este é o componente mais complexo do sistema, atuando como um filtro lógico (Gatekeeper) antes de acionar a Inteligência Artificial. Ela resolve o problema de alucinação evitando enviar contexto irrelevante para o modelo. A camada de atenção decide dinamicamente a estratégia de resposta: Estratégia Retrieval:* Se a pergunta do usuário tem alta similaridade matemática com dados do JSON, a atenção foca na Memória de Longo Prazo. Estratégia Contextual:* Se a pergunta se conecta semanticamente com a frase anterior, a atenção foca na Memória de Curto Prazo. Estratégia Meta-Analysis:* Se o usuário pergunta sobre a própria conversa (ex: "O que eu perguntei antes?", "Resuma o chat"), a camada ignora a matemática e recupera o histórico linear bruto, simulando uma memória sequencial. Conceitos Fundamentais: Vetores e EmbeddingsPara que o PHP realize buscas semânticas sem um banco de dados externo, utilizamos o conceito de Embeddings.
O Nano RAG calcula essas distâncias nativamente em PHP para determinar o que é relevante para responder ao usuário. |