Este guia é para administradores de TI, engenheiros DevOps e equipes técnicas que implementam uma infraestrutura de IA privada para documentos confidenciais de negócios. Assume que você está confortável com a linha de comando, Docker e redes básicas. Se você é um usuário não técnico procurando começar rapidamente, consulte o guia complementar: Como executar um assistente de IA privado no Windows sem experiência técnica.
O que se segue cobre a pilha completa de produção: inferência acelerada por GPU com LocalAI, recuperação de documentos semânticos via LocalRecall, fluxos de trabalho de agentes autônomos com LocalAGI, e compatibilidade de API plug-in para que suas ferramentas existentes não exijam reescritas.
Por que LocalAI em vez de alternativas mais simples neste nível
Ollama e AnythingLLM são excelentes para indivíduos e pequenas equipes. No nível empresarial, as vantagens do LocalAI tornam-se decisivas:
- Compatibilidade completa com API OpenAI e Anthropic — mude a URL base em qualquer ferramenta existente e funciona. Sem mudanças de SDK, sem bibliotecas wrapper.
- LocalRecall — uma camada de memória semântica integrada e persistente. Os documentos são divididos em chunks, incorporados localmente e armazenados em um banco de dados vetorial. As consultas recuperam chunks relevantes antes da inferência, mantendo o contexto preciso em milhares de documentos.
- LocalAGI — framework de agente autônomo para fluxos de trabalho agendados ou acionados por eventos: sumarizar automaticamente contratos ao carregar, extrair dados estruturados de faturas, sinalizar riscos de conformidade em relação a um conjunto de regras personalizado.
- Suporte multimodal — modelos de visão, transcrição de áudio e geração de imagens, todos funcionando através do mesmo endpoint de API.
- Licença MIT — sem bloqueio de fornecedor, sem taxas de uso, auditoria completa da base de código.
Recomendações de hardware por carga de trabalho
| Carga de trabalho | CPU | RAM | GPU | Armazenamento |
|---|---|---|---|---|
| Perguntas leves, modelos 7B | Qualquer núcleo moderno de 8 cores | 16 GB | Nenhum (inferência CPU) | 40 GB SSD |
| Inteligência de documentos padrão, modelos 13B | 12+ núcleos (Ryzen 7 / Core i7+) | 32 GB | RTX 3090 / 4080 | 100 GB NVMe |
| Análise pesada, modelos 70B | Estação de trabalho de 16+ núcleos | 64–128 GB | RTX 4090 / A6000 (24 GB VRAM) | 200 GB NVMe |
| Servidor multiusuário | CPU de classe servidor | 128 GB+ | Dual A100 / H100 | RAID NVMe |
Para a maioria das implantações comerciais (revisão de contratos, análise de documentos financeiros, perguntas sobre políticas), um modelo quantizado 13B em um único RTX 4080 ou 4090 oferece qualidade próxima ao GPT-4 com geração de token sub-segundo.
Windows: Instalação completa acelerada por GPU
Pré-requisitos
- Windows 10/11 (64-bit)
- Docker Desktop com backend WSL2 habilitado
- Drivers NVIDIA versão 527+ (verifique:
nvidia-smino PowerShell) - NVIDIA Container Toolkit para pass-through de GPU do Docker
Verifique se sua GPU é visível para o Docker antes de prosseguir:
docker run --rm --gpus all nvidia/cuda:12.0-base-ubuntu22.04 nvidia-smi
Você deve ver sua GPU listada. Se receber um erro, reinstale o NVIDIA Container Toolkit e reinicie o Docker Desktop.
Instale o LocalAI com suporte GPU
Puxe e execute a imagem habilitada para CUDA:
docker run -d `
--gpus all `
-p 8080:8080 `
-v C:\localai\models:/build/models `
-v C:\localai\config:/build/config `
--name localai `
localai/localai:latest-aio-gpu-nvidia-cuda-12
Isso monta dois diretórios locais — C:\localai\models para arquivos de modelo e C:\localai\config para configuração. Crie-os primeiro:
mkdir C:\localai\models
mkdir C:\localai\config
A imagem aio (tudo em um) inclui uma galeria de modelo selecionada, LocalRecall e backends comuns. Uma vez em execução, a API está disponível em http://localhost:8080/v1.
Puxe modelos de produção
Navegue até http://localhost:8080 e use a UI da galeria de modelos, ou puxe via CLI do LocalAI:
# Modelo de raciocínio forte — bom para análise de contrato, Q&A financeiro
docker exec localai local-ai run llama-3.1-8b-instruct:q4_k_m
# Qualidade máxima para tarefas complexas de múltiplos documentos (requer 24 GB VRAM)
docker exec localai local-ai run llama-3.1-70b-instruct:q4_k_m
# Modelo de embedding para LocalRecall (necessário para RAG)
docker exec localai local-ai run nomic-embed-text
Configuração persistente
Para produção, gerencie a configuração do modelo com arquivos YAML em C:\localai\config\. Exemplo de config para um modelo de Q&A comercial:
name: business-assistant
backend: llama-cpp
model: llama-3.1-8b-instruct.Q4_K_M.gguf
context_size: 8192
gpu_layers: 40
parameters:
temperature: 0.2
top_p: 0.9
repeat_penalty: 1.1
Uma temperature mais baixa (0,1–0,3) melhora a precisão factual em tarefas de recuperação de documentos — importante para contratos e trabalho de conformidade onde alucinação é uma responsabilidade.
Linux: Instalação completa acelerada por GPU
Linux é a plataforma preferida para implantações de servidor devido ao melhor suporte de GPU do Docker, menor overhead e acesso direto ao driver NVIDIA.
Pré-requisitos
- Ubuntu 22.04 LTS ou Debian 12 (recomendado); RHEL 8+ também suportado
- Docker Engine (não Docker Desktop)
- Drivers NVIDIA e NVIDIA Container Toolkit
Instale o NVIDIA Container Toolkit no Ubuntu:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Instale LocalAI
mkdir -p /opt/localai/{models,config}
docker run -d --gpus all --restart unless-stopped -p 8080:8080 -v /opt/localai/models:/build/models -v /opt/localai/config:/build/config --name localai localai/localai:latest-aio-gpu-nvidia-cuda-12
A flag --restart unless-stopped garante que LocalAI seja iniciado automaticamente na reinicialização — importante para implantações de servidor sempre ativas.
Apple Silicon (ARM Linux / macOS)
Para Macs da série M ou servidores ARM Linux:
docker run -d --restart unless-stopped -p 8080:8080 -v /opt/localai/models:/build/models -v /opt/localai/config:/build/config --name localai localai/localai:latest-aio-cpu
LocalAI no Apple Silicon usa aceleração Metal automaticamente quando executado nativamente (instalação binária). A imagem Docker usa inferência CPU — para suporte completo de Metal, use a instalação binária no macOS.
Implantação apenas CPU (air-gap ou orçamento baixo)
Para ambientes de air-gap rigorosos sem acesso GPU:
docker run -d --restart unless-stopped -p 8080:8080 -v /opt/localai/models:/build/models -e THREADS=8 --name localai localai/localai:latest-aio-cpu
Defina THREADS para o número de núcleos CPU físicos. Modelos quantizados 7B–13B (formato Q4_K_M) funcionam adequadamente em CPUs com 8 núcleos para Q&A de documentos de concorrência baixa.
Habilitando LocalRecall para inteligência de documentos empresariais
LocalRecall é a memória semântica e sistema RAG do LocalAI. Incorpora seus documentos localmente, armazena-os em um banco de dados vetorial e recupera chunks relevantes antes de cada chamada de inferência — fundamentando respostas em seu conteúdo real em vez de pesos do modelo.
Configuração
No seu diretório de config do LocalAI, crie localrecall.yaml:
localrecall:
enabled: true
embedding_model: nomic-embed-text
vector_db: chromadb # instância local ChromaDB, sem dependências externas
chunk_size: 512
chunk_overlap: 64
Ingestão de documentos
LocalAI expõe uma API REST para gerenciamento de documentos. Ingira um diretório de arquivos programaticamente:
# Fazer upload de um único documento
curl -X POST http://localhost:8080/v1/localrecall/documents -F "file=@/path/to/contract.pdf" -F "collection=legal-contracts"
# Consultar em uma coleção
curl -X POST http://localhost:8080/v1/localrecall/query -H "Content-Type: application/json" -d '{
"collection": "legal-contracts",
"query": "Quais são as cláusulas de rescisão em todos os contratos?",
"limit": 10
}'
As coleções atuam como namespaces — use uma por categoria de documento (jurídico, finanças, política de RH) para limites de recuperação limpos e controle de acesso.
Integrando RAG em conclusões de chat
Para injetar automaticamente o contexto recuperado em solicitações de chat, referencie a coleção no seu prompt do sistema ou use o endpoint compatível com RAG integrado do LocalAI:
curl -X POST http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "business-assistant",
"localrecall_collection": "legal-contracts",
"messages": [
{"role": "user", "content": "Resuma as cláusulas de indenização nos contratos Acme e Bluebell."}
]
}'
LocalAI recupera os chunks mais semanticamente relevantes de sua coleção antes de enviar para o modelo — sem chamadas de API externas, sem dados saindo da máquina.
Conectando ferramentas de negócios existentes
A API compatível com OpenAI (http://localhost:8080/v1) significa zero reescritas para ferramentas que já se integram com ChatGPT.
Python / LangChain
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="business-assistant",
base_url="http://localhost:8080/v1",
api_key="not-needed", # LocalAI não requer uma chave real
temperature=0.2
)
response = llm.invoke("Resuma os principais riscos no relatório financeiro Q3.")
print(response.content)
LlamaIndex (inteligência de documentos)
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import Settings
Settings.llm = OpenAI(
model="business-assistant",
api_base="http://localhost:8080/v1",
api_key="not-needed"
)
Settings.embed_model = OpenAIEmbedding(
model="nomic-embed-text",
api_base="http://localhost:8080/v1",
api_key="not-needed"
)
Microsoft Office / Add-ins do Word
Qualquer add-in do Word ou alternativa Copilot que aceite um endpoint OpenAI personalizado pode apontar para http://localhost:8080/v1. Sem mudanças de rede ou VPN necessárias para implantações no local.
Continue.dev (VS Code / JetBrains)
Em .continue/config.json:
{
"models": [{
"title": "LocalAI — Assistente de Negócios",
"provider": "openai",
"model": "business-assistant",
"apiBase": "http://localhost:8080/v1",
"apiKey": "not-needed"
}]
}
Dá aos seus desenvolvedores assistência de IA totalmente local sobre bases de código proprietárias — nada sai da máquina.
Fluxos de trabalho autônomos com LocalAGI
LocalAGI estende LocalAI com um loop de planejamento e execução. Os agentes podem observar diretórios, chamar ferramentas externas e encadear tarefas multi-etapa sem intervenção humana.
Exemplo: sumarizar automaticamente novos contratos
# localagi/agents/contract-monitor.yaml
name: contract-monitor
trigger:
type: file-watch
path: /opt/documents/incoming-contracts
patterns: ["*.pdf", "*.docx"]
tasks:
- name: summarize
prompt: |
Você é um analista de documentos legais. Resuma os termos-chave do contrato carregado,
incluindo: partes, duração, termos de pagamento, cláusulas de rescisão e quaisquer cláusulas incomuns.
Saída como JSON estruturado.
- name: flag-risks
prompt: |
Revise o resumo e sinalize quaisquer cláusulas que se desviem de termos padrão.
Referencie o playbook da empresa em /opt/documents/legal-playbook.pdf.
- name: save-output
action: write-file
path: /opt/documents/processed/{filename}_summary.json
Exemplo: relatório semanal de risco financeiro
name: finance-weekly
trigger:
type: schedule
cron: "0 8 * * 1" # Todas as segundas-feiras às 8 da manhã
tasks:
- name: analyze
collection: finance-reports
prompt: |
Analise todos os documentos financeiros dos últimos 7 dias.
Identifique: riscos de fluxo de caixa, contas a receber vencidas há mais de 90 dias,
variações orçamentárias maiores que 10%, e quaisquer itens de conformidade sinalizados.
- name: email-report
action: send-email
to: "cfo@company.com"
subject: "Resumo Semanal de Risco Financeiro — {date}"
Verificando seu air-gap
Antes de processar qualquer documento sensível, confirme que nenhum tráfego externo está sendo gerado.
Windows:
# Assista as conexões ativas enquanto executa uma consulta
netstat -an | findstr "ESTABLISHED" | findstr /V "127.0.0.1"
Nenhuma linha deve aparecer. Todas as conexões devem ser apenas loopback.
Linux:
# Monitore o tráfego de saída do contêiner LocalAI
sudo nsenter -t $(docker inspect -f '{{.State.Pid}}' localai) -n ss -tunp | grep ESTABLISHED | grep -v 127.0.0.1
Novamente, nenhuma conexão externa deve aparecer durante a inferência.
Para ambientes mais rigorosos, aplique uma regra iptables para bloquear todo o tráfego de saída do contêiner:
# Bloquear toda saída do LocalAI exceto loopback
iptables -I DOCKER-USER -s $(docker inspect -f '{{.NetworkSettings.IPAddress}}' localai) -j DROP
iptables -I DOCKER-USER -s $(docker inspect -f '{{.NetworkSettings.IPAddress}}' localai) -d 127.0.0.0/8 -j ACCEPT
Lista de verificação de produção
- GPU visível para Docker —
docker run --rm --gpus all nvidia/cuda:12.0-base-ubuntu22.04 nvidia-smiretorna saída esperada - API LocalAI respondendo —
curl http://localhost:8080/v1/modelsretorna lista de modelos - Modelo de embedding carregado —
nomic-embed-textou equivalente aparece na lista de modelos - LocalRecall habilitado e coleção criada — teste com upload de documento de amostra e consulta
- Sem tráfego de rede externo durante inferência — confirmado via
netstatouss --restart unless-stoppeddefinido no contêiner (Linux) ou Docker Desktop definido para iniciar no login (Windows)- YAML de configuração do modelo confirmado no controle de versão para reprodutibilidade
- Estratégia de backup para
/opt/localai/modelse diretório de dados do banco de dados vetorial