Principais conclusões
- Stack: o Ollama executa o LLM, o AnythingLLM gerencia a interface + o repositório vetorial, o Llama 3.3 8B Q4_K_M responde e o nomic-embed-text-v1.5 recupera.
- Tempo: 30 minutos no total. A etapa mais longa é o download do modelo (~8 min a 50 Mbps).
- Hardware: 16 GB de RAM é o mínimo prático. Com 8 GB só funciona o Phi-4 Mini e conjuntos de documentos pequenos; consulte a seção de modelos alternativos.
- Privacidade: Uma vez instalado, nada sai do seu computador. PDFs, embeddings, prompts e respostas permanecem locais.
- Sem código: Zero Python, zero terminal além dos dois comandos do Ollama. O AnythingLLM é um aplicativo de desktop com importação de documentos por arrastar e soltar.
- O embedder padrão não é o adequado: o AnythingLLM inclui um embedder integrado muito pequeno. Troque-o por nomic-embed-text-v1.5 no Passo 4; a qualidade da recuperação melhora de forma notável.
- O tamanho de chunk padrão também não serve para PDFs: chunks de 1000 tokens com sobreposição de 200 tokens é um melhor ponto de partida que o padrão 512/0. Ajusta-se no Passo 7.
O que você vai construir
Um sistema RAG de desktop autocontido: uma janela de chat onde você arrasta PDFs e faz perguntas sobre eles. Quatro peças de código aberto, todas gratuitas e todas rodando no seu notebook:
📍 Em uma frase
Um sistema RAG local são quatro peças — um runtime (Ollama), um modelo de resposta (Llama 3.3 8B), uma interface mais repositório vetorial (AnythingLLM) e um modelo de embedding (nomic-embed-text-v1.5) — conectadas em um mesmo computador sem chamadas à nuvem.
💬 Em termos simples
Arraste um PDF, faça uma pergunta, obtenha uma resposta fundamentada com citações, totalmente offline. As quatro peças dividem o trabalho: o Ollama executa os modelos, o Llama 3.3 8B redige a resposta, o AnythingLLM gerencia os chunks e vetores, e o nomic-embed-text-v1.5 converte o texto nos vetores que tornam a recuperação possível. Instalação total: ~30 minutos; custo total: US$ 0.
- Ollama — runtime local de LLM. Gerencia os arquivos do modelo e expõe uma API compatível com OpenAI em localhost:11434. Fornece o modelo de resposta.
- Llama 3.3 8B Instruct (Q4_K_M) — modelo de chat de 8B parâmetros da Meta, quantizado para caber em ~5 GB de RAM. Boa qualidade de resposta em perguntas baseadas em documentos em 2026.
- AnythingLLM Desktop — interface + repositório vetorial + orquestração RAG. Inclui o LanceDB embutido, analisa PDFs/DOCX/TXT/MD nativamente e se comunica com o Ollama como provedor de LLM.
- nomic-embed-text-v1.5 — modelo de embedding. Vetores de 768 dimensões, roda através do Ollama a ~600 chunks/s em uma CPU moderna. Substitui o embedder padrão do AnythingLLM, que é insuficiente.
📌Note: O AnythingLLM também tem um LLM padrão integrado e um embedder padrão integrado. Ambos são deliberadamente pequenos para que o aplicativo inicie rápido em hardware de baixo desempenho. Nós os substituímos nos passos 4 e 6 porque a qualidade da recuperação é tudo em um sistema RAG.
O que você precisa antes de começar
Um notebook com 16 GB de RAM, 20 GB de disco livre, conexão à internet e 30 minutos. O sistema operacional pode ser macOS 12+, Windows 10/11 ou qualquer desktop Linux moderno.
- RAM: 16 GB é o mínimo prático para Llama 3.3 8B Q4 + AnythingLLM + seus aplicativos de desktop habituais. Com 8 GB funciona o Phi-4 Mini Q4 no lugar; consulte as alternativas do Passo 2.
- Disco: 20 GB livres. O Llama 3.3 8B Q4_K_M ocupa ~5 GB, o modelo de embedding ~280 MB, o AnythingLLM ~600 MB, e você precisa de espaço para os embeddings (~10–30 MB a cada 100 páginas de PDF).
- Rede: ~50 Mbps no mínimo para o download do modelo. Com 25 Mbps a mesma etapa leva ~16 minutos; o resto do tutorial não é afetado.
- Permissões: o AnythingLLM não precisa de admin/root. O Ollama é instalado em
/usr/local/binno macOS/Linux (pede senha uma vez) ou%LOCALAPPDATA%no Windows (sem admin). - Documentos prontos: 5–20 PDFs para começar. Quantidades maiores também funcionam, mas um conjunto pequeno permite testar a qualidade da recuperação mais rápido.
Passo 1: Instalar o Ollama (3 min)
**Baixe o instalador do Ollama para o seu sistema operacional em ollama.com/download e execute-o. O instalador adiciona a CLI ollama ao PATH e inicia um serviço em segundo plano.** Não há opções de configuração para escolher.
- macOS: baixe o
.dmg, arraste o Ollama para Aplicativos, abra-o uma vez para instalar o auxiliar de CLI. O ícone de lhama aparece na barra de menus quando o serviço está em execução. - Windows: baixe o
.exe, execute-o e aceite os valores padrão. O Ollama roda como serviço em segundo plano após a instalação; nenhum lançamento adicional é necessário. - Linux: instalação em uma linha:
curl -fsSL https://ollama.com/install.sh | sh. O script registra uma unidade systemd; inicie-a comsudo systemctl start ollama. - Verificar: abra um terminal e execute
ollama --version. Você deve ver uma string de versão. Se o comando não for encontrado, reinicie o terminal para que ele carregue o PATH atualizado.
ollama --version
# ollama version is 0.5.x (any 0.5+ build works for this tutorial)⚠️Warning: Se ollama --version funciona mas as etapas posteriores falham com "conexão recusada em localhost:11434", o serviço em segundo plano não iniciou automaticamente. macOS: abra o aplicativo a partir de Aplicativos. Linux: sudo systemctl start ollama. Windows: abra o ícone do Ollama na bandeja do sistema.
Passo 2: Baixar o Llama 3.3 8B (8 min)
**Execute ollama pull llama3.3:8b-instruct-q4_K_M em um terminal. Isso baixa o GGUF quantizado de 4,9 GB e o registra no Ollama.** A maior parte dos 30 minutos totais corresponde a esta única etapa em uma conexão doméstica típica.
- Tamanho do download: ~4,9 GB (quantização Q4_K_M). A 50 Mbps você esperará cerca de 8 minutos; a 100 Mbps cerca de 4 minutos; a 25 Mbps cerca de 16 minutos.
- Ver o progresso: o Ollama imprime uma porcentagem e a velocidade. O download é retomado se for interrompido; execute o mesmo comando novamente.
- Teste rápido do modelo: após concluir o download, execute
ollama run llama3.3:8b-instruct-q4_K_Me pergunte "Quanto é 2+2?". Confirme que você obtém uma resposta razoável. Digite/byepara sair. - Alternativa com menos RAM: se você tem 8 GB de RAM em vez de 16 GB, execute
ollama pull phi3:mini(Phi-4 Mini, ~2,4 GB em disco). Use esse nome de modelo no Passo 3. A qualidade é menor em documentos longos, mas o sistema funciona.
# Recomendado para 16 GB de RAM
ollama pull llama3.3:8b-instruct-q4_K_M
# Alternativa para 8 GB de RAM
ollama pull phi3:mini
# Teste rápido (digite /bye para sair)
ollama run llama3.3:8b-instruct-q4_K_M💡Tip: Já tem outros modelos do Ollama? ollama list mostra todos. Você pode manter vários modelos instalados e alternar entre eles na configuração do workspace do AnythingLLM.
Passo 3: Instalar o AnythingLLM Desktop (4 min)
Baixe o AnythingLLM Desktop em useanything.com (ou anythingllm.com) e execute o instalador. Abra o aplicativo e pule o aviso de "criar conta na nuvem"; o modo somente local é oferecido na tela seguinte. A instalação é autônoma.
- macOS: baixe o
.dmg, arraste o AnythingLLM para Aplicativos e abra-o. O macOS pode pedir que você confirme que o aplicativo é de um desenvolvedor reconhecido; clique em "Abrir" em Configurações do sistema → Privacidade se solicitado. - Windows: baixe o instalador
.exe. O Windows SmartScreen pode indicar que não é um download habitual; clique em "Mais informações" → "Executar assim mesmo". O aplicativo é instalado em%LOCALAPPDATA%\anythingllm-desktop(sem admin). - Linux: baixe o
.AppImage, marque-o como executável (chmod +x AnythingLLMDesktop.AppImage) e dê um duplo clique para executá-lo. - Escolha na primeira execução: o AnythingLLM oferece um workspace na nuvem hospedado OU uma configuração somente local. Escolha Configuração local. Esta é a opção que mantém todo o sistema offline.
- Criação do workspace: quando solicitado, dê ao primeiro workspace um nome descritivo ("artigos-pesquisa", "contratos", "notas-pessoais"). Cada workspace tem sua própria coleção de documentos e repositório de embeddings.
⚠️Warning: O LLM padrão do AnythingLLM é um modelo integrado muito pequeno destinado apenas à demonstração de boas-vindas. Na próxima etapa vamos apontá-lo para o seu Ollama local. Não use o padrão para consultas reais; as respostas serão fracas demais para serem úteis.
Passo 4: Conectar o AnythingLLM ao Ollama e trocar o embedder (3 min)
**Abra Configurações do AnythingLLM → Preferência de LLM. Escolha "Ollama" como provedor, defina a URL como http://127.0.0.1:11434 e selecione llama3.3:8b-instruct-q4_K_M no menu suspenso de modelos. Salve. Depois vá em Preferência de embedding e troque do padrão para nomic-embed-text através do Ollama.**
- Painel de Preferência de LLM: Provedor = Ollama, Endpoint =
http://127.0.0.1:11434, Modelo =llama3.3:8b-instruct-q4_K_M. Clique em "Salvar alterações". Uma marca de verificação verde confirma a conexão. - Painel de Preferência de embedding: o padrão é "AnythingLLM Native Embedder", um embedder integrado muito pequeno. Troque o Provedor para Ollama, depois execute
ollama pull nomic-embed-textno seu terminal primeiro (~280 MB), atualize a lista de modelos no painel e selecionenomic-embed-text:latest. Salve. - Aviso de re-embedding: se você já adicionou documentos com o embedder anterior, o AnythingLLM pedirá que você os reprocesse. Em uma instalação nova não há documentos, então o aviso não aparece.
- Banco de dados vetorial: deixe no valor padrão (LanceDB). É local, baseado em arquivos e não precisa de configuração. Troque-o apenas se você precisar especificamente de PGVector ou Qdrant.
# Execute isto no seu terminal antes de abrir o painel de Preferência de embedding
ollama pull nomic-embed-text💡Tip: Por que nomic-embed-text-v1.5 especificamente? Em maio de 2026 ele está no top 5 do ranking MTEB Retrieval para qualquer modelo de menos de 500 MB, roda a 400–800 chunks/s em uma CPU moderna e a mais de 2000 chunks/s em Apple Silicon, e tem licença Apache 2.0. É o primeiro upgrade padrão para quase todos os stacks RAG locais; consulte a comparação de modelos de embedding para conhecer as alternativas.
Passo 5: Enviar os primeiros PDFs (5 min)
Abra seu workspace, clique em "Enviar documentos" e arraste de 5 a 20 PDFs. O AnythingLLM extrai o texto, divide-o em chunks (padrão 512 tokens, 0 de sobreposição), processa cada chunk com o Ollama e armazena os vetores no LanceDB. Uma barra de progresso mostra as páginas analisadas e os chunks processados.
- Formatos compatíveis: PDF (baseado em texto), DOCX, TXT, MD, EPUB, além de scraping de URLs. PDFs de imagem digitalizada precisam de OCR primeiro; consulte a seção de solução de problemas.
- Velocidade: 400–800 chunks/s em uma CPU moderna e mais de 2000 chunks/s em Apple Silicon depois que o Ollama está aquecido. Um conjunto de 20 PDFs com ~50 páginas cada (~3000 chunks no total) termina o embedding em 5–8 segundos em uma CPU moderna e em 1–2 segundos em Apple Silicon, mais o tempo de análise. Calcule ~5 minutos no total para enviar, analisar e processar 20 PDFs.
- RAM durante o embedding: o Ollama carrega o modelo de embedding (~280 MB) na primeira solicitação e o mantém em cache. Os embeddings posteriores reutilizam o cache.
- "Mover para o workspace": após o envio, o AnythingLLM coloca os documentos em um pool "em espera". Você deve clicar explicitamente em "Mover para o workspace" → "Salvar e processar" para que eles fiquem consultáveis. Esse fluxo de duas etapas é intencional: permite pré-visualizar antes de assumir o custo do embedding.
⚠️Warning: PDFs de digitalizações OCR antigas frequentemente contêm texto corrompido ou camadas de texto vazias; o arquivo parece correto ao olho humano, mas o AnythingLLM extrai "[image]" ou strings vazias. Abra o PDF em um editor de texto (ou execute pdftotext file.pdf - do poppler-utils) para confirmar que a camada de texto existe antes de enviá-lo.
Passo 6: Testar consultas (5 min)
Digite uma pergunta no chat do workspace. O AnythingLLM vetoriza a pergunta, recupera os N principais chunks do LanceDB, constrói um prompt com esses chunks como contexto, envia-o ao Ollama e exibe a resposta. A latência em um notebook com 16 GB de RAM é de cerca de 3–10 segundos por consulta.
- Comece com uma consulta de recuperação de fatos: "O que significa [termo específico de um dos seus PDFs]?" Isso testa a ancoragem da recuperação. A resposta deve citar o PDF e reproduzir o fraseado exato.
- Depois uma consulta de síntese: "Resuma o argumento principal de [autor/título do documento]." Isso testa o quão bem o modelo integra vários chunks.
- Depois uma consulta de comparação (somente se seus PDFs contiverem conteúdo comparável): "Compare como [doc A] e [doc B] tratam [tema]." Isso testa a recuperação entre documentos.
- Inspecione as citações: o AnythingLLM mostra os chunks de origem abaixo de cada resposta. Clique neles para verificar se o modelo se baseia nos trechos corretos. Se as citações forem irrelevantes, a recuperação está quebrada; consulte o Passo 7.
Passo 7: Ajustar o tamanho dos chunks (2 min)
Abra Configurações do workspace → Banco de dados vetorial. Mude o tamanho de chunk de 512 para 1000 e a sobreposição de chunk de 0 para 200. Clique em Salvar e depois reprocesse seus documentos (a interface vai pedir). Este é o principal parâmetro para melhorar a qualidade da recuperação no AnythingLLM.
- Por que 1000/200 em vez de 512/0: os parágrafos e seções dos PDFs raramente cabem de forma limpa em 512 tokens. A sobreposição de 200 tokens significa que uma frase que cruza um limite de chunk aparece inteira em pelo menos um chunk vizinho, então a recuperação a capta.
- Custo do re-embedding: o conjunto de 20 PDFs / 3000 chunks é reprocessado em ~5 segundos. Conjuntos maiores levam proporcionalmente mais. O repositório de chunks é sobrescrito, não acrescentado ao existente.
- Recuperação Top-K: o Top-K padrão é 4 (os 4 chunks de melhor correspondência se tornam contexto). Aumente para 6–8 se suas respostas parecerem pouco fundamentadas; reduza para 2–3 se o modelo se distrair com chunks ruidosos.
- Template de prompt: o AnythingLLM expõe o system prompt em Workspace → Configurações de chat → Prompt. O padrão serve; ajuste-o apenas se você tiver uma falha concreta a resolver.
💡Tip: O ajuste empírico supera a teoria: faça as mesmas 5 consultas de teste antes e depois da mudança de tamanho de chunk e compare. Se a recuperação a 1000/200 for pior, você provavelmente tem documentos muito curtos (memorandos de uma página, docstrings de código): tente 256/64 no lugar.
Como as respostas devem realmente ser?
Um sistema RAG local corretamente ajustado responde as consultas de recuperação de fatos com citações textuais da fonte, sintetiza quando solicitado e cita os chunks que utilizou. Três consultas de exemplo em um workspace de artigos de pesquisa, com o que um sistema saudável retorna:
📍 Em uma frase
Uma resposta RAG local saudável cita o chunk de origem de forma literal para a recuperação de fatos, sintetiza entre chunks para perguntas de resumo e cita os IDs de chunk específicos que utilizou; respostas genéricas sem citações sinalizam um problema de recuperação, não um problema do modelo.
💬 Em termos simples
Se a resposta diz "os pesquisadores costumam usar 100–500 participantes" em vez de "Smith et al. usaram 287 participantes (Métodos, p. 4)", a recuperação está quebrada e o modelo está improvisando com seus dados de treinamento. Conserte a recuperação primeiro (tamanho de chunk, embedder, limiar de similaridade) antes de trocar o modelo de resposta.
| Tipo de consulta | Exemplo | Padrão de resposta saudável | Padrão de falha |
|---|---|---|---|
| Recuperação de fatos | Qual tamanho de amostra Smith et al. 2024 utilizaram? | Citação direta da seção de métodos + referência ao chunk | Resposta genérica ("os pesquisadores costumam usar 100–500 participantes") sem citação |
| Síntese | Resuma a contribuição principal deste artigo. | 3–5 frases extraídas dos chunks do resumo e da conclusão | Repete o título ou cita uma única frase do resumo |
| Entre documentos | Em que Smith e Jones diferem sobre a sobreposição de chunks? | Citações de ambos os artigos com atribuição explícita | Cita apenas um artigo ou inventa uma divergência que não está nos chunks |
💡Tip: Use estes três padrões de consulta como seu conjunto de teste após cada mudança na configuração de recuperação. Se a recuperação de fatos falha mas a síntese funciona, seus chunks são grandes demais. Se a síntese falha mas a recuperação de fatos funciona, seu top-k é baixo demais. O padrão do que falha diz qual parâmetro ajustar.
Quando algo falha: seis modos de falha comuns e soluções
A maioria das falhas se encaixa em uma destas seis categorias. Identifique o sintoma na linha correspondente e aplique a solução.
| Sintoma | Causa provável | Solução |
|---|---|---|
| O AnythingLLM mostra "Não é possível conectar ao Ollama" | O serviço do Ollama não está em execução ou o endpoint está incorreto | Execute ollama serve (ou reinicie o aplicativo/serviço). Confirme que o endpoint é http://127.0.0.1:11434, não localhost:11434 (no Windows o alias às vezes falha). |
| O download do modelo para em 0% ou em 99% | Problema com o edge da CDN ou disco cheio | Cancele com Ctrl+C, execute df -h para confirmar o espaço em disco e execute o mesmo ollama pull novamente; o Ollama retoma a partir do último byte. |
| A etapa de embedding parece travada | O Ollama está carregando o modelo de embedding pela primeira vez | Aguarde 30–60 segundos. O carregamento do modelo pela primeira vez leva entre 10 e 40 segundos conforme a velocidade do disco. Os embeddings seguintes são rápidos. |
| A recuperação retorna chunks não relacionados à consulta | Chunking 512/0 padrão + embedder padrão fraco | Confirme que o Passo 4 (nomic-embed-text) e o Passo 7 (chunking 1000/200) foram ambos aplicados. Reprocesse o workspace. |
| As respostas são curtas, genéricas ou se recusam a trabalhar com a fonte | O LLM selecionado ainda é o minúsculo padrão ou o contexto é pequeno demais | Confirme que a Preferência de LLM mostra llama3.3:8b-instruct-q4_K_M. Aumente o top-K de 4 para 6. |
| PDFs de imagem digitalizada são enviados mas produzem chunks vazios | O PDF não tem camada de texto; é uma imagem raster pura | Aplique OCR ao PDF primeiro. macOS: ocrmypdf input.pdf output.pdf. Linux/Windows: instale Tesseract + ocrmypdf. Depois reenvie o arquivo processado com OCR. |
Contexto regional: privacidade de dados no Brasil e em Portugal
Um sistema RAG local como este responde diretamente aos principais requisitos de privacidade e segurança do Brasil e de Portugal. Ao contrário das soluções RAG na nuvem que enviam dados a provedores externos, tudo permanece no seu computador.
- LGPD e RGPD: No Brasil, a Lei Geral de Proteção de Dados (LGPD, Art. 39) exige cuidado ao contratar operadores de dados. Um sistema RAG local que nunca envia dados para fora da sua infraestrutura satisfaz esse requisito diretamente. Em Portugal e no restante da UE, o Regulamento Geral sobre a Proteção de Dados (RGPD, Art. 28) segue o mesmo princípio: dados pessoais não devem ser transferidos a servidores externos sem garantias adequadas.
- Setores regulados no Brasil e em Portugal: Organizações de finanças, saúde, direito e setor público no Brasil, em Portugal e nos demais países lusófonos se beneficiam do RAG local: zero dependência de API na nuvem, zero fluxo de dados transfronteiriço, conformidade imediata com as normas locais.
- Cenário típico para empresas lusófonas: Arquive cinco anos de contratos de clientes, indexe-os com o AnythingLLM e faça buscas de due diligence e consultas de dados de clientes totalmente localmente. Custo de operação: praticamente zero. Instalação produtiva: 30 minutos no seu notebook ou servidor local.
Perguntas frequentes
O que faço se o Ollama não instalar?
No macOS, a falha mais comum é o Gatekeeper bloquear um auxiliar sem assinatura; abra Configurações do sistema → Privacidade e segurança e clique em "Abrir mesmo assim". No Windows, o Defender SmartScreen pode colocar o instalador em quarentena; clique com o botão direito → Propriedades → Desbloquear. No Linux, o script de instalação precisa de sudo para escrever a unidade systemd; se o sudo não estiver disponível, baixe o binário estático em github.com/ollama/ollama/releases e coloque-o manualmente no seu PATH.
Por que a etapa de embedding é lenta?
O primeiro embedding de uma sessão é lento porque o Ollama carrega o modelo de embedding de forma preguiçosa na RAM (entre 10 e 40 segundos conforme a velocidade do disco). Depois, o embedding roda a 400–800 chunks/s em uma CPU moderna e a mais de 2000 chunks/s em Apple Silicon. Se o desempenho sustentado for inferior a 100 chunks/s, o modelo provavelmente está usando memória virtual do disco; feche outros aplicativos para liberar RAM e tente novamente.
Quantos PDFs posso enviar de uma vez?
O AnythingLLM aceita centenas de arquivos em um único arrastar e soltar. O limite prático é a RAM durante a etapa de análise: ~1 GB no pico para 100 PDFs de tamanho médio (50 páginas cada). Uma vez processados, o repositório vetorial em disco é pequeno (~10–30 MB a cada 100 páginas de PDF). Para 1000+ PDFs, consulte o guia dedicado sobre conversar com 1000 PDFs localmente.
Posso usar isto com PDFs protegidos por senha?
O AnythingLLM não pode descriptografar diretamente PDFs protegidos por senha. Descriptografe-os primeiro com qpdf --password=SUASENHA --decrypt input.pdf output.pdf (o qpdf é gratuito, disponível nos três sistemas operacionais) e depois envie o arquivo desprotegido. Exclua a cópia desprotegida após o embedding se o seu modelo de ameaças exigir; os próprios embeddings não são legíveis por humanos.
O que faço se a recuperação retornar chunks incorretos?
Três parâmetros por ordem de impacto: troque do embedder padrão para nomic-embed-text (Passo 4), mude o chunking de 512/0 para 1000/200 e reprocesse (Passo 7), e aumente o top-K de 4 para 6 nas Configurações do workspace. Se a recuperação continuar falhando após os três, seus documentos podem precisar de pré-processamento: remova cabeçalhos e rodapés, normalize os espaços em branco ou divida os PDFs muito longos em arquivos por capítulo.
Devo usar um modelo diferente do Llama 3.3 8B?
O Llama 3.3 8B Q4_K_M é a melhor relação qualidade-RAM em 2026 para sistemas com 16 GB. Com 8 GB de RAM use o Phi-4 Mini Q4_K_M (~2,4 GB). Com 24 GB ou mais, experimente o Qwen 3 14B Q4 para uma síntese notavelmente melhor em documentos longos. Para cargas de trabalho multilíngues, o Mistral Nemo 12B lida melhor com conteúdo que não está em inglês do que o Llama 3.3.
Como atualizo o modelo mais tarde?
Execute novamente ollama pull llama3.3:8b-instruct-q4_K_M para obter a última versão e reinicie o AnythingLLM para que ele detecte novamente a versão do modelo. Para trocar por um modelo completamente diferente, execute ollama pull <novo-modelo> e depois mude o menu suspenso de Preferência de LLM nas Configurações do AnythingLLM. Não é necessário reprocessar os embeddings, pois eles dependem apenas do embedder, não do modelo de resposta.
Posso movê-lo para outro computador?
Sim. Os modelos do Ollama ficam em ~/.ollama/models (macOS/Linux) ou %USERPROFILE%\.ollama\models (Windows); copie a pasta. Os workspaces do AnythingLLM ficam em ~/.anythingllm/storage; copie-a também. No novo computador, instale o Ollama e o AnythingLLM Desktop e coloque as pastas copiadas no lugar. Os workspaces e embeddings são restaurados de forma idêntica.
Funciona se meus PDFs forem imagens digitalizadas?
Não diretamente: o AnythingLLM extrai texto, mas não pode fazer OCR de imagens. Pré-processe os PDFs digitalizados com ocrmypdf input.pdf output.pdf (multiplataforma, licença MIT, usa o Tesseract). Em Apple Silicon, ocrmypdf -l eng+por+spa suporta mais de 70 idiomas. Após o OCR, o PDF de saída tem tanto as imagens originais quanto uma camada de texto pesquisável, e o AnythingLLM extrai o texto corretamente.
Como faço backup do meu banco de dados de documentos?
O AnythingLLM armazena tudo em ~/.anythingllm/storage (macOS/Linux) ou %LOCALAPPDATA%\anythingllm-desktop\storage (Windows). Comprima essa pasta com tar/zip e copie-a para um dispositivo de backup. A pasta inclui documentos originais, chunks analisados, índices vetoriais e histórico de chat. A restauração consiste em copiar de volta e reiniciar; nenhum fluxo de importação especial é necessário.