Skip to main content

Sistema de prospeccao mineral inteligente com agentes de IA e LLMs locais

Project description

miner-harness

CI Python 3.11+ License: MIT Version

Sistema de prospecção mineral inteligente que utiliza agentes de IA especializados em geologia e geofísica para analisar dados públicos do GeoSGB (Serviço Geológico do Brasil), ANM e USGS.

Sobre

O miner-harness combina LLMs rodando 100% localmente (via Ollama) com agentes especialistas em geociências para fornecer análise integrada de prospecção mineral. O framework analítico é guiado pela persona do Dr. Augusto Valen — geólogo exploracionista e geofísico de elite com 25+ anos de experiência.

Agentes especialistas

Agente Disciplina Passo
Geólogo Estrutural Controles estruturais, falhas, zonas de cisalhamento 1–2
Geofísico Anomalias gravimétricas e aeromagnéticas 2–3
Geoquímico Análise de amostras, CF por elemento, halos geoquímicos 3–4
Sensoriamento Remoto Imagens orbitais, alterações hidrotermais 3–4
Avaliador Integração crítica, score de confiança, alvos priorizados 5

Fontes de dados

Fonte Dados TTL Cache
GeoSGB/CPRM Ocorrências minerais, Gravimetria, Geoquímica, Geocronologia, Litoestratigrafia, Aerogeofísica, Furos 7 dias
ANM/SIGMINE Concessões minerárias (fase, titular, substâncias) 30 dias
USGS Earthquakes Eventos sísmicos (magnitude, profundidade) 7 dias
CSV do usuário Furos de sondagem proprietários (litologia, teores)

Requisitos

Componente Mínimo Recomendado
Python 3.11 3.12
RAM 8 GB 16 GB
VRAM 4 GB 8 GB (NVIDIA RTX 2060+)
Disco 10 GB livres 20 GB livres
Ollama qualquer latest

Instalação

Via wizard (recomendado)

pip install miner-harness
miner-harness install

O wizard interativo verifica pré-requisitos (Python, disco, Ollama, MINER_HOME), guia a configuração e cria a estrutura de diretórios.

Não-interativa (CI/automação)

miner-harness install \
  --non-interactive \
  --miner-home ~/.miner-harness \
  --model qwen3:8b \
  --ollama-url http://localhost:11434

Desenvolvimento

git clone https://github.com/VictorAMM/miner-harness
cd miner-harness
uv sync

Uso

Análise básica

# Analisar região de Carajás (PA) — maior província de ferro do mundo
miner-harness analyze carajas \
  --bbox -51.5 -7.0 -49.0 -5.0 \
  --model qwen3:8b

Gera dashboard HTML interativo com mapa Leaflet, gráficos Chart.js e aba de análise por etapa.

Opções avançadas

# Servidor HTTP interativo (análises sem reiniciar)
miner-harness analyze carajas --bbox -51.5 -7.0 -49.0 -5.0 --serve --port 8765

# Exportar alvos para GIS (QGIS/ArcGIS)
miner-harness analyze carajas --bbox -51.5 -7.0 -49.0 -5.0 \
  --output-gis targets.gpkg

# Exportar relatório técnico DOCX (compatível com JORC-preliminar)
miner-harness analyze carajas --bbox -51.5 -7.0 -49.0 -5.0 \
  --output-docx relatorio_carajas.docx

# Injetar furos de sondagem proprietários (prioridade máxima no LLM)
miner-harness analyze carajas --bbox -51.5 -7.0 -49.0 -5.0 \
  --drillholes meus_furos.csv

# Janela de contexto expandida (requer KV-cache Q4 no Ollama)
miner-harness analyze carajas --bbox -51.5 -7.0 -49.0 -5.0 \
  --ctx-size 32768

# Perfil de latência por step
miner-harness analyze carajas --bbox -51.5 -7.0 -49.0 -5.0 \
  --profile

# Menor limiar de dados (quando serviços GeoSGB têm timeout)
miner-harness analyze carajas --bbox -51.5 -7.0 -49.0 -5.0 \
  --min-sources 2 --llm-timeout 180

Furos de sondagem

# Indexar furos para uso permanente em todas as análises
miner-harness index drillholes meus_furos.csv

# Formato do CSV (colunas aceitas: en/pt-BR/acrônimos)
# hole_id/bhid/sondagem, x/lon/longitude, y/lat/latitude,
# z/elev, from/de, to/ate, lithology/litologia, alteration/alteracao
# + qualquer coluna extra (Au, Cu_ppm, etc.)

Cache e índice

miner-harness cache stats          # estatísticas
miner-harness cache evict          # remover entradas expiradas
miner-harness cache clear          # limpar tudo

miner-harness index stats          # documentos indexados por fonte
miner-harness health               # status do sistema (Ollama, disco, cache)
miner-harness validate report.json # validar relatório JSON existente

Arquitetura

src/miner_harness/
├── agents/           # Agentes especialistas (5 disciplinas)
├── cache/            # Cache SQLite com TTL configurável por fonte
├── cli/              # CLI argparse + handlers por subcomando
├── connectors/
│   ├── anm/          # ANM/SIGMINE — concessões minerárias
│   ├── geosgb/       # GeoSGB — 7 serviços geológicos
│   ├── ollama/       # Cliente async httpx + PromptManager
│   └── usgs/         # USGS Earthquakes
├── export/           # GisExporter (GeoPackage + GeoJSON)
├── index/            # Índice vetorial sqlite-vec + RAG
├── ingestion/        # DrillholeParser + DrillholeStore (CSV → SQLite)
├── observability/    # Health checks, métricas, ProfilingRunner
├── orchestrator/     # Pipeline principal, ContextBuilder, ConfidenceCalibrator
├── rca/              # Root Cause Analysis automático
├── report/           # HtmlReportRenderer (Jinja2/Leaflet) + DocxReportExporter
├── self_improvement/ # Profiler, tuner, feedback loop
├── server/           # DashboardServer (aiohttp) + SSE + AnalysisRunner
└── wizard/           # Wizard de instalação (checks + installer + UI Rich)

Testes

# Suite completa — 1120 testes (~70s)
pytest tests/ -q

# Testes e2e contra GeoSGB real + Ollama local
MINER_E2E=1 pytest tests/e2e/ -v

# Apenas GeoSGB (sem Ollama)
MINER_E2E=1 MINER_E2E_NO_OLLAMA=1 pytest tests/e2e/ -v -k "geosgb"

Status do projeto

v1.0.0 — PRD-002 "Salto de Qualidade Analítica" concluído (F1–F5, F7, F9).

Milestone Entregável Status
v0.1.0 11 fases ASO v3 — core, agentes, cache, índice, wizard, CI
v0.2.x Dashboard HTML (Leaflet + Chart.js), RAG
v0.3.0 Servidor HTTP local + SSE + dashboard interativo
v0.4.0 ANM/SIGMINE + USGS Earthquakes
v0.5.x Paralelização, benchmarks, qualidade de prompts, UI fixes
v0.6.x GeoPackage/GeoJSON export, furos GeoSGB, geoquímica normalizada
v0.7.x BouguerProcessor (derivadas gravimétricas), ConfidenceCalibrator
v0.9.0 Furos de sondagem do usuário (CSV → contexto LLM → mapa)
v1.0.0 Relatório técnico DOCX (7 seções, compatível JORC-preliminar)

Funcionalidades bloqueadas por [NEEDS CLARIFICATION]: F6 (Sentinel-2), F8 (Random Forest ML).

Desenvolvimento

Consulte CLAUDE.md para diretrizes de desenvolvimento e docs/ para artefatos de arquitetura (ADR, RFC, PRD, RCA).

Licença

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miner_harness-1.9.0.tar.gz (435.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

miner_harness-1.9.0-py3-none-any.whl (482.0 kB view details)

Uploaded Python 3

File details

Details for the file miner_harness-1.9.0.tar.gz.

File metadata

  • Download URL: miner_harness-1.9.0.tar.gz
  • Upload date:
  • Size: 435.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for miner_harness-1.9.0.tar.gz
Algorithm Hash digest
SHA256 1aad147316cf801b111910f28730c9b5ab932d8bd1a2e836365066fba7d8b284
MD5 7ac88e54324d25cbb2149c27e6d2320d
BLAKE2b-256 5473b5e9c796b4fef8cca8d8a67fb0bbfe64ef468af62070528b410abc28af92

See more details on using hashes here.

File details

Details for the file miner_harness-1.9.0-py3-none-any.whl.

File metadata

  • Download URL: miner_harness-1.9.0-py3-none-any.whl
  • Upload date:
  • Size: 482.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for miner_harness-1.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b0d75eb5abd375ec4bd8493ee7b1f1d8eaf416b4de450bc3f99972cdd58fb84
MD5 eed925dc55cce8ab5c3909c7ab5a81a3
BLAKE2b-256 1084f5573be66c39e6b83fe8cb253e571a74c879459d94f3f98db4faa467e52c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page