Metadata-Version: 2.4
Name: personalrag
Version: 0.1.0
Summary: RAG (Retrieval-Augmented Generation) reutilizável sobre bases de conhecimento em Markdown
Author-email: Christian Schmitz Barbosa <cschmitz725@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/christian-s-barbosa/personalrag
Project-URL: Repository, https://github.com/christian-s-barbosa/personalrag
Project-URL: Issues, https://github.com/christian-s-barbosa/personalrag/issues
Keywords: rag,retrieval-augmented-generation,llm,markdown,embeddings,mcp
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Text Processing :: Markup :: Markdown
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: chromadb
Requires-Dist: sentence-transformers
Requires-Dist: openai
Requires-Dist: python-frontmatter
Requires-Dist: python-dotenv
Provides-Extra: mcp
Requires-Dist: mcp; extra == "mcp"
Dynamic: license-file

# personalrag

Núcleo reutilizável de **RAG** (Retrieval-Augmented Generation) sobre bases de conhecimento em **Markdown**.

Separa o **motor** (esta biblioteca) do **conteúdo/config** de cada projeto. Cada base define um `Settings` e usa a API:

```python
from personalrag import VaultRag, Settings

settings = Settings(vault_dir="..", collection="git")
rag = VaultRag(settings)

rag.index()
print(rag.buscar("como desfazer o último commit"))
print(rag.responder("como desfazer o último commit"))
```

E o servidor MCP:

```python
from personalrag.mcp import run_mcp
from config import settings

run_mcp(settings)
```

## Instalação

```bash
pip install personalrag          # núcleo
pip install "personalrag[mcp]"   # com o servidor MCP
```

## Módulos

| Módulo | Responsabilidade |
| --- | --- |
| `config.py` | `Settings` (dataclass) |
| `chunking.py` | Dividir markdown por seção + breadcrumb |
| `store.py` | Embeddings + Chroma |
| `retrieve.py` | Busca (+ rerank opcional) |
| `generate.py` | LLM compatível com OpenAI |
| `rag.py` | Classe `VaultRag` |
| `cli.py` | `python -m personalrag index/query` |
| `mcp.py` | `run_mcp(settings)` |
