Vai al contenuto principale

AnythingLLM: Guida completa a setup, funzionalità e casi d’uso

Scopri come installare AnythingLLM con Docker e Ollama, impostare pipeline RAG per chattare con documenti privati e scegliere tra AnythingLLM, ChatGPT e Open WebUI.
Aggiornato 16 apr 2026  · 11 min leggi

Una domanda comune nel mondo dell’AI self-hosted è come chattare con documenti privati senza inviarli a un’API cloud. 

AnythingLLM è una risposta diffusa. Gestisce tutto (upload dei documenti, embedding, ricerca e chat) in un’unica interfaccia e si collega a un’ampia gamma di provider LLM. Ti permette di creare workflow di AI privati senza dipendere da servizi cloud.

In questa guida ti spiego cos’è AnythingLLM, ne illustro l’architettura, ti mostro come installarlo con Docker e Ollama e ti mostro una pipeline Retrieval-Augmented Generation (RAG) funzionante. Lo confronterò anche con Open WebUI e ChatGPT.

Che cos’è AnythingLLM?

AnythingLLM è un’applicazione open-source sviluppata da Mintplex Labs sotto licenza MIT. Ha una community attiva su GitHub, rilasci frequenti ed è ampiamente utilizzata nello spazio AI self-hosted.

Cosa fa in pratica: trasforma i tuoi documenti in contesto che un large language model (LLM) può utilizzare durante le conversazioni. Carichi i file, il sistema li elabora e li memorizza, e poi l’LLM può rispondere alle domande basandosi sui tuoi dati. Il progetto è cresciuto rapidamente, con una community Discord attiva e aggiornamenti mensili che aggiungono nuovi provider LLM e funzionalità.

Due cose da capire subito. Primo: AnythingLLM non è di per sé un modello. È un ponte che ti collega a provider LLM esterni, sia locali (come Ollama) che cloud (come OpenAI o Anthropic). 

Secondo: la piattaforma organizza tutto in workspace. Pensali come stanze separate per progetti diversi. Ogni workspace ha i propri documenti e conversazioni che restano isolate, a meno che tu non configuri esplicitamente la condivisione.

Interfaccia del workspace di AnythingLLM che mostra il pannello di chat e la barra laterale dei documenti.

Interfaccia del workspace di AnythingLLM con documenti. Immagine dell’autore.

AnythingLLM su desktop vs. Docker

L’app desktop (macOS, Windows, Linux) è pensata per singoli utenti che eseguono tutto in locale. Include un motore LLM integrato, un embedder basato su CPU e LanceDB in bundle. Installazione in un clic, nessuna configurazione necessaria.

La versione Docker è pensata per team e server. Aggiunge un controllo degli accessi completo con ruoli Admin, Manager e Default, oltre a widget di chat incorporabili per siti web e white-labeling. Se ti serve accesso di team o widget di chat pubblici, Docker è l’unica opzione.

Funzionalità

Desktop

Docker

Supporto multi-utente

No

Sì (ruoli Admin, Manager, Default)

Motore LLM integrato

No (collegati a provider esterni)

Widget di chat incorporabili

No

White-labeling

No

Complessità di setup

Installazione in un clic

Richiede conoscenze di Docker

Funzionalità principali di AnythingLLM

Ora che sai cos’è AnythingLLM e come scegliere tra Desktop e Docker, vediamo le funzionalità che lo rendono utile per workflow di AI basati sui documenti.

Ingestione dei documenti

Funziona con PDF, DOCX, TXT, Markdown, CSV, XLSX, PPTX, HTML, oltre 50 tipi di file di codice e file audio (usando la trascrizione Whisper). Puoi anche importare contenuti direttamente da repository GitHub, transcript YouTube, pagine Confluence e siti web tramite lo scraper integrato.

Database vettoriale

LanceDB è integrato e non richiede setup. Se ti servono funzionalità enterprise, puoi passare a Chroma, Milvus, Pinecone, Qdrant, Weaviate, Zilliz, AstraDB o PGVector.

Supporto per più LLM

Supporta un’ampia gamma di provider, tra cui Ollama, LM Studio, OpenAI, Anthropic, Azure OpenAI, Google Gemini, AWS Bedrock, Groq e DeepSeek. Scegli i modelli per workspace, così un workspace può usare un modello locale di Ollama per dati sensibili mentre un altro usa GPT-4o tramite OpenAI.

Agent AI

Digita @agent in qualsiasi chat per attivare il builder di agent no-code. Include skill integrate per cercare nei documenti, riassumere e fare web scraping. Agent Flows ti offre una canvas visuale per concatenare chiamate API, istruzioni LLM e operazioni sui file. Supporta anche il Model Context Protocol (MCP) per collegare strumenti esterni.

Accesso API

La developer API è disponibile su /api/docs (documentazione Swagger). Puoi gestire i workspace in modo programmatico, incorporare documenti e inviare messaggi in chat.

Come funziona AnythingLLM (panoramica dell’architettura)

L’applicazione ha tre parti: il frontend (React/ViteJS) fornisce l’interfaccia con cui interagisci. Il server (backend Express) gestisce tutte le interazioni con gli LLM, il lavoro sul database vettoriale e le richieste API. Usa SQLite per memorizzare la configurazione. Il collector è un servizio separato che esegue il parsing e l’elaborazione dei documenti caricati. Quando carichi un PDF, il collector estrae il testo e poi il server lo segmenta, lo embedded e lo memorizza.

La pipeline RAG

La pipeline funziona in due fasi.

Ingestione: i tuoi documenti arrivano al collector, che estrae il testo. Il server poi divide questo testo in chunk (fino a 1.000 caratteri con una piccola sovrapposizione per mantenere il contesto). Ogni chunk viene convertito in un vettore dal modello di embedding e quindi salvato nel database vettoriale. Una cartella vector-cache/ riduce in molti casi re-embedding inutili.

Query: la tua domanda viene convertita in un vettore usando lo stesso modello di embedding. Il sistema cerca quindi i chunk più simili (di solito da quattro a sei). Dopo il filtraggio per punteggio di similarità, il testo corrispondente viene aggiunto al prompt dell’LLM insieme alla tua domanda e alla cronologia della chat. L’LLM legge tutto (istruzioni di sistema, contesto recuperato, tua domanda e messaggi precedenti) e genera la risposta.

Diagramma di flusso della pipeline RAG di AnythingLLM, dal caricamento dei documenti alla risposta dell’LLM.

Panoramica dell’architettura della pipeline RAG di AnythingLLM. Immagine dell’autore.

Installare AnythingLLM con Docker

Come vedrai nelle FAQ, AnythingLLM è leggero: circa 2 GB di RAM, una CPU a 2 core e circa 5 GB di storage. Eseguire un LLM locale insieme ad esso richiede di più (un modello 7B tipicamente necessita di 8 GB+ di RAM/VRAM). Per questo tutorial uso un modello 3B che funziona su hardware limitato. Assicurati che Docker sia installato e in esecuzione prima di iniziare. Gli utenti Windows necessitano anche di WSL.

Passaggio 1: Installa Ollama e scarica i modelli

Scarica Ollama da ollama.com/download, poi scarica un modello di chat e un modello di embedding:

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

Uso llama3.2:3b perché gira bene su macchine con VRAM limitata (come una RTX 3050 con 6 GB). Per una qualità migliore, prova llama3.2:8b o deepseek-r1:7b se l’hardware lo consente. Dai un’occhiata alla nostra guida su eseguire LLM in locale per ulteriori opzioni di modelli.

Passaggio 2: Crea il file Docker Compose

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

Crea 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:

Alcune note su questa configurazione. Il flag cap_add: SYS_ADMIN è richiesto per lo scraper web integrato basato su PuppeteerJS, che usa un browser Chromium in sandbox. 

La riga extra_hosts risolve il problema di networking Docker più comune: consente al container di raggiungere Ollama in esecuzione sulla tua macchina host. Senza questo, qualsiasi tentativo di connettersi a localhost:11434 dall’interno del container fallirà perché i container Docker hanno il proprio namespace di rete. 

Uso un volume Docker nominato (anythingllm_storage) invece di un bind mount per una migliore compatibilità cross-platform, soprattutto su Windows e macOS, dove i permessi dei bind mount possono creare problemi.

Passaggio 3: Avvio e configurazione

Attendi circa 30 secondi per l’inizializzazione del container, poi apri http://localhost:3001. Vedrai la procedura guidata di primo avvio. Ma prima, esegui questo comando:

docker compose up -d

Procedura guidata di primo avvio di AnythingLLM dopo l’installazione con Docker.

Procedura guidata iniziale di AnythingLLM su Docker. Immagine dell’autore.

Durante la procedura guidata, seleziona Ollama sia come LLM che come provider di embedding, imposta la base URL su http://host.docker.internal:11434, scegli llama3.2:3b come modello di chat e nomic-embed-text come embedder. Mantieni LanceDB come database vettoriale predefinito.

Configurazione di Ollama come provider LLM. Video dell’autore.

Per l’alternativa Desktop, scarica l’app da anythingllm.com. Include tutto il necessario e funziona subito senza configurazioni. È ideale per uso personale ma, come accennato prima, manca delle funzionalità multi-utente ed enterprise disponibili su Docker.

Collegare i provider LLM

Oltre a Ollama, puoi collegare provider cloud tramite Settings (come indicato nella FAQ 1, utile se il tuo hardware è limitato).

OpenAI

Scegli OpenAI come provider LLM, inserisci la tua API key da platform.openai.com e scegli un modello (GPT-4o, GPT-4o-mini, ecc.). Il tuo account deve avere la fatturazione attiva, altrimenti non funzionerà (e il messaggio di errore non sarà chiaro).

Anthropic

Inserisci la tua chiave da console.anthropic.com. Tutti i modelli Claude funzionano per la chat, ma Anthropic non ha modelli di embedding, quindi ti serve comunque un embedder separato come nomic-embed-text di Ollama.

Configurazione di Ollama

Se hai configurato Ollama durante l’installazione come mostrato sopra, sei già a posto. Per altri setup, usa http://host.docker.internal:11434 su Windows/macOS, o http://172.17.0.1:11434 su Linux. Se Ollama non è raggiungibile, imposta OLLAMA_HOST=0.0.0.0:11434 prima di avviarlo.

Usare AnythingLLM per chattare sui documenti

Clicca “New Workspace” nella barra laterale e assegnagli un nome. Carica i file usando il pulsante nella barra laterale o tramite drag-and-drop.

AnythingLLM supporta due modalità per i documenti. Attach (trascinare nella chat) inserisce il testo completo nella conversazione, ma solo per quel thread specifico. Il modello vede tutto, ma sei limitato dalla capacità di token. Embedding (l’approccio RAG standard) suddivide il documento in chunk, li converte in vettori e li salva nel workspace. Una volta eseguito l’embedding, i documenti funzionano in tutte le chat di quel workspace. Nella maggior parte dei casi, l’embedding è la scelta migliore. Clicca “Move to Workspace” per avviare il processo di embedding.

Caricamento ed embedding dei documenti in un workspace. Video dell’autore.

Ottimizzare la qualità del retrieval

Scrivi la tua domanda e il sistema trova automaticamente i chunk pertinenti e li invia all’LLM. Se le risposte non sono buone, ecco le impostazioni chiave da regolare:

Soglia di similarità

Come indicato nella FAQ 5, inizia con “No Restriction” se riscontri problemi, poi alzala gradualmente per filtrare il rumore.

Numero massimo di snippet di contesto

L’impostazione predefinita è da quattro a sei chunk. Aumenta a 10 o 12 per modelli con finestre di contesto ampie come Claude.

Preferenza di ricerca

“Accuracy Optimized” su LanceDB attiva il reranking, che migliora i risultati ma può aggiungere latenza a seconda del modello e dell’hardware.

Blocco dei documenti

Blocca i documenti critici per saltare del tutto il chunking. Il testo completo viene aggiunto a ogni query (se rientra nei limiti di token).

Risposta di chat sui documenti con contesto RAG. Video dell’autore.

AnythingLLM vs. Open WebUI

Entrambi gli strumenti sono validi, ma sono pensati per utent i diversi.

Dimensione

AnythingLLM

Open WebUI

Pubblico principale

Utenti business, piccoli team

Sviluppatori, utenti tecnici

App desktop

Sì (macOS, Windows, Linux)

No (solo web)

Complessità di setup

Desktop: un clic; Docker: lineare

Richiede Docker o setup server

Implementazione RAG

Integrata con supporto multi-vector DB, reranking

RAG esteso, estendibilità basata su plugin

Multi-utente

Solo Docker; tre ruoli RBAC

Funzionalità di collaborazione limitate

Ecosistema di plugin

In crescita; skill personalizzate via Node.js

Più maturo ed esteso

Licenza

MIT

BSD-3-Clause modificata con protezione del brand dalla v0.6.6

AnythingLLM tende a calzare per i team che danno priorità alla gestione dei workspace e ai widget incorporabili, mentre Open WebUI è più adatto a chi vuole un ecosistema di plugin più ampio e maggiore estendibilità orientata agli sviluppatori. Alcuni team usano entrambi: Open WebUI per i dev che vogliono controllo fine, e AnythingLLM per gli utenti business che hanno bisogno di workspace sui documenti rapidi.

AnythingLLM vs. ChatGPT

Questo confronto riguarda le priorità, non quale strumento sia "migliore".

Dimensione

AnythingLLM

ChatGPT

Privacy dei dati

Pieno controllo con modelli locali

Dati inviati ai server OpenAI

Costo

Gratis (self-hosted); cloud da $50/mese

Piano gratuito; Plus $20/mese; Pro $200/mese

Personalizzazione

Qualsiasi LLM, embedder, vector DB, agent

Limitato ai modelli OpenAI

Funzionamento offline

Sì (con modelli locali)

No

Sforzo di setup

Richiede installazione

Nessun setup, via browser

Chat sui documenti

Controllo RAG completo (soglie, chunking, reranking)

Upload di file con limiti d’uso

ChatGPT punta su un’esperienza completamente ospitata e su un’alta qualità del modello di default, mentre AnythingLLM privilegia privacy, flessibilità e controllo sulle impostazioni RAG. Puoi anche collegare GPT-4o ad AnythingLLM tramite l’API OpenAI. In questo modo ottieni la qualità dei modelli di ChatGPT con le funzionalità di workspace e RAG di AnythingLLM.

Casi d’uso di AnythingLLM

Ecco dove AnythingLLM dà il meglio:

Basi di conoscenza interne

I dipendenti possono fare domande sui documenti aziendali invece di cercare tra le cartelle. Carica policy, procedure e documentazione, poi lascia che le persone cerchino in linguaggio naturale.

Workflow di ricerca

Gli accademici possono cercare all’istante tra centinaia di articoli. Esegui l’embedding della tua libreria di ricerca e fai emergere risultati pertinenti senza ricerche manuali per keyword.

Deployment enterprise privati

Sanità, finanza e team legali possono usare l’AI mantenendo tutti i dati sui propri server. Comune nei settori regolamentati in cui i dati devono restare on-premise.

Test per sviluppatori

Prova diversi LLM (Ollama, OpenAI, Claude) sugli stessi documenti cambiando modello per workspace. Nessuna modifica all’infrastruttura richiesta.

Widget di chat per i clienti

Incorpora un’interfaccia di chat sul tuo sito con Docker. Configura allowlist di domini e limiti per sessione per l’uso pubblico.

Trascrizione delle riunioni

La funzione Meeting Assistant funziona come gli strumenti di note in cloud ma gira in locale. Per funzionare in modo fluido servono circa 16 GB di RAM.

Limitazioni

Come discusso, Desktop e Docker hanno funzionalità diverse, cosa che può confondere i nuovi utenti. 

La qualità del RAG richiede messa a punto (ho già coperto le impostazioni principali) perché la ricerca per similarità è basata sulla matematica e non comprende davvero il significato. 

Il sistema di plugin è più piccolo rispetto a quello di Open WebUI e creare skill personalizzate per gli agent richiede conoscenza di Node.js. 

Infine, non c’è un fine-tuning integrato. Puoi personalizzare solo tramite system prompt, temperatura e limiti di token.

Sicurezza e privacy in AnythingLLM

Un deployment locale mantiene tutti i dati sul tuo dispositivo. (Ho più dettagli nella terza FAQ qui sotto.) Quando usi provider cloud, solo i prompt e il contesto recuperato vengono inviati durante l’inferenza. Vettori ed embedding restano sul tuo server. Sii intenzionale nel decidere quali workspace usano modelli cloud e quali locali.

La versione Docker include Simple SSO tramite SIMPLE_SSO_ENABLED, che crea token di accesso temporanei. Le API key danno accesso completo senza permessi granulari, quindi trattale come password admin e cambiale regolarmente. Se esponi AnythingLLM a internet, metti davanti un reverse proxy Nginx con SSL (l’app non gestisce l’HTTPS da sola). Puoi disabilitare la telemetria con DISABLE_TELEMETRY=true nel file .env.

Conclusione

AnythingLLM risolve un problema reale nello spazio AI self-hosted. Ti offre un’interfaccia per chattare con i tuoi documenti, si connette a quasi qualsiasi provider LLM e mantiene il controllo dei dati nelle tue mani. Come detto, scegli Desktop per l’uso personale o Docker per i deployment di team.

Come ogni strumento, ha dei trade-off. La qualità del RAG dipende da come lo configuri e le differenze di funzionalità tra Desktop e Docker possono confondere i nuovi utenti. 

Come prossimo passo, dai un’occhiata al nostro percorso AI Fundamentals o al tutorial su creare AI locali con Docker e n8n.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Sono un data engineer e community builder: lavoro su pipeline dati, cloud e strumenti di AI, e scrivo tutorial pratici e ad alto impatto per DataCamp e per sviluppatori alle prime armi.

FAQ

Posso eseguirlo sul mio vecchio laptop senza GPU?

Sì! AnythingLLM in sé è leggero: circa 2 GB di RAM, una CPU a 2 core e circa 5 GB di storage. La parte pesante è eseguire l’LLM in locale tramite Ollama. Se il tuo hardware è limitato, collega invece un provider cloud come OpenAI o Groq. Ottieni le stesse funzionalità di workspace e RAG, ma l’inferenza avviene nel cloud. In altre parole, AnythingLLM gestisce il workflow e tu scegli se il modello gira in locale o nel cloud.

Cosa succede se in seguito cambio database vettoriale?

Pianifica in anticipo. Non c’è migrazione automatica tra database vettoriali. Passare da LanceDB a Pinecone significa rifare l’embedding di tutti i documenti. I tuoi file originali restano al sicuro, ma i vettori vanno rigenerati. Nota pratica: resta su LanceDB a meno che tu non abbia un’esigenza enterprise specifica. È in genere a bassa configurazione e adatto a molti deployment per piccoli team.

I miei dati sono davvero privati se uso OpenAI come LLM?

Il punto chiave è questo: i tuoi documenti e gli embedding non lasciano mai il tuo server. Ma quando fai domande, i chunk di testo recuperati e il tuo prompt vengono inviati all’API di OpenAI per l’inferenza. Per dati davvero sensibili, usa invece Ollama. Tutto resta in locale. Per documenti di lavoro generici, AnythingLLM con OpenAI è comunque più privato che caricare file direttamente su ChatGPT.

Il mio team può condividere un’unica installazione di AnythingLLM?

Sì, ma solo con la versione Docker. Supporta il multi-utente con tre ruoli: Admin, Manager e Default. L’app Desktop è solo per singolo utente. Importante: la modalità multi-utente è pensata come modifica di configurazione one-way. Decidi se ti serve l’accesso di team prima di abilitarla.

Perché a volte ignora i miei documenti quando risponde?

Di solito per tre motivi: soglia di similarità troppo alta, query vaghe o documenti non in inglese con l’embedder inglese predefinito. Soluzione rapida: prova prima “No Restriction” per la soglia. Se i tuoi documenti non sono in inglese, passa a un modello di embedding multilingue disponibile in Ollama (ad esempio uno dei modelli basati su e5) per risultati molto migliori.

Argomenti

Impara con DataCamp

Corso

Comprendere l'intelligenza artificiale

2 h
391K
Impara i concetti di base dell'Intelligenza Artificiale, come l'apprendimento automatico, l'apprendimento profondo, l'NLP, l'IA generativa e altro ancora.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra altroMostra altro