| Recommend this page to a friend! |
| Info | Example | Reputation | Support forum | Blog | Links |
| Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
| 2025-12-17 (2 days ago) | Not yet rated by the users | Total: Not yet counted | Not yet ranked | |||||
| Version | License | PHP version | Categories | |||
| php-nano-rag 1 | MIT/X Consortium ... | 8 | Databases, Chat, Artificial intelligence, P... |
| Description | Author | |
This package implements an application that can learn and let users ask questions using artificial intelligence improved using Retrieval-Augmented Generation (RAG). |
Please read this document to learn how to setup and understand the chatbot application that uses artificial intelligence and retrieval-augmented generation to provide better answers to user questions.
<?php |
Nano 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.
O 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).
Abra seu terminal e execute os seguintes comandos para baixar os modelos necessários:
ollama pull nomic-embed-text ollama pull llama3.2
Nota: Você pode utilizar outros modelos, mas deve atualizar a configuração na instanciação da classe OllamaClient.
Na raiz do seu projeto, execute a instalação das dependências (atualmente configurado para autoload PSR-4):
composer install
Para iniciar a interface web de demonstração:
O sistema opera através de um fluxo de ingestão (aprendizado) e consulta (chat).
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*.
Ao 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.
O Nano RAG diferencia-se por sua arquitetura modular inspirada em processos cognitivos, dividida em três pilares principais gerenciados por um orquestrador central.
A classe Brain atua como o controlador central. Ela não armazena dados, mas orquestra o fluxo de informações entre o cliente LLM (Ollama), as memórias e a camada de decisão. É responsável por receber o input do usuário e devolver a resposta final processada.
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.
Para 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.
| File | Role | Description | ||
|---|---|---|---|---|
| Data | Auxiliary data | |||
| Example | Example script | |||
| Data | Auxiliary data | |||
| Doc. | Documentation | |||
| / | src | / | RagEngine |
| File | Role | Description |
|---|---|---|
| |
Class | Class source |
| |
Class | Class source |
| |
Class | Class source |
| / | src | / | VectorDb |
| File | Role | Description |
|---|---|---|
| |
Class | Class source |
| |
Class | Class source |
| / | tests |
| File | Role | Description |
|---|---|---|
| |
Example | Example script |
| |
Example | Example script |
| |
Example | Example script |
| |
Doc. | Documentation |
| |
Doc. | Documentation |
| The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page. |
| Version Control | Unique User Downloads | |||||||
| 100% |
|
| Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.