Skip to content

enzojunq/study_rag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudyRAG

Plataforma web local para estudo com RAG (Retrieval-Augmented Generation). Crie projetos, adicione arquivos ou URLs como fonte de conhecimento, e converse com um assistente que responde com base no conteudo indexado.

Features

  • Multi-projeto — projetos independentes, cada um com sua propria knowledge base
  • Multi-conversa — multiplas conversas por projeto com historico persistente
  • Multi-source — upload de arquivos (PDF, MD, TXT) e scraping de URLs
  • Multi-provider — OpenAI, Anthropic, Google e Ollama (local)
  • Busca hibrida — vetorial + keyword (LanceDB + Tantivy)
  • Streaming — respostas em tempo real via SSE
  • Dark theme — interface moderna com tema escuro

Setup

# Instalar
pip install -e .

# Rodar
studyrag

O servidor inicia em http://localhost:8000.

Na primeira execucao, va em Settings (icone de engrenagem no topbar) e configure:

  • Provider e modelo de LLM
  • API key do provider escolhido
  • URL do Ollama (se usar modelo local)

Uso

  1. Crie um projeto no dashboard
  2. Adicione fontes na aba Fontes: arraste arquivos ou cole uma URL
  3. Aguarde a indexacao (status atualiza automaticamente)
  4. Converse na aba Chat — o assistente responde com base nas fontes indexadas

Arquitetura

app/
├── main.py              # FastAPI app + startup
├── database.py          # SQLite (SQLAlchemy)
├── models.py            # ORM: Project, Conversation, Message, ProjectFile, Setting
├── config.py            # Gerenciamento de settings (Fernet encryption para API keys)
├── templating.py        # Jinja2 templates
├── routes/
│   ├── projects.py      # CRUD de projetos
│   ├── chat.py          # Chat + streaming SSE
│   ├── files.py         # Upload + scraping + indexacao
│   └── settings.py      # Configuracoes (API keys, provider, modelo)
├── services/
│   ├── rag.py           # Pipeline RAG: knowledge base + hybrid search
│   ├── scraper.py       # Web scraper (sitemap, search_index, nav links)
│   └── llm.py           # Factory multi-provider (OpenAI, Anthropic, Google, Ollama)
├── templates/           # Jinja2 + HTMX
└── static/              # CSS (dark theme) + JS (SSE, drag-and-drop)
  • Backend: FastAPI + Jinja2 + HTMX
  • Metadata DB: SQLite via SQLAlchemy
  • Vector DB: LanceDB por projeto com busca hibrida (Tantivy)
  • Framework de agentes: Agno
  • Embeddings: text-embedding-3-small (OpenAI)

Desenvolvimento

# Instalar com dependencias de dev
pip install -e ".[dev]"

# Rodar testes
pytest -v

Licenca

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors