Skip to content

rafael4141/code-rag

Repository files navigation

Study RAG

Sistema de Retrieval-Augmented Generation para codebases. Ingere repositórios de código, cria embeddings vetoriais, e permite conversar com um LLM usando o código como contexto.

Quick Start

# Pré-requisitos: Bun, Docker
bun install
cp api/.env.example api/.env  # configurar API keys

macOS (Ollama nativo — recomendado)

No macOS, Ollama roda nativamente com acesso direto ao Metal (Apple Silicon GPU), resultando em performance significativamente superior para geração de embeddings comparado ao container Docker.

# Instalar e iniciar Ollama
brew install ollama
ollama serve &
ollama pull unclemusclez/jina-embeddings-v2-base-code

# Subir apenas Qdrant e Neo4j
docker compose up -d

# Dev
cd api && bun run dev         # API em :3000
cd web && bun run dev         # Frontend em :5173

A API conecta no Ollama nativo via host.docker.internal:11434 automaticamente.

Linux/Windows (Ollama containerizado)

Em Linux/Windows, Ollama roda dentro do Docker. Use o override docker-compose.ollama.yml que adiciona os containers ollama e ollama-setup (pull automático do modelo).

docker compose -f docker-compose.yml -f docker-compose.ollama.yml up -d
cd api && bun run dev         # API em :3000
cd web && bun run dev         # Frontend em :5173

Tudo via Docker (produção)

# macOS (Ollama nativo deve estar rodando)
docker compose up -d --build

# Linux/Windows (Ollama no container)
docker compose -f docker-compose.yml -f docker-compose.ollama.yml up -d --build

# App em http://localhost:8080

Estrutura Docker

Arquivo Conteúdo
docker-compose.yml Serviços base: API, Web, Qdrant, Neo4j. Sem Ollama — espera conexão via host
docker-compose.ollama.yml Override para Linux/Windows: adiciona Ollama + auto-pull do modelo de embedding

O compose base assume que Ollama está acessível em host.docker.internal:11434 (macOS nativo). O override sobrescreve OLLAMA_URL para http://ollama:11434 (rede interna Docker).

Documentação

Doc Conteúdo
Arquitetura Diagrama de componentes, fluxos RAG e ingestão, módulos
Setup Instalação, variáveis de ambiente, troubleshooting
API Endpoints e eventos SSE (+ Swagger em /api/docs)
Deployment Docker Compose, volumes, rede interna
ADRs Decisões arquiteturais

Stack

Bun · ElysiaJS · React 19 · Vite · Tailwind CSS 4 · SQLite · Qdrant · Neo4j · Ollama

Licença

Projeto de estudo pessoal.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages