DeepSeek sempre occupato? Distribuiscilo in locale con Milvus in soli 10 minuti—Basta attese!
Se hai provato a usare DeepSeek-R1 e hai incontrato il messaggio, “Server is busy. Please try again later,” sai quanto possa essere dirompente. Attendere server occupati può interrompere il tuo flusso di lavoro, soprattutto quando hai bisogno di risposte rapide o sei concentrato su un’attività.
Un modo pratico per evitarlo è eseguire DeepSeek-R1 direttamente sulla tua macchina. Questo ti permette di aggirare i ritardi del server e di avere maggiore controllo su come e quando usi il modello. In questa guida, vedremo come configurare DeepSeek-R1 localmente usando alcuni strumenti che funzionano insieme. Ollama ti aiuterà a scaricare ed eseguire il modello sul tuo sistema. Useremo poi AnythingLLM per rendere più semplice l’interazione con DeepSeek-R1 tramite un’interfaccia semplice. Infine, integreremo Milvus, un database vettoriale, così il modello potrà fare riferimento a dati esterni, come i tuoi documenti o informazioni personalizzate, quando risponde alle domande.
Non hai bisogno di hardware di fascia alta per iniziare. DeepSeek-R1 offre versioni più piccole del modello che possono funzionare su configurazioni più comuni. Che tu stia usando DeepSeek-R1 per lavoro, ricerca o progetti personali, configurarlo localmente ti aiuterà a evitare problemi di server e ad adattare il modello alle tue esigenze. Iniziamo configurando DeepSeek-R1 con Ollama.
Distribuzione di DeepSeek-R1 con Ollama: installazione e configurazione
Inizia installando Ollama, che semplifica il processo di esecuzione dei modelli AI sulla tua macchina locale. Comincia visitando la pagina di download di Ollama e selezionando l’installer corrispondente al tuo sistema operativo.
Figura: pagina di download di Ollama
Una volta completato il download, eseguilo e segui le istruzioni sullo schermo per completare la configurazione. Dopo l’installazione, conferma che Ollama sia configurato correttamente aprendo la tua interfaccia a riga di comando e digitando:
ollama --version
Se tutto è installato correttamente, vedrai visualizzato il numero di versione. Questo controllo assicura che il tuo ambiente sia pronto per gestire modelli AI localmente.
Poi, scarica DeepSeek-R1. Per la maggior parte degli utenti, la versione da 7 miliardi di parametri (7B) offre un equilibrio pratico tra prestazioni e requisiti di risorse, richiedendo generalmente una GPU con circa 18 GB di VRAM. Se il tuo hardware è meno potente, è disponibile il modello 1.5B (circa 3,9 GB di VRAM). Per configurazioni avanzate, puoi considerare il modello completo 671B, anche se richiede risorse molto più elevate. Regola il comando qui sotto in base alla dimensione del modello che desideri:
ollama pull deepseek-r1:7b
Il comando sopra scaricherà il modello specificato sul tuo computer come mostrato di seguito:
Figura: installazione di deepseek-r1:7b tramite Ollama su un computer
Una volta completato il download del modello, avvia DeepSeek-R1 eseguendo:
ollama run deepseek-r1:7b
Sostituisci 7b con 1.5b o un’altra versione se hai scelto un modello diverso. Dopo l’avvio del modello, puoi iniziare a interagire con esso digitando i tuoi prompt direttamente nella riga di comando.
Figura: una sessione di esempio di deepseek-r1:7b in cui un utente pone una domanda e il modello fornisce una risposta
Lo screenshot sopra mostra una sessione di esempio in cui chiediamo, Chi sei? e DeepSeek-R1 risponde con un’introduzione, confermando che il modello è in esecuzione e pronto ad assistere.
Installazione e configurazione di AnythingLLM
Sebbene interagire tramite la riga di comando funzioni per i test di base, può risultare macchinoso per un utilizzo continuativo. AnythingLLM fornisce un’interfaccia in stile chat che rende le conversazioni con i modelli eseguiti localmente più intuitive. Supporta inoltre più backend di modelli linguistici, offre un modo semplice per caricare dati personalizzati e può integrarsi con database vettoriali come Milvus. Di seguito trovi una panoramica delle sue funzionalità e di come installarlo e collegarlo a Ollama.
Perché usare AnythingLLM?
Alcune delle funzionalità sono:
Chat interattiva: AnythingLLM sostituisce i prompt manuali da riga di comando con una finestra di chat, rendendo più facile vedere il flusso della conversazione e fare riferimento alle query precedenti.
Gestione centralizzata dei modelli: Puoi eseguire diversi modelli linguistici in un’unica interfaccia e passare dall’uno all’altro senza dover gestire più terminali.
Integrazione dei dati: Il supporto integrato per i database vettoriali (come Milvus) ti consente di caricare documenti, file di ricerca o altre risorse in modo che il modello possa farvi riferimento quando risponde alle domande.
Configurazione semplice degli embedding: Scegli quale modello di embedding usare per convertire i tuoi documenti e le query degli utenti in vettori, aiutando il sistema a trovare informazioni pertinenti con maggiore precisione.
Queste funzionalità offrono un flusso di lavoro più fluido per chiunque abbia bisogno di qualcosa di più delle interazioni di base da terminale. Vediamo come possiamo installare e configurare AnythingLLM:
Passaggio 1: Scaricare e installare AnythingLLM
Vai al sito web di AnythingLLM e scegli l’installer che corrisponde al tuo sistema operativo. Dopo aver scaricato il file, eseguilo e segui le istruzioni per completare la configurazione. Una volta installato, apri AnythingLLM e verrai accolto da una pagina o procedura guidata Get Started, a indicare che l’applicazione è pronta per la configurazione iniziale.
Passaggio 2: Saltare i prompt iniziali
Quando apri AnythingLLM per la prima volta, vedrai prompt per LLM Preference, Data Handling & Privacy e un Survey facoltativo. Per ora, scegli Skip in ogni schermata, così possiamo mostrare come accedere a queste opzioni e configurarle all’interno dell’app stessa. Non vedrai questi prompt ogni volta che avvii AnythingLLM, quindi imparare dove trovarli in seguito ti aiuterà a regolare le impostazioni o aggiornare le preferenze secondo necessità.
Passaggio 3: Creare il tuo primo workspace
Dopo aver saltato i prompt iniziali, ti verrà chiesto di creare il tuo primo workspace.
Scegli un nome per il tuo workspace e poi fai clic sulla freccia a destra per procedere. Noi abbiamo chiamato il nostro Milvus-DeepSeek-Local-Deploy. Questo workspace fornisce un’area dedicata per organizzare le conversazioni e archiviare eventuali documenti che carichi. Una volta creato, vedrai l’interfaccia di chat:
Qui interagirai con DeepSeek-R1 dopo aver collegato il modello.
Passaggio 4: Collegare DeepSeek-R1 al tuo workspace
Per collegare il tuo modello, fai clic sul pulsante Settings accanto al nome del tuo workspace. Nel pannello che si apre, seleziona Chat Settings. Vedrai opzioni per scegliere un Workspace LLM Provider e impostare un Workspace Chat model.
Poiché stiamo usando Ollama, scegli Ollama dall’elenco dei provider. Quindi, scegli qualsiasi modello che hai scaricato tramite Ollama facendo clic su Workspace Chat model. Questo include DeepSeek-R1 (ad esempio, nel nostro caso, deepseek-r1:7b).
Figura: Pannello delle impostazioni della chat che mostra Ollama come provider LLM e deepseek-r1:7b come modello selezionato
Una volta selezionato un modello, salva le modifiche. Il tuo workspace è ora collegato al modello scelto, consentendoti di interagire con esso direttamente tramite l’interfaccia di chat. Torna alla tua interfaccia di chat per iniziare a chattare.
Passaggio 5: Testare il modello con una query
Ora che il tuo workspace è connesso a DeepSeek-R1, puoi testare come risponde a domande su cui non è stato addestrato. Prova a chiedere, Chi è Chris Churilo? e nota che il modello non fornisce una risposta chiara.
Figura: risposta dell’LLM a “Chi è Chris Churilo?”
Poiché il modello non dispone di informazioni su Chris Churilo, non può fornire una risposta dettagliata. Questa lacuna illustra la necessità di una fonte di conoscenza esterna. Milvus, un database vettoriale, può archiviare dati rilevanti sotto forma di embedding su Chris Churilo affinché l’LLM possa farvi riferimento.
Configurazione di Milvus e integrazione con AnythingLLM
Prima di collegare il tuo workspace a dati esterni, dovrai distribuire un database vettoriale che possa archiviare embedding (rappresentazioni numeriche dei dati (come parole o immagini) in uno spazio vettoriale continuo, catturandone significati o caratteristiche in modo che elementi simili siano posizionati più vicini tra loro) dai tuoi dati personalizzati. Vediamo come installare Milvus e poi configurare AnythingLLM per usarlo come database vettoriale, consentendo al modello di fornire risposte più informate.
Installazione di Milvus
Per prima cosa, assicurati che Docker e Docker Compose siano installati sulla tua macchina. Quindi, apri il terminale e scarica il file Docker Compose standalone di Milvus eseguendo:
wget https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -O docker-compose.yml
Successivamente, apri il file docker-compose.yml scaricato nel tuo editor di testo preferito. Individua le impostazioni di configurazione sotto il servizio standalone e aggiorna i campi COMMON_USER e COMMON_PASSWORD con le credenziali desiderate.
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
COMMON_USER: milvus
COMMON_PASSWORD: milvus
Useremo queste credenziali in seguito durante la configurazione di AnythingLLM per connettersi a Milvus. Dopo aver salvato le modifiche, torna al terminale e avvia Milvus eseguendo il seguente comando:
docker-compose up -d
Questo comando avvia Milvus in background. Puoi verificare che Milvus sia in esecuzione controllando i tuoi container Docker con docker ps oppure visitando il suo endpoint di health, se configurato.
Figura: avvio di Milvus usando docker compose dalla riga di comando
Ora che Milvus è installato, siamo pronti a integrarlo con AnythingLLM, consentendo al tuo workspace di sfruttare questa fonte di dati esterna per migliorare le risposte del modello.
Integrazione di Milvus con AnythingLLM
Ora che Milvus è in esecuzione, configuriamo AnythingLLM per archiviare e recuperare embedding per i tuoi dati personalizzati. Segui i passaggi seguenti per abilitare risposte più guidate dal contesto dal tuo modello DeepSeek-R1.
1. Aprire le impostazioni
Fai clic sul pulsante Open Settings nell’angolo in basso a sinistra dell’interfaccia di AnythingLLM. Si aprirà un pannello con diverse categorie di configurazione.
Figura: interfaccia principale di AnythingLLM con il pulsante Open Settings evidenziato
2. Selezionare il database vettoriale
All’interno del pannello delle impostazioni, espandi AI Providers e seleziona Vector Database. Sotto Vector Database Provider, scegli Milvus. Appariranno i campi per l’indirizzo e le credenziali che hai configurato nel file Docker Compose di Milvus:
Milvus DB Address:
http://localhost:19530Milvus Username: (il nome utente che hai impostato)
Milvus Password: (la password che hai impostato)
Fai clic su Save per confermare le impostazioni.
Figura: impostazioni del database vettoriale in AnythingLLM con Milvus selezionato
3. Scegli un Embedder (opzionale)
Sempre sotto AI Providers, puoi scegliere un modello di embedding diverso, se lo desideri. Se non viene effettuata alcuna selezione, AnythingLLM utilizza il suo embedder predefinito. Questo passaggio è opzionale per l’uso di base, ma può essere utile se vuoi ottimizzare il modo in cui il testo viene vettorializzato. Per questo caso, useremo l’opzione predefinita.
Figura: selezione del modello di embedding in AnythingLLM, se applicabile
4. Carica i documenti
Torna all’interfaccia principale o alla vista del tuo workspace. Carica qualsiasi documento che vuoi che il modello usi come riferimento trascinandolo e rilasciandolo, oppure selezionandolo tramite l’interfaccia. AnythingLLM elencherà i tuoi file, pronti per l’embedding.
Figura: area di caricamento dei documenti che mostra i file appena aggiunti
5. Sposta i documenti nel Workspace
Una volta che i tuoi documenti vengono visualizzati, seleziona ciascun file e scegli Move to Workspace. Nel pannello di destra, fai clic su Save and Embed. AnythingLLM converte i documenti in embedding vettoriali e li archivia in Milvus, rendendo il contenuto accessibile a DeepSeek-R1.
Figura: spostamento dei documenti in un workspace e loro embedding
Dopo aver completato questi passaggi, il tuo modello DeepSeek-R1 può fare riferimento ai documenti incorporati. Ad esempio, se ora chiedi: Who is Chris Churilo?. Il modello saprà chi è, come puoi vedere qui sotto:
Figura: DeepseekR1 che pensa a come rispondere a una query Who is Chris Churilo? usando Milvus
Il modello fa questo cercando le informazioni rilevanti archiviate in Milvus, fornendo una risposta più dettagliata rispetto a prima. Ecco la risposta finale alla nostra query.
Figura: DeepseekR1 che risponde alla query Who is Chris Churilo? usando Milvus
Il modello ora risponde con una risposta dettagliata che cita il documento caricato. Nello screenshot sopra, puoi vedere come il modello estrae dettagli rilevanti sul ruolo, sul background e sui contributi di Chris Churilo, informazioni che non erano disponibili prima dell’integrazione di Milvus. Questa risposta migliorata dimostra il valore di combinare un deployment locale di LLM con un database vettoriale per creare un’esperienza IA più informata e consapevole del contesto.
Verifica delle collection in Milvus
Una volta incorporati i documenti tramite AnythingLLM, puoi confermare che Milvus li stia archiviando correttamente elencando le tue collection. Se non hai già installato pymilvus, inizia installandolo con questo comando:
pip install pymilvus
Quindi esegui il seguente codice Python per connetterti a Milvus, recuperare un elenco di collection e stamparne i nomi:
from pymilvus import MilvusClient
# Connect to Milvus
client = MilvusClient(uri="http://localhost:19530") # Replace with your URI if it's different
# List all collections
collections = client.list_collections()
# Print results
print(f"Found {len(collections)} collections:")
for idx, collection in enumerate(collections, 1):
print(f"{idx}. {collection}")
# Optional: Close the connection when done
client.close()
Se hai appena installato Milvus, non vedrai molte collection. Tuttavia, dopo aver usato AnythingLLM per incorporare documenti, noterai una nuova collection che prende il nome dal workspace che hai usato. Nell’output di esempio qui sotto, la collection rilevante è elencata come 21. Anythingllm_milvus_deepseek_local_deploy.
Questo conferma che AnythingLLM ha creato con successo una raccolta dedicata in Milvus per archiviare gli embedding dei dati caricati.
Abbiamo ora esaminato la distribuzione di DeepSeek-R1 in locale, la configurazione di AnythingLLM per un’interfaccia intuitiva e l’integrazione di Milvus come database vettoriale. Questa configurazione consente al modello di accedere a dati personalizzati e di rispondere alle domande in modo più efficace.
Conclusione
Configurare DeepSeek-R1 in locale con l’aiuto di Ollama, AnythingLLM e Milvus apre nuove possibilità per personalizzare e migliorare i tuoi flussi di lavoro di IA. Questo approccio non solo ti offre il pieno controllo sul tuo ambiente, ma consente anche al tuo modello di accedere a fonti di dati specifiche, migliorandone la pertinenza e l’accuratezza. Con questa configurazione, non sei più limitato dalla disponibilità dei server o da risposte generiche: la tua IA può ora lavorare direttamente con le informazioni che fornisci, adattate alle tue esigenze.
Ulteriori risorse
Continua a leggere

Zilliz Cloud Just Landed in Claude Code
The Zilliz Cloud Plugin brings the full power of Zilliz Cloud directly into your Claude Code terminal as natural-language conversations.

The Great AI Agent Protocol Race: Function Calling vs. MCP vs. A2A
Compare Function Calling, MCP, and A2A protocols for AI agents. Learn which standard best fits your development needs and future-proof your applications.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


