ollamalocal-aiprivacydata-analysisfree

Consulte Seu Data Lake com IA de Graça: Ollama + DataSpoc Lens

Michael San Martim · 2026-04-28

Toda ferramenta de IA para dados requer uma chave de API. OpenAI cobra por token. Anthropic cobra por token. Os dados da sua empresa vão para servidores de terceiros. Para uma pergunta rápida sobre seus próprios dados, isso é muita fricção e risco.

O DataSpoc Lens funciona com Ollama para executar consultas de IA inteiramente na sua máquina. Sem chave de API, sem internet, sem dados saindo do seu laptop. Pergunte “quais foram os principais produtos no mês passado?” e obtenha uma consulta SQL real executada contra seu data lake — tudo local.

Por Que IA Local para Consultas de Dados

Três razões:

  1. Grátis — sem custos de API, sem limites de uso, sem surpresas na cobrança
  2. Privado — seus dados e consultas nunca saem da sua máquina
  3. Rápido para modelos pequenos — respostas em menos de um segundo para geração de SQL num MacBook

O trade-off: modelos locais são menos capazes que GPT-4o ou Claude. Para geração de SQL em schemas conhecidos, frequentemente são bons o suficiente.

Setup: Um Comando

Terminal window
dataspoc-lens setup-ai

Este comando:

  1. Verifica se o Ollama está instalado; se não, instala
  2. Baixa o modelo recomendado para geração de SQL
  3. Configura o Lens para usar o modelo local
  4. Executa uma consulta de teste para verificar
[1/4] Checking Ollama... not found
[2/4] Installing Ollama...
curl -fsSL https://ollama.ai/install.sh | sh
✓ Ollama installed (v0.3.x)
[3/4] Pulling model: duckdb-nsql:7b (4.1 GB)
████████████████████████████████ 100%
✓ Model ready
[4/4] Running test query...
Question: "How many tables are available?"
Generated SQL: SELECT COUNT(*) FROM information_schema.tables
✓ AI queries working
Setup complete. Run: dataspoc-lens ask "your question"

Sua Primeira Consulta com IA

Terminal window
dataspoc-lens ask "what are our top 10 customers by revenue?"
SQL: SELECT c.name, SUM(o.amount) as total_revenue
FROM raw.customers c
JOIN raw.orders o ON c.customer_id = o.user_id
WHERE o.status = 'completed'
GROUP BY c.name
ORDER BY total_revenue DESC
LIMIT 10
┌──────────────────┬───────────────┐
│ name │ total_revenue │
├──────────────────┼───────────────┤
│ Acme Corporation │ 1,245,800 │
│ TechFlow Inc │ 892,340 │
│ Global Systems │ 756,120 │
│ DataVentures │ 623,450 │
│ CloudFirst Ltd │ 589,200 │
│ ... │ ... │
└──────────────────┴───────────────┘

O modelo leu os schemas das suas tabelas, gerou uma consulta SQL DuckDB, o Lens executou e você obteve resultados reais. Tudo local.

Como Funciona Por Baixo dos Panos

Quando você executa dataspoc-lens ask, eis o que acontece:

1. Lens lê schemas das tabelas do catálogo
2. Lens constrói um prompt com schemas + sua pergunta
3. Prompt é enviado ao Ollama (HTTP local na porta 11434)
4. Ollama gera SQL usando o modelo local
5. Lens valida a sintaxe SQL
6. Lens executa o SQL via DuckDB
7. Resultados são exibidos

Nenhum dado vai para a internet. O prompt contém metadados de schema (nomes de tabelas e colunas) e sua pergunta. A resposta é uma consulta SQL. O DuckDB executa contra seu cache local ou bucket na nuvem.

Escolhendo o Modelo Certo

O DataSpoc Lens suporta múltiplos modelos Ollama. Veja como se comparam para geração de SQL:

duckdb-nsql:7b (Padrão Recomendado)

Um modelo de 7B parâmetros fine-tuned especificamente para geração de SQL DuckDB.

Terminal window
ollama pull duckdb-nsql:7b
dataspoc-lens config set ai.model duckdb-nsql:7b
  • Tamanho: 4,1 GB
  • RAM: 8 GB mínimo
  • Velocidade: ~2 segundos por consulta no M1 Mac
  • Precisão: Alta para SQL padrão (agregações, joins, filtros)
  • Fraqueza: Dificuldade com window functions complexas

qwen2.5-coder:1.5b (Leve)

Um modelo minúsculo que roda em quase qualquer máquina.

Terminal window
ollama pull qwen2.5-coder:1.5b
dataspoc-lens config set ai.model qwen2.5-coder:1.5b
  • Tamanho: 1,0 GB
  • RAM: 4 GB mínimo
  • Velocidade: ~500ms por consulta
  • Precisão: Boa para consultas simples, erra em joins complexos
  • Melhor para: Máquinas com poucos recursos, consultas rápidas

qwen2.5-coder:7b (Equilibrado)

Um modelo de propósito geral para código com boas capacidades SQL.

Terminal window
ollama pull qwen2.5-coder:7b
dataspoc-lens config set ai.model qwen2.5-coder:7b
  • Tamanho: 4,4 GB
  • RAM: 8 GB mínimo
  • Velocidade: ~2 segundos por consulta
  • Precisão: Boa em diversos tipos de consulta
  • Melhor para: Quando você também quer o modelo para tarefas de código não-SQL

Comparação de Precisão: Local vs. Nuvem

Testamos 50 perguntas em linguagem natural contra um dataset de e-commerce padrão (customers, orders, products, events). Cada pergunta foi testada contra três provedores:

ModeloSQL CorretoErros MenoresErradoTempo Médio
Claude claude-sonnet-4-2025051447/50 (94%)2/501/501,2s
GPT-4o45/50 (90%)3/502/501,8s
duckdb-nsql:7b (local)40/50 (80%)6/504/502,1s
qwen2.5-coder:7b (local)38/50 (76%)7/505/502,3s
qwen2.5-coder:1.5b (local)30/50 (60%)10/5010/500,5s

Onde modelos locais se destacam:

  • Agregações simples: “receita total este mês”
  • Filtragem: “pedidos da Califórnia”
  • Joins básicos: “pedidos com nomes de clientes”
  • Group by: “receita por categoria de produto”

Onde modelos locais têm dificuldade:

  • Window functions complexas: “média móvel com partição”
  • CTEs multi-passo: “análise de retenção por coorte”
  • Perguntas ambíguas: “como o negócio está indo?”
  • Casos especiais de datas: “cálculos de trimestre fiscal”

80% de precisão de um modelo grátis e local é impressionante. Para os 20% de consultas complexas, use IA na nuvem ou escreva o SQL você mesmo.

Quando Ir Local vs. Nuvem

Vá Local Quando

  • Você está explorando dados interativamente (perguntas rápidas, iteração)
  • Privacidade de dados é um requisito rígido (saúde, finanças, governo)
  • Você quer evitar custos de API para consultas frequentes
  • Você está offline ou em uma rede restrita
  • As consultas são diretas (filtros, agregações, joins simples)

Vá para a Nuvem Quando

  • Você precisa de alta precisão em perguntas analíticas complexas
  • A consulta envolve raciocínio multi-passo (análise de coorte, funis)
  • Você está construindo um produto onde precisão importa mais que custo
  • Você quer explicações em linguagem natural junto com os resultados

Use Ambos

Configure o Lens para usar local por padrão, nuvem sob demanda:

Terminal window
# Default: local model
dataspoc-lens config set ai.provider ollama
dataspoc-lens config set ai.model duckdb-nsql:7b
# Quick local query
dataspoc-lens ask "total orders today"
# Complex query: override to cloud
dataspoc-lens ask "build a cohort retention analysis by signup month" --provider anthropic

Uso do SDK

Use IA local a partir do Python:

from dataspoc_lens import LensClient
lens = LensClient()
# Uses the configured AI provider (Ollama by default after setup-ai)
answer = lens.ask("what are the top 5 product categories by revenue?")
print(answer)
# Explicit provider override
answer = lens.ask(
"complex cohort retention analysis",
provider="anthropic",
model="claude-sonnet-4-20250514",
)
print(answer)

Executando em um Servidor

O Ollama roda como um daemon. Para um servidor de analytics compartilhado:

Terminal window
# Start Ollama as a service
sudo systemctl enable ollama
sudo systemctl start ollama
# Pull models
ollama pull duckdb-nsql:7b
# Multiple users can query simultaneously
# Each dataspoc-lens instance connects to localhost:11434

Para servidores com GPU, o Ollama automaticamente usa a GPU para inferência mais rápida:

Terminal window
# Check GPU detection
ollama ps
# On a T4 GPU, expect ~500ms per query for 7B models

Resolução de Problemas

Ollama não está rodando:

Terminal window
# Start the Ollama daemon
ollama serve
# Or check the service
systemctl status ollama

Modelo muito lento:

Terminal window
# Switch to the smaller model
dataspoc-lens config set ai.model qwen2.5-coder:1.5b
# Or check if GPU is being used
ollama ps

SQL gerado incorreto:

Terminal window
# See the generated SQL without executing
dataspoc-lens ask "your question" --show-sql-only
# Fix and run manually
dataspoc-lens query "your corrected SQL"

Falta de memória:

Terminal window
# Check model size vs available RAM
ollama list
# Use the 1.5B model on machines with < 8 GB RAM
dataspoc-lens config set ai.model qwen2.5-coder:1.5b

Consultas de IA grátis nos seus próprios dados. Sem chave de API, sem internet, sem dados saindo da sua máquina. Instale uma vez, pergunte para sempre.

Recomendados