Files
gart/rag/SETUP.md
T
João HenriqueandClaude Sonnet 5 e9a17c1b62 feat(rag): provisiona busca RAG do G-ART e corrige indexação que abortava em chunk grande
Cria rag/ (schema, busca híbrida densa+lexical com RRF em search.py/
search_gart.sh, SETUP.md) — o projeto já tinha admin/update_rag.py para
indexar, mas nenhuma forma de consultar o índice. Corrige admin/update_rag.py:
um chunk denso em tokens (code/fcpxml/font_metrics.py) estourava o contexto
do modelo de embedding e derrubava a transação inteira; agora só aquele
chunk é pulado. Banco rag_gart provisionado no rag-hub-db compartilhado e
primeira indexação completa rodada (304 arquivos, 1702 chunks).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 09:38:46 -04:00

2.1 KiB

Provisionar o banco rag_gart

Passo a passo para criar o banco deste projeto no container compartilhado rag-hub-db (mesma VPS usada por Doza/Tigre/Jhonny). Só precisa ser feito uma vez (ou para reprovisionar do zero).

Precisa de acesso SSH à VPS (root@179.197.228.240, chave já autorizada) e das credenciais do usuário admin do rag-hub-db (rag_admin — senha em /docker/rag-hub/.env na própria VPS; não é duplicada em nenhum projeto).

1. Criar o banco e a role de indexação

Via túnel SSH ou docker exec na VPS, como rag_admin:

CREATE DATABASE rag_gart OWNER rag_admin;
\c rag_gart
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_trgm;

-- Role de indexação, sem DDL (só o que admin/update_rag.py e rag/search.py
-- precisam: SELECT/INSERT/UPDATE/DELETE no schema gart).
CREATE ROLE gart_rag_indexer LOGIN PASSWORD '<senha forte gerada aqui>';

2. Criar o schema

Rode schema.sql neste banco (idempotente, CREATE ... IF NOT EXISTS em tudo):

psql "postgresql://rag_admin@127.0.0.1:55435/rag_gart" -f rag/schema.sql

Depois conceda os privilégios ao usuário de indexação:

GRANT USAGE ON SCHEMA gart TO gart_rag_indexer;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA gart TO gart_rag_indexer;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA gart TO gart_rag_indexer;
ALTER DEFAULT PRIVILEGES IN SCHEMA gart
  GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO gart_rag_indexer;

3. Preencher as credenciais locais

cp admin/gart-rag.env.example admin/gart-rag.env

Editar admin/gart-rag.env e colocar a senha gerada no passo 1 em RAG_DB_PASSWORD. Esse arquivo é ignorado pelo git — nunca commitar.

4. Indexar pela primeira vez

admin/update_rag.command

Abre o túnel SSH (se não estiver aberto), roda admin/update_rag.py e grava os chunks + o mapa de arquivos em rag_gart.

5. Testar a busca

rag/search_gart.sh "como funciona o export para DaVinci"
rag/search_gart.sh --map fcpxml

Se vier [RAG vazio, buscando local], confira se o passo 4 rodou sem erro e se RAG_DB_PASSWORD está correta.