Metadata-Version: 2.5
Name: mini-rag-openrouter
Version: 0.1.0
Summary: RAG pipeline sederhana pakai OpenRouter dan ChromaDB
Author: Xiao
License: MIT
Requires-Python: >=3.10
Requires-Dist: chromadb>=0.4
Requires-Dist: pypdf>=4.0
Requires-Dist: python-docx>=1.1
Requires-Dist: requests>=2.31
Provides-Extra: api
Requires-Dist: fastapi>=0.110; extra == 'api'
Requires-Dist: python-multipart>=0.0.9; extra == 'api'
Requires-Dist: uvicorn>=0.29; extra == 'api'
Description-Content-Type: text/markdown

# mini-rag

RAG (Retrieval-Augmented Generation) pipeline sederhana menggunakan [OpenRouter](https://openrouter.ai) sebagai gateway LLM/embedding dan [ChromaDB](https://www.trychroma.com) sebagai vector database lokal.

## Instalasi

```bash
pip install mini-rag
```

Untuk contoh REST API (FastAPI), install dengan extra `api`:

```bash
pip install "mini-rag[api]"
```

## Pemakaian Cepat

```python
from mini_rag import RAGPipeline

rag = RAGPipeline(
    api_key="sk-or-xxxxxxxx",   # API key dari openrouter.ai
    chroma_path="./chroma_db",  # lokasi penyimpanan vector database
)

# Ingest dokumen dari folder (mendukung .txt, .pdf, .docx)
rag.ingest_folder("./dokumen")

# Tanya
result = rag.query("Apa itu ChromaDB?")
print(result["answer"])
print(result["sources"])
```

## Fitur

- Ingest dokumen `.txt`, `.pdf`, `.docx` dari satu folder sekaligus
- Deteksi dokumen yang sudah pernah di-ingest (skip otomatis, hemat API call)
- Vector search lokal via ChromaDB, tidak perlu server tambahan
- Model embedding & chat bisa dikustomisasi lewat parameter

## Kustomisasi Model

```python
rag = RAGPipeline(
    api_key="sk-or-xxxxxxxx",
    embed_model="cohere/embed-v4",
    chat_model="anthropic/claude-sonnet-4.6",
)
```

## Contoh REST API

Lihat `examples/app.py` untuk contoh integrasi ke FastAPI (endpoint `/ingest` dan `/query`).

```bash
cd examples
cp .env.example .env   # isi OPENROUTER_API_KEY
uvicorn app:app --reload
```

## Lisensi

MIT