Toda vez que você manda uma mensagem para o ChatGPT, seus dados vão para servidores de terceiros — e você paga por token. Para projetos com dados sensíveis, uso intenso ou simplesmente para economizar, existe uma alternativa poderosa: rodar o modelo de IA direto no seu computador.

O Ollama transformou isso em algo tão simples quanto instalar qualquer programa.

O que é o Ollama

É uma plataforma open-source que funciona como um gerenciador de modelos de IA locais. Pensa nele como um “Docker para LLMs”: você baixa o modelo com um comando e ele roda como um servidor local com API REST — compatível com a API da OpenAI.

Modelos disponíveis: Llama 3.1, Gemma 3, Qwen3, Mistral, DeepSeek, Phi-3 e dezenas de outros.

Requisitos de hardware

ModeloRAM necessáriaGPU
Gemma 3 2B4 GBOpcional
Llama 3.1 8B8 GBRecomendada
Qwen3 14B16 GBNecessária
Qwen3 32B32 GBNecessária

Sem GPU? Use modelos 2B ou 3B — funcionam bem em CPU para uso individual.

Instalando o Ollama

Linux/Mac:

 
 
curl -fsSL https://ollama.com/install.sh | sh

Windows: baixe o instalador em ollama.com

Verifique a instalação:

 
 
ollama --version

Baixe e rode seu primeiro modelo:

 
 
ollama pull llama3.1
ollama run llama3.1

O segundo comando abre um chat interativo direto no terminal. Para sair: /bye

Instalando as dependências Python

 
 
pip install ollama python-dotenv

Uso básico com Python

 
 
import ollama

resposta = ollama.chat(
    model="llama3.1",
    messages=[
        {"role": "user", "content": "Explique o que é um pipeline RAG em 3 linhas"}
    ]
)

print(resposta["message"]["content"])

Simples assim. O modelo roda local, responde em segundos e não sai do seu computador.

Chatbot completo com memória e streaming

 
 
import ollama

MODELO = "llama3.1"

SYSTEM_PROMPT = """Você é um assistente especialista em Python e IA.
Responda sempre em português, com exemplos de código quando relevante.
Seja direto e prático."""

def chatbot_local():
    historico = [{"role": "system", "content": SYSTEM_PROMPT}]

    print("🤖 Chatbot local iniciado! (digite 'sair' para encerrar)\n")

    while True:
        user_input = input("Você: ").strip()

        if user_input.lower() == "sair":
            break

        if not user_input:
            continue

        historico.append({"role": "user", "content": user_input})

        print("IA: ", end="", flush=True)
        resposta_completa = ""

        for chunk in ollama.chat(model=MODELO, messages=historico, stream=True):
            token = chunk["message"]["content"]
            print(token, end="", flush=True)
            resposta_completa += token

        print()
        historico.append({"role": "assistant", "content": resposta_completa})

if __name__ == "__main__":
    chatbot_local()

Compatibilidade com a API OpenAI

O Ollama expõe uma API REST compatível com OpenAI. Qualquer código que você já tem usando ChatGPT funciona com Ollama trocando apenas a base_url:

 
 
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"
)

resposta = client.chat.completions.create(
    model="llama3.1",
    messages=[
        {"role": "system", "content": "Você é um especialista em Python"},
        {"role": "user", "content": "Como usar asyncio com Python?"}
    ]
)

print(resposta.choices[0].message.content)

Gerando embeddings locais

Embeddings locais são perfeitos para sistemas RAG com dados sensíveis — nenhum dado sai da sua máquina.

 
 
import ollama

resultado = ollama.embeddings(
    model="nomic-embed-text",
    prompt="Python é a melhor linguagem para automação com IA"
)

vetor = resultado["embedding"]
print(f"Vetor gerado com {len(vetor)} dimensões")

Modelos recomendados para começar

  • llama3.1:8b — melhor equilíbrio qualidade/RAM, bilíngue, uso geral
  • gemma3:4b — leve, bom para hardware modesto, rápido em CPU
  • qwen3:8b — excelente em código e raciocínio lógico
  • nomic-embed-text — embeddings rápidos e leves para RAG

Por que usar LLM local?

Custo zero por token — sem surpresas na fatura. Pode rodar milhares de requisições sem pagar nada.

Privacidade total — dados de clientes, documentos internos, código proprietário — nada sai do seu servidor.

Funciona offline — sem dependência de internet, sem latência de rede, sem indisponibilidade de API externa.

Conclusão

Com o Ollama e Python você tem uma infraestrutura completa de IA local: chat, streaming, embeddings e API REST — tudo sem gastar um centavo e sem enviar dados para ninguém.

No próximo post vamos usar esse LLM conectado a dados de ações da bolsa para gerar análises automáticas e enviar alertas no Telegram.


Quer escalar isso? No livro O Arquiteto de IA mostro como usar vLLM para servir modelos de 32B com múltiplos usuários simultâneos em produção corporativa. Acesse aqui


Leia também: Automatize sua Análise de Ações com Python e IA