Pular para o conteúdo principal

AnythingLLM: guia completo de instalação, recursos e casos de uso

Aprenda a instalar o AnythingLLM com Docker e Ollama, configurar pipelines RAG para chat com documentos privados e escolher entre AnythingLLM, ChatGPT e Open WebUI.
Atualizado 17 de abr. de 2026  · 11 min lido

Uma dúvida comum no universo de IA autogerenciada é como conversar com documentos privados sem enviá-los para uma API na nuvem. 

AnythingLLM é uma resposta popular. Ele cuida de tudo (upload de documentos, embedding, busca e chat) em uma única interface e se conecta a uma ampla variedade de provedores de LLM. Assim, você cria fluxos de IA privados sem depender de serviços em nuvem.

Neste guia, vou explicar o que é o AnythingLLM, detalhar sua arquitetura, mostrar como instalar com Docker e Ollama, e demonstrar um pipeline de Retrieval-Augmented Generation (RAG) funcionando. Também vou compará-lo com Open WebUI e ChatGPT.

O que é o AnythingLLM?

AnythingLLM é um aplicativo open source criado pela Mintplex Labs sob a licença MIT. Tem uma comunidade ativa no GitHub, lançamentos frequentes e é amplamente usado no ecossistema de IA autogerenciada.

O que ele faz: transforma seus documentos em contexto que um large language model (LLM) pode usar durante as conversas. Você faz upload de arquivos, o sistema processa e armazena, e então o LLM responde com base nos seus dados. O projeto cresceu rápido, com comunidade ativa no Discord e atualizações mensais que adicionam novos provedores e recursos.

Duas coisas importantes desde já. Primeiro: AnythingLLM não é um modelo. Ele é uma ponte para provedores externos de LLM, sejam locais (como o Ollama) ou na nuvem (como OpenAI ou Anthropic). 

Segundo: a plataforma organiza tudo em workspaces. Pense neles como salas separadas para projetos diferentes. Cada workspace tem seus próprios documentos e conversas, que ficam isolados a menos que você configure para compartilhar.

Interface do workspace do AnythingLLM com o painel de chat e a barra lateral de documentos.

Interface do workspace do AnythingLLM com documentos. Imagem do autor.

AnythingLLM no desktop vs. Docker

O app para desktop (macOS, Windows, Linux) é para um único usuário rodando tudo localmente. Vem com engine de LLM embutido, embedder baseado em CPU e LanceDB incluído. Instalação em um clique, sem configuração.

A versão Docker é feita para times e servidores. Ela adiciona controle de acesso com papéis de Admin, Manager e Default, além de widgets de chat incorporáveis em sites e white-label. Se você precisa de acesso em equipe ou widgets de chat públicos, Docker é a sua única opção.

Recurso

Desktop

Docker

Suporte multiusuário

Não

Sim (papeis Admin, Manager, Default)

Engine de LLM embutido

Sim

Não (conecta a provedores externos)

Widgets de chat incorporáveis

Não

Sim

White-label

Não

Sim

Complexidade de setup

Instalação em um clique

Requer conhecimento de Docker

Principais recursos do AnythingLLM

Agora que você já sabe o que é o AnythingLLM e como escolher entre Desktop e Docker, vamos ver os recursos que tornam a ferramenta útil para fluxos de IA baseados em documentos.

Ingestão de documentos

Funciona com PDF, DOCX, TXT, Markdown, CSV, XLSX, PPTX, HTML, mais de 50 tipos de arquivos de código e arquivos de áudio (usando transcrição Whisper). Você também pode puxar conteúdo direto de repositórios do GitHub, transcrições do YouTube, páginas do Confluence e sites usando o scraper embutido.

Banco de dados vetorial

O LanceDB já vem integrado e não requer configuração. Se precisar de recursos enterprise, dá para trocar para Chroma, Milvus, Pinecone, Qdrant, Weaviate, Zilliz, AstraDB ou PGVector.

Suporte a múltiplos LLMs

Suporta diversos provedores, incluindo Ollama, LM Studio, OpenAI, Anthropic, Azure OpenAI, Google Gemini, AWS Bedrock, Groq e DeepSeek. Você escolhe os modelos por workspace, então um workspace pode usar um modelo local do Ollama para dados sensíveis enquanto outro usa GPT-4o via OpenAI.

Agentes de IA

Digite @agent em qualquer chat para ativar o construtor de agentes no-code. Ele já traz habilidades para busca em documentos, sumarização e web scraping. O Agent Flows oferece um canvas visual para encadear chamadas de API, instruções para LLM e operações em arquivos. Também há suporte a Model Context Protocol (MCP) para conectar ferramentas externas.

Acesso via API

A API para desenvolvedores fica em /api/docs (documentação Swagger). Você pode gerenciar workspaces, incorporar documentos e enviar mensagens de chat programaticamente.

Como o AnythingLLM funciona (visão da arquitetura)

O app tem três partes: o frontend (React/ViteJS) oferece a interface com a qual você interage. O servidor (backend em Express) lida com as interações com LLM, o trabalho no banco vetorial e as requisições de API. Ele usa SQLite para armazenar a configuração. O collector é um serviço separado que faz o parsing e processa os documentos enviados. Quando você faz upload de um PDF, o collector extrai o texto, e então o servidor divide, faz o embedding e armazena.

O pipeline de RAG

O pipeline funciona em duas fases.

Ingestão: seus documentos vão para o collector, que extrai o texto. O servidor então divide esse texto em chunks (até 1.000 caracteres, com pequena sobreposição para manter contexto). Cada chunk é convertido em vetor pelo modelo de embedding e armazenado no banco vetorial. A pasta vector-cache/ reduz re-embeddings desnecessários em muitos casos.

Consulta: sua pergunta é convertida em vetor usando o mesmo modelo de embedding. Em seguida, o sistema busca os chunks mais semelhantes (geralmente de quatro a seis). Após filtrar por score de similaridade, o texto correspondente é adicionado ao prompt do LLM junto com sua pergunta e o histórico do chat. O LLM lê tudo isso (instruções do sistema, contexto recuperado, sua pergunta e mensagens anteriores) e gera a resposta.

Fluxograma do pipeline RAG do AnythingLLM do upload do documento até a resposta do LLM.

Visão geral da arquitetura do pipeline RAG do AnythingLLM. Imagem do autor.

Instalando o AnythingLLM com Docker

Como você verá no FAQ, AnythingLLM é leve: cerca de 2 GB de RAM, CPU de 2 núcleos e uns 5 GB de storage. Rodar um LLM local junto dele exige mais (um modelo 7B normalmente precisa de 8 GB+ de RAM/VRAM). Para este tutorial, uso um modelo 3B que funciona em hardware limitado. Certifique-se de ter o Docker instalado e rodando antes de começar. No Windows, também é preciso WSL.

Passo 1: instale o Ollama e baixe os modelos

Baixe o Ollama em ollama.com/download e depois puxe um modelo de chat e um de embedding:

ollama pull llama3.2:3b
ollama pull nomic-embed-text
ollama serve

Eu uso llama3.2:3b porque roda bem em máquinas com VRAM limitada (como uma RTX 3050 com 6 GB). Para melhor qualidade, tente llama3.2:8b ou deepseek-r1:7b se o seu hardware permitir. Confira nosso guia sobre rodar LLMs localmente para mais opções de modelos.

Passo 2: crie o arquivo Docker Compose

mkdir anythingllm-setup && cd anythingllm-setup
touch .env

Crie o docker-compose.yml:

services:
  anythingllm:
    image: mintplexlabs/anythingllm:latest
    container_name: anythingllm
    ports:
      - "3001:3001"
    cap_add:
      - SYS_ADMIN
    volumes:
      - anythingllm_storage:/app/server/storage
      - ./.env:/app/server/.env
    environment:
      - STORAGE_DIR=/app/server/storage
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped

volumes:
  anythingllm_storage:

Alguns pontos sobre essa configuração. A flag cap_add: SYS_ADMIN é necessária para o scraper web embutido em PuppeteerJS, que usa um Chromium em sandbox. 

A linha extra_hosts resolve o problema de rede mais comum no Docker: permite que o contêiner acesse o Ollama rodando na máquina host. Sem isso, qualquer tentativa de conectar a localhost:11434 de dentro do contêiner vai falhar, pois contêineres Docker têm seu próprio namespace de rede. 

Uso um volume nomeado do Docker (anythingllm_storage) em vez de bind mount para melhor compatibilidade entre plataformas, especialmente no Windows e macOS, onde permissões de bind mount podem dar dor de cabeça.

Passo 3: iniciar e configurar

Espere cerca de 30 segundos para o contêiner inicializar e abra http://localhost:3001. Você verá o assistente de primeira execução. Mas antes, rode este comando:

docker compose up -d

Assistente de configuração inicial do AnythingLLM após a instalação via Docker.

Assistente de setup inicial do AnythingLLM no Docker. Imagem do autor.

Durante o assistente, selecione Ollama como provedor de LLM e de embedding, defina a base URL como http://host.docker.internal:11434, escolha llama3.2:3b como modelo de chat e nomic-embed-text como embedder. Mantenha o LanceDB como banco vetorial padrão.

Configurando o Ollama como provedor de LLM. Vídeo do autor.

Para a alternativa Desktop, baixe o app em anythingllm.com. Ele já traz tudo pronto e funciona na hora, sem configuração. É ideal para uso pessoal, mas, como mencionado antes, não tem os recursos multiusuário e enterprise disponíveis no Docker.

Conectando provedores de LLM

Além do Ollama, você pode conectar provedores em nuvem pelas Configurações (como mencionado no FAQ 1, isso é útil se seu hardware for limitado).

OpenAI

Escolha OpenAI como provedor de LLM, insira sua chave de API de platform.openai.com e escolha um modelo (GPT-4o, GPT-4o-mini, etc.). Sua conta precisa ter billing configurado, senão não funciona (e a mensagem de erro não é clara).

Anthropic

Insira sua chave de console.anthropic.com. Todos os modelos Claude funcionam para chat, mas a Anthropic não possui modelos de embedding, então você ainda precisa de um embedder separado, como o nomic-embed-text do Ollama.

Configuração do Ollama

Se você configurou o Ollama durante a instalação como mostrado acima, já está pronto. Para outros cenários, use http://host.docker.internal:11434 no Windows/macOS ou http://172.17.0.1:11434 no Linux. Se o Ollama estiver inacessível, defina OLLAMA_HOST=0.0.0.0:11434 antes de iniciá-lo.

Usando o AnythingLLM para chat com documentos

Clique em "New Workspace" na barra lateral e dê um nome. Envie arquivos pelo botão de upload na barra lateral ou arraste e solte.

O AnythingLLM oferece dois modos de documento. Attach (arrastar para o chat) coloca o texto completo na conversa, mas apenas naquela thread específica. O modelo vê tudo, porém você fica limitado pela capacidade de tokens. Embedding (a abordagem padrão de RAG) divide o documento em chunks, converte em vetores e armazena no workspace. Depois de incorporados, os documentos funcionam em todos os seus chats naquele workspace. Na maioria dos casos, embedding é a melhor escolha. Clique em "Move to Workspace" para iniciar o processo de embedding.

Fazendo upload e incorporando documentos em um workspace. Vídeo do autor.

Ajustando a qualidade da busca

Digite sua pergunta e o sistema encontra automaticamente os chunks relevantes e os envia para o LLM. Se as respostas não estiverem boas, ajuste estas configurações:

Limite de similaridade

Como dito no FAQ 5, comece com "No Restriction" se estiver com problemas e depois aumente gradualmente para filtrar ruído.

Máximo de trechos no contexto

O padrão é de quatro a seis chunks. Suba para 10 ou 12 em modelos com janelas de contexto grandes, como Claude.

Preferência de busca

"Accuracy Optimized" no LanceDB ativa reranking, o que melhora os resultados mas pode aumentar a latência dependendo do modelo e do hardware.

Fixar documentos

Fixe documentos críticos para pular o chunking. O texto completo é adicionado a toda consulta (desde que caiba no limite de tokens).

Resposta de chat com documentos usando contexto RAG. Vídeo do autor.

AnythingLLM vs. Open WebUI

Ambas as ferramentas são ótimas, mas foram criadas para públicos diferentes.

Dimensão

AnythingLLM

Open WebUI

Público principal

Usuários de negócios, times pequenos

Desenvolvedores, usuários técnicos

App para desktop

Sim (macOS, Windows, Linux)

Não (apenas web)

Complexidade de setup

Desktop: um clique; Docker: direto

Requer Docker ou setup de servidor

Implementação de RAG

Nativa, com suporte a múltiplos DBs vetoriais e reranking

RAG extensivo, extensibilidade via plugins

Multiusuário

Somente no Docker; três papéis RBAC

Recursos de colaboração limitados

Ecossistema de plugins

Em crescimento; skills customizadas via Node.js

Mais maduro e amplo

Licença

MIT

BSD-3-Clause modificado com proteção de marca desde a v0.6.6

AnythingLLM costuma atender times que priorizam gestão de workspaces e widgets incorporáveis, enquanto o Open WebUI costuma atender usuários que querem um ecossistema de plugins maior e mais extensibilidade voltada a desenvolvedores. Alguns times usam ambos: Open WebUI para devs que querem controle fino e AnythingLLM para usuários de negócio que precisam de workspaces rápidos de documentos.

AnythingLLM vs. ChatGPT

Essa comparação é sobre prioridades, não sobre qual féramenta é "melhor".

Dimensão

AnythingLLM

ChatGPT

Privacidade dos dados

Total controle com modelos locais

Dados enviados para servidores da OpenAI

Custo

Grátis (self-hosted); nuvem a partir de US$ 50/mês

Plano grátis; Plus US$ 20/mês; Pro US$ 200/mês

Customização

Qualquer LLM, embedder, DB vetorial, agentes

Limitado aos modelos da OpenAI

Capacidade offline

Sim (com modelos locais)

Não

Esforço de setup

Requer instalação

Sem setup, via navegador

Chat com documentos

Controle total do RAG (limiares, chunking, reranking)

Upload de arquivos com limites de uso

ChatGPT prioriza uma experiência totalmente hospedada e alta qualidade padrão de modelo, enquanto o AnythingLLM prioriza privacidade, flexibilidade e controle das configurações de RAG. Você também pode conectar o GPT-4o ao AnythingLLM via API da OpenAI. Assim, você tem a qualidade do ChatGPT com os recursos de workspace e RAG do AnythingLLM.

Casos de uso do AnythingLLM

Onde o AnythingLLM funciona melhor:

Bases de conhecimento internas

Colaboradores podem tirar dúvidas sobre documentos da empresa sem vasculhar pastas. Envie políticas, procedimentos e documentação — e permita buscas em linguagem natural.

Fluxos de pesquisa

Acadêmicos podem pesquisar centenas de artigos instantaneamente. Incorpore sua biblioteca de pesquisa e encontre evidências relevantes sem depender de palavras-chave manuais.

Implantações privadas em empresas

Saúde, finanças e jurídico podem usar IA mantendo todos os dados em servidores próprios. Comum em setores regulados onde os dados precisam ficar on-premises.

Testes para desenvolvedores

Experimente diferentes LLMs (Ollama, OpenAI, Claude) nos mesmos documentos alternando os modelos por workspace. Sem mudanças na infraestrutura.

Widgets de chat para clientes

Incorpore um chat no seu site usando Docker. Configure allowlists de domínio e limites por sessão para uso público.

Transcrição de reuniões

O recurso Meeting Assistant funciona como ferramentas de anotações na nuvem, mas roda localmente. Requer cerca de 16 GB de RAM para operar com fluidez.

Limitações

Como já discutimos, Desktop e Docker têm recursos diferentes, o que pode confundir novos usuários. 

A qualidade do RAG exige ajuste fino (cobri as configurações principais) porque a busca por similaridade é baseada em matemática e não entende de fato o significado. 

O sistema de plugins é menor que o do Open WebUI, e criar skills de agentes personalizados requer conhecimento de Node.js. 

Por fim, não há fine-tuning nativo. A personalização acontece via prompts de sistema, temperatura e limites de tokens.

Segurança e privacidade no AnythingLLM

A execução local mantém todos os dados no seu dispositivo. (Trago mais detalhes no terceiro FAQ abaixo.) Ao usar provedores em nuvem, apenas os prompts e o contexto recuperado são enviados durante a inferência. Vetores e embeddings ficam no seu servidor. Seja criterioso ao escolher quais workspaces usam modelos na nuvem versus locais.

A versão Docker inclui Simple SSO via SIMPLE_SSO_ENABLED, que cria tokens de acesso temporários. Chaves de API dão acesso total sem permissões granulares, então trate-as como senhas de admin e troque-as regularmente. Se você expor o AnythingLLM na internet, coloque um Nginx como reverse proxy com SSL na frente (o app não lida com HTTPS sozinho). A telemetria pode ser desativada com DISABLE_TELEMETRY=true no seu arquivo .env.

Conclusão

AnythingLLM resolve um problema real no universo de IA autogerenciada. Ele oferece uma interface para conversar com seus documentos, conecta a praticamente qualquer provedor de LLM e mantém seus dados sob seu controle. Como discutido, escolha Desktop para uso pessoal ou Docker para implantações em equipe.

Como qualquer ferramenta, há trade-offs. A qualidade do RAG depende da configuração, e as diferenças entre Desktop/Docker podem confundir quem está começando. 

Como próximo passo, confira nossa trilha AI Fundamentals ou o tutorial sobre construir IA local com Docker e n8n.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Sou engenheiro de dados e criador de comunidades que trabalha com pipelines de dados, nuvem e ferramentas de IA, além de escrever tutoriais práticos e de alto impacto para o DataCamp e desenvolvedores iniciantes.

FAQs

Posso rodar isso no meu notebook antigo sem GPU?

Sim! O AnythingLLM em si é leve: cerca de 2 GB de RAM, CPU de 2 núcleos e uns 5 GB de armazenamento. A parte pesada é rodar o LLM localmente via Ollama. Se seu hardware é limitado, conecte a um provedor em nuvem como OpenAI ou Groq. Você mantém os mesmos recursos de workspace e RAG, mas a inferência ocorre na nuvem. Em outras palavras, o AnythingLLM gerencia o fluxo de trabalho, e você escolhe se o modelo roda localmente ou na nuvem.

O que acontece se eu trocar meu banco de dados vetorial depois?

Planeje isso com antecedência. Não há migração automática entre bancos vetoriais. Trocar de LanceDB para Pinecone significa reprocessar o embedding de todos os documentos. Seus arquivos originais ficam seguros, mas os vetores precisam ser regenerados. Nota prática: fique com o LanceDB, a menos que tenha uma necessidade enterprise específica. Ele costuma exigir pouca configuração e atende bem muitas implantações de times pequenos.

Meus dados ficam realmente privados se eu usar a OpenAI como LLM?

Ponto-chave: seus documentos e embeddings nunca saem do seu servidor. Mas quando você faz perguntas, os trechos de texto recuperados e seu prompt são enviados para a API da OpenAI para inferência. Para dados realmente sensíveis, use o Ollama. Aí tudo fica local. Para documentos de trabalho em geral, AnythingLLM com OpenAI ainda é mais privado do que enviar arquivos diretamente ao ChatGPT.

Meu time pode compartilhar uma única instalação do AnythingLLM?

Sim, mas somente com a versão Docker. Ela suporta multiusuário com três papéis: Admin, Manager e Default. O app Desktop é apenas para um usuário. Importante: o modo multiusuário é pensado como uma mudança de configuração em uma direção. Decida se precisa de acesso em equipe antes de habilitar.

Por que às vezes ele ignora meus documentos ao responder?

Geralmente por três motivos: limite de similaridade muito alto, perguntas vagas ou documentos em outro idioma com o embedder padrão em inglês. Correção rápida: tente "No Restriction" no limite primeiro. Se seus docs não estão em inglês, troque para um modelo de embedding multilíngue disponível no Ollama (por exemplo, algum da família e5) para resultados bem melhores.

Tópicos

Aprenda com a DataCamp

Curso

Entendendo a inteligência artificial

2 h
388.1K
Aprenda os conceitos básicos da Inteligência Artificial, como aprendizado de máquina, aprendizado profundo, PNL, IA generativa e outros.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow