Intermedio 13 minNo-code

Dify self-hosted: creare app IA basate sul tuo LLM locale

Dify è una piattaforma open source che permette di creare applicazioni IA — chatbot, workflow, agenti, assistenti RAG — senza scrivere una riga di codice, tramite un'interfaccia visiva. Ospitata sulla tua infrastruttura e collegata a Ollama, ti offre un livello « no-code » completo sopra i tuoi modelli locali: i tuoi prompt, i tuoi documenti e i tuoi dati non lasciano mai la tua macchina. Questa guida tratta il deployment con Docker Compose, la connessione a un LLM locale e la creazione di un primo assistente RAG funzionante.

Di Marie L.·Agg. 2026-08-27·Testato su Windows, macOS e Linux

#Perché Dify piuttosto che un'interfaccia di chat

Open WebUI o LM Studio bastano per parlare con un modello. Dify punta a un livello superiore: costruire applicazioni riutilizzabili. Definisci un prompt di sistema, vi colleghi una base di conoscenze, esponi il tutto tramite un'API o un widget di chat integrabile e gestisci le versioni delle tue iterazioni. È l'equivalente locale e open source di OpenAI Assistants o Coze.

Il vantaggio della combinazione Dify + Ollama è duplice. Innanzitutto la riservatezza: a differenza di Dify collegato a GPT-4 o Claude, qui i documenti indicizzati e le conversazioni restano sulla tua infrastruttura. Poi il costo: nessun token fatturato, puoi iterare su centinaia di prompt senza tenere d'occhio la fattura dell'API.

Chatbot
Un assistente conversazionale con prompt di sistema, variabili di ingresso e memoria della conversazione.
Agente
Un assistente in grado di chiamare strumenti (ricerca web, calcolo, API) in un ciclo fino a risolvere il compito.
Workflow
Una sequenza visiva di nodi (LLM, condizione, estrazione, HTTP) per elaborazioni deterministiche.
Knowledge / RAG
L'indicizzazione dei tuoi documenti affinché le app rispondano basandosi su di essi, con citazioni delle fonti.
i
senza codice, non zero-config
Dify ti evita di scrivere codice applicativo, ma resta uno strumento tecnico: gestisci prompt, variabili e parametri di suddivisione dei documenti. Metti in conto un'ora buona per prendere dimestichezza con lo strumento, oltre alla semplice installazione.

#Prerequisiti

Il kit Copilota Locale

Questa guida ti porta al modello. Il kit ti porta al copilota che scrive codice nel tuo editor.

  • Spazio online a vita
  • PDF + file
  • Aggiornamenti a vita

Dify è un'applicazione composta da più container (API, worker, frontend, database PostgreSQL, Redis, database vettoriale). Si installa tramite Docker Compose. Per quanto riguarda il modello, si presuppone che Ollama sia già in esecuzione e in ascolto sulla porta predefinita.

Docker + Docker Compose
Docker Engine recente con il plugin Compose (comando docker compose). Su Windows/macOS, basta Docker Desktop.
Ollama funzionante
Il daemon Ollama installato e raggiungibile su http://localhost:11434. Verifica con ollama list prima di iniziare.
Un modello di chat
Ad esempio qwen3.5:9b (256k di contesto, multimodale, Apache 2.0), la scelta di riferimento per 8 GB nel 2026. In Q4, rientra in circa 6,6 GB di VRAM (una RTX 3060 da 12 GB è ampiamente sufficiente).
Un modello di embeddings
Indispensabile per il RAG: nomic-embed-text è la scelta predefinita, leggero ed efficace.
Risorse
Prevedi circa 8 GB di RAM per lo stack Dify stesso, oltre alla VRAM/RAM utilizzata dai tuoi modelli Ollama.
Terminale — preparare i modelli
# Vérifier qu'Ollama répond
ollama list

# Modèle de chat (choisissez selon votre VRAM)
ollama pull qwen3.5:9b

# Modèle d'embeddings pour le RAG
ollama pull nomic-embed-text

#Installare Dify con Docker Compose

Dify fornisce un repository ufficiale con una cartella docker pronta all'uso. Si clona il repository, si copia il file di esempio delle variabili d'ambiente e si avvia lo stack.

  1. 01
    Clonare il repository
    Recupera la versione stabile più recente del progetto da GitHub, poi spostati nella cartella docker che contiene il file docker-compose.yaml.
  2. 02
    Creare il file .env
    Copia .env.example in .env. I valori predefiniti sono sufficienti per un uso locale; è in questo file che potrai modificare le porte o i segreti in seguito.
  3. 03
    Avviare lo stack
    Esegui docker compose up -d. Il primo avvio scarica le immagini e inizializza il database PostgreSQL; metti in conto qualche minuto.
  4. 04
    Creare l'account amministratore
    Apri http://localhost/install nel browser e inserisci l'email e la password del primo amministratore. Sarà questo account a gestire lo spazio di lavoro.
Terminale — deployment
git clone https://github.com/langgenius/dify.git
cd dify/docker

cp .env.example .env

docker compose up -d

# Vérifier que les conteneurs tournent
docker compose ps
→
L'interfaccia è sulla porta 80
Per impostazione predefinita, il frontend Dify è esposto su http://localhost (porta 80), non su una porta applicativa insolita. Se la porta 80 è già occupata, modifica EXPOSE_NGINX_PORT nel file .env prima di eseguire nuovamente docker compose up -d.

#Collegare Ollama come fornitore di modelli

Dify riconosce i tuoi modelli locali solo se configuri Ollama come fornitore. Questo si fa nelle impostazioni del modello, non in un file di configurazione. Il punto principale a cui prestare attenzione è l'URL: da un container Docker, localhost indica il container stesso, non la tua macchina host su cui è in esecuzione Ollama.

  1. 01
    Aprire le impostazioni dei fornitori
    Fai clic sull'icona del tuo avatar in alto a destra → Impostazioni → Fornitori di modelli. Cerca Ollama nella lista e selezionalo.
  2. 02
    Inserire l'URL del server
    Nel campo Base URL, inserisci l'indirizzo raggiungibile dal contenitore (vedi il suggerimento sotto). Il nome del modello deve corrispondere esattamente a quello restituito da ollama list, ad esempio qwen3.5:9b.
  3. 03
    Aggiungere il modello di chat
    Tipo di modello: LLM. Inserisci la dimensione del contesto (ad es. 8192 o più a seconda del modello) e conferma. Dify verifica la connessione al salvataggio.
  4. 04
    Aggiungere il modello di embedding
    Ripeti l'operazione con nomic-embed-text scegliendo il tipo Text Embedding. Senza di lui non potrai costruire una base di conoscenza.
  5. 05
    Definire i modelli predefiniti
    Sempre nelle impostazioni, imposta qwen3.5:9b come modello di sistema predefinito e nomic-embed-text come modello di embedding predefinito.
!
localhost non funziona dal container
Ollama gira sull'host, ma Dify gira in Docker. Usa http://host.docker.internal:11434 con Docker Desktop (Windows/macOS). Su Linux, usa l'IP del gateway Docker (spesso http://172.17.0.1:11434) oppure avvia Ollama con OLLAMA_HOST=0.0.0.0 e poi usa l'IP della macchina host sulla rete locale.
Terminale — esporre Ollama sulla rete (Linux)
# Rendre Ollama joignable au-delà de localhost
# (à ajouter dans le service systemd ou l'environnement)
OLLAMA_HOST=0.0.0.0 ollama serve

# Vérifier depuis l'hôte que l'API répond
curl http://localhost:11434/api/tags

#Costruire un primo assistente RAG senza scrivere codice

Il RAG (Retrieval-Augmented Generation) permette al modello di rispondere basandosi sui tuoi documenti piuttosto che sulle sue sole conoscenze di training. In Dify, questo avviene attraverso una base di conoscenze (Knowledge) che poi viene associata a un'applicazione.

  1. 01
    Creare una base di conoscenza
    Scheda Knowledge → Crea. Importa i tuoi file (PDF, Markdown, TXT, DOCX). Dify li suddivide automaticamente in blocchi.
  2. 02
    Regolare la suddivisione in chunk e l'indicizzazione
    Scegli la modalità di indicizzazione «alta qualità» che utilizza il tuo modello di embedding nomic-embed-text. Regola la dimensione dei chunk se i tuoi documenti sono molto strutturati (tabelle, codice).
  3. 03
    Creare l'applicazione di chat
    Scheda Studio → Crea un'app → Chatbot. Assegna all'app un nome e una descrizione.
  4. 04
    Scrivere il prompt di sistema
    Nell'editor, descrivi il ruolo dell'assistente: «Rispondi soltanto basandoti sui documenti forniti. Se l'informazione non è presente, dillo.» È questo che limita le allucinazioni.
  5. 05
    Collegare la base di conoscenza
    Nel pannello Contexte dell'app, aggiungi la base creata al passaggio 1. Attiva la citazione delle fonti in modo che le risposte mostrino gli estratti utilizzati.
  6. 06
    Testare e poi pubblicare
    Usa il pannello di debug a destra per porre domande. Quando il comportamento ti soddisfa, clicca su Pubblica per ottenere un URL della chat e una chiave API.
→
Il modello di embedding conta quanto il modello di chat
La qualità di un RAG dipende innanzitutto dalla pertinenza dei passaggi recuperati. Un buon modello di embedding (nomic-embed-text, o mxbai-embed-large se hai margine) migliora notevolmente le risposte, anche con un modello di chat modesto. Non investire tutto in un grande LLM trascurando gli embedding.

#Workflows e agenti: fino a dove va il no-code

Oltre al semplice chatbot, Dify propone due modalità più avanzate. La modalità Workflow offre un'area di lavoro visiva in cui si collegano nodi: input dell'utente, chiamata al LLM, condizione (if/else), estrazione di parametri, richiesta HTTP, iterazione su una lista. Si costruiscono così pipeline deterministiche — ad esempio: ricevere un'e-mail, classificarla, estrarre le entità, poi redigere una risposta standard.

La modalità Agent, invece, lascia che il modello decida quali strumenti chiamare e in quale ordine, ripetendo il ciclo fino a ottenere un risultato. È più potente ma più fragile: la qualità dipende fortemente dalla capacità del modello di ragionare e di rispettare il formato di chiamata degli strumenti. I modelli locali molto piccoli (2-4B) se la cavano male; opta per un modello progettato per l'uso di strumenti, come GLM 4.7 Flash (MoE 30B-A3B, MIT, ~19 GB) o Qwen 3.8 27B (~18 GB) se la tua VRAM lo permette.

Cosa sa fare bene il no-code
Prototipare velocemente un chatbot RAG, concatenare alcuni passaggi LLM, esporre un'API senza dover scrivere un backend, iterare sui prompt in team.
Dove sorgono le difficoltà in locale
Gli agenti che usano più strumenti per compiti impegnativi richiedono un modello capace di usarli in modo affidabile e quindi richiedono VRAM. Un Qwen 3.5 9B basta per il RAG, ma raramente per un agente complesso.
Quando passare al codice
Logica di business dettagliata, integrazioni su misura, controllo totale della pipeline di recupero delle informazioni: una libreria come LangChain permette di riprendere il controllo quando l'editor visuale mostra i suoi limiti.

#Risoluzione dei problemi

«Connection refused» quando si aggiunge il modello
Dify non raggiunge Ollama. Il problema è quasi sempre l'URL: sostituisci localhost con host.docker.internal (Docker Desktop) o con l'IP del gateway Docker (Linux) e verifica che Ollama sia effettivamente in ascolto su 0.0.0.0.
Il modello non appare
Il nome inserito non corrisponde a quello riportato da ollama list. Copia il nome esatto, tag incluso (qwen3.5:9b e non qwen3.5).
Errore durante l'indicizzazione dei documenti
Il modello di embedding non è configurato o non è stato scaricato. Esegui ollama pull nomic-embed-text e selezionalo come modello di embedding predefinito.
Risposte molto lente
Il modello di chat probabilmente viene eseguito in parte sulla CPU. Passa a una quantizzazione più leggera (Q4_K_M) o a un modello più piccolo e verifica che Ollama utilizzi effettivamente la GPU.
La porta 80 è già occupata
Un altro servizio occupa la porta. Modifica EXPOSE_NGINX_PORT nel file .env (ad es. 8080), poi esegui di nuovo docker compose up -d.
Risposte fuori tema nonostante il RAG
Verifica che la base di conoscenza sia correttamente associata all'app e che il prompt di sistema vincoli il modello a basarsi sul contesto. Regola anche la dimensione dei chunk.

#Per approfondire

La validità di Dify dipende dalla solidità del modello e dell'infrastruttura che lo supportano. Queste guide rafforzano le componenti su cui si basa.

Installare Ollama
Il daemon che rende disponibili il tuo modello di chat e i tuoi embedding sulla porta 11434 — la base dell'intero stack Dify locale.
RAG locale con ChromaDB e Ollama
Per capire cosa automatizza Dify sotto il cofano e riprendere il controllo in Python quando il no-code mostra i suoi limiti.
n8n + Ollama: automatizzare localmente
Un altro approccio no-code, orientato all'automazione delle attività, complementare ai workflow Dify.
Questa guida ti è stata utile?

Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.