Quickstart
Quickstart
Seção intitulada “Quickstart”Este guia coloca o Valter rodando na sua máquina com o setup mínimo viável. Você vai levantar a infraestrutura de bancos, rodar migrações e fazer sua primeira chamada de API. Para um setup completo com todas as features opcionais, veja o Guia de Instalação.
Pré-requisitos
Seção intitulada “Pré-requisitos”Você precisa de três coisas instaladas:
- Python 3.12+ — Valter usa features modernas de tipagem (
X | None,typestatements) - Docker e Docker Compose — para PostgreSQL, Qdrant e Redis
- make — todos os comandos passam pelo Makefile
Passo 1: Clone e instale
Seção intitulada “Passo 1: Clone e instale”git clone <repo-url> && cd Valter
# Crie e ative o ambiente virtualpython -m venv .venvsource .venv/bin/activate
# Instale com dependências de dev (prefira uv pela velocidade)uv pip install -e ".[dev]"# ou: pip install -e ".[dev]"Passo 2: Levante os bancos
Seção intitulada “Passo 2: Levante os bancos”make docker-upIsso inicia três containers via Docker Compose:
| Serviço | Imagem | Porta | Dados |
|---|---|---|---|
| PostgreSQL 16 | postgres:16-alpine | 5432 | Documentos, features, metadados, jobs |
| Qdrant | qdrant/qdrant:latest | 6333 | Busca vetorial semântica |
| Redis 7 | redis:7-alpine | 6379 | Cache, rate limiting, fila de jobs |
Passo 3: Configure o ambiente
Seção intitulada “Passo 3: Configure o ambiente”cp .env.example .envOs valores padrão funcionam sem alterações para desenvolvimento local. O .env.example já vem pré-configurado com strings de conexão locais:
# Esses são os defaults — nenhuma mudança necessária para dev localVALTER_DATABASE_URL=postgresql+asyncpg://valter:valter_dev@localhost:5432/valterVALTER_QDRANT_URL=http://localhost:6333VALTER_REDIS_URL=redis://localhost:6379/0Passo 4: Rode as migrações
Seção intitulada “Passo 4: Rode as migrações”make migrateIsso executa alembic upgrade head, aplicando todas as 8 migrações PostgreSQL que criam tabelas para documentos, features, metadados, jobs, workflows, API keys, audit logs e memória de sessão.
Passo 5: Inicie o servidor
Seção intitulada “Passo 5: Inicie o servidor”make devA API inicia em http://localhost:8000 com hot reload habilitado. Você verá logs JSON estruturados via structlog:
{"event": "valter.startup", "version": "0.1.0", ...}Passo 6: Verifique se funciona
Seção intitulada “Passo 6: Verifique se funciona”Health check
Seção intitulada “Health check”curl -s http://localhost:8000/health | python -m json.tool{ "status": "healthy", "version": "0.1.0", "stores": [ {"name": "qdrant", "status": "up", "latency_ms": 2.1}, {"name": "neo4j", "status": "down", "latency_ms": null}, {"name": "postgres", "status": "up", "latency_ms": 1.3}, {"name": "redis", "status": "up", "latency_ms": 0.4}, {"name": "artifact_storage", "status": "up", "latency_ms": 0.1}, {"name": "worker_ingest", "status": "down", "latency_ms": null} ], "uptime_seconds": 3.42}Um status "degraded" é normal nesse ponto — Neo4j e o ingest worker ainda não estão rodando.
Documentação interativa da API
Seção intitulada “Documentação interativa da API”Abra http://localhost:8000/docs no navegador. O FastAPI gera documentação Swagger interativa para todos os endpoints.
Sua primeira busca
Seção intitulada “Sua primeira busca”curl -s -X POST http://localhost:8000/v1/retrieve \ -H "Content-Type: application/json" \ -d '{"query": "responsabilidade civil dano moral"}' \ | python -m json.toolVerifique uma referência jurídica
Seção intitulada “Verifique uma referência jurídica”curl -s -X POST http://localhost:8000/v1/verify \ -H "Content-Type: application/json" \ -d '{"text": "Conforme Súmula 297 do STJ"}' \ | python -m json.toolPasso 7: Conecte via MCP (opcional)
Seção intitulada “Passo 7: Conecte via MCP (opcional)”Para usar o Valter como ferramenta no Claude Desktop, adicione isto ao seu claude_desktop_config.json:
{ "mcpServers": { "valter": { "command": "python", "args": ["-m", "valter.mcp"], "cwd": "/caminho/absoluto/para/Valter", "env": { "VALTER_DATABASE_URL": "postgresql+asyncpg://valter:valter_dev@localhost:5432/valter", "VALTER_QDRANT_URL": "http://localhost:6333", "VALTER_REDIS_URL": "redis://localhost:6379/0" } } }}Reinicie o Claude Desktop. Você deve ver 28 tools disponíveis em “valter” no painel de tools MCP.
O que está rodando
Seção intitulada “O que está rodando”Após completar este quickstart, você tem:
┌─────────────────────────────────────────┐│ Sua máquina ││ ││ ┌─────────────┐ ┌─────────────────┐ ││ │ Valter API │ │ Claude Desktop │ ││ │ :8000 │ │ (MCP stdio) │ ││ └──────┬──────┘ └────────┬────────┘ ││ │ │ ││ ┌──────┴──────────────────┴──────────┐ ││ │ Data Stores Compartilhados │ ││ │ PostgreSQL :5432 │ ││ │ Qdrant :6333 │ ││ │ Redis :6379 │ ││ └────────────────────────────────────┘ │└─────────────────────────────────────────┘O que não está rodando (ainda)
Seção intitulada “O que não está rodando (ainda)”| Componente | O que adiciona | Como habilitar |
|---|---|---|
| Neo4j | 12 endpoints de analytics de grafo (divergências, argumento ótimo, evolução temporal) | Guia de Instalação |
| ARQ Worker | Ingestão de PDFs em background e análise de casos | make worker-ingest |
| MCP Remote | Servidor HTTP/SSE para integração com ChatGPT | make mcp-remote |
| Groq LLM | Extração factual, expansão de queries, classificação de documentos | Defina VALTER_GROQ_API_KEY e VALTER_GROQ_ENABLED=true |
Próximos passos
Seção intitulada “Próximos passos”- Instalação — Setup completo com Neo4j, Groq, R2 e configuração de produção
- Referência da API — Todos os endpoints com schemas de request/response
- Tools MCP — Referência completa das 28 tools MCP
- Arquitetura — Como as camadas e data stores se conectam