{"id":2764,"date":"2025-08-31T15:10:51","date_gmt":"2025-08-31T15:10:51","guid":{"rendered":"https:\/\/www.markus-schall.de\/?p=2764"},"modified":"2025-11-24T09:17:41","modified_gmt":"2025-11-24T09:17:41","slug":"rag-con-ollama-e-qdrant-come-motore-di-ricerca-universale-per-i-propri-dati","status":"publish","type":"post","link":"https:\/\/www.markus-schall.de\/it\/2025\/08\/rag-con-ollama-e-qdrant-come-motore-di-ricerca-universale-per-i-propri-dati\/","title":{"rendered":"RAG con Ollama e Qdrant come motore di ricerca universale per i dati propri"},"content":{"rendered":"<p>In un mondo di informazioni sempre pi\u00f9 confuso, diventa sempre pi\u00f9 importante rendere i propri database ricercabili in modo mirato, non attraverso le classiche ricerche full-text, ma attraverso risposte semanticamente rilevanti. \u00c8 proprio qui che entra in gioco il principio del database RAG, una soluzione di ricerca supportata dall'intelligenza artificiale e composta da due componenti centrali:<!--more--><\/p>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-982 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-small-grid-column: 33.33%;--dpt-large-grid-column: 33.3333333333%;--dpt-h-gutter: 10px;--dpt-v-gutter: 10px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-982 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">Argomenti attuali sull'intelligenza artificiale<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-982\" class=\"dpt-wrapper dpt-grid1 multi-col dpt-mason-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"ollama trifft qdrant: ein lokales ged\u00e4chtnis f\u00fcr deine ki auf dem mac\" data-id=\"2502\"  data-category=\"apple macos filemaker &amp; erp ki-systeme tipps &amp; anleitungen\" data-post_tag=\"docker filemaker k\u00fcnstliche intelligenz llama llm mistral neo4j ollama qdrant sprachmodell vektordatenbank\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/it\/2025\/08\/ollama-incontra-qdrant-una-memoria-locale-per-il-vostro-ki-sul-mac\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Ollama incontra Qdrant: una memoria locale per la vostra AI su Mac<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1440\" height=\"980\" class=\"attachment-full size-full\" alt=\"Memoria per AI locale con Ollama e Qdrant\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis.jpg\" data-dpt-sizes=\"(max-width: 1440px) 100vw, 1440px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis.jpg 1440w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis-300x204.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis-1024x697.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis-768x523.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ollama-qdrant-gedaechtnis-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 68%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/it\/2025\/08\/ollama-incontra-qdrant-una-memoria-locale-per-il-vostro-ki-sul-mac\/\" rel=\"bookmark\">Ollama incontra Qdrant: una memoria locale per la vostra AI su Mac<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"llms.txt f\u00fcr wordpress: website mit einem kostenlosen plugin auf ki-systeme vorbereiten\" data-id=\"6316\"  data-category=\"ki-systeme tipps &amp; anleitungen\" data-post_tag=\"datenlogik k\u00fcnstliche intelligenz llm ratgeber sprachmodell wordpress\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/it\/2026\/08\/preparare-i-file-txt-llms-per-un-sito-web-wordpress-utilizzando-un-plugin-gratuito-su-ki-systeme\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">LLMS.txt per WordPress: preparare il sito web ai sistemi di intelligenza artificiale con un plugin gratuito<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1200\" height=\"685\" class=\"attachment-full size-full\" alt=\"Plugin WordPress llms.txt\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/llms.txt-Wordpress-Plugin.jpg\" data-dpt-sizes=\"(max-width: 1200px) 100vw, 1200px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/llms.txt-Wordpress-Plugin.jpg 1200w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/llms.txt-Wordpress-Plugin-300x171.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/llms.txt-Wordpress-Plugin-1024x585.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/llms.txt-Wordpress-Plugin-768x438.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/llms.txt-Wordpress-Plugin-18x10.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 57%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/it\/2026\/08\/preparare-i-file-txt-llms-per-un-sito-web-wordpress-utilizzando-un-plugin-gratuito-su-ki-systeme\/\" rel=\"bookmark\">LLMS.txt per WordPress: preparare il sito web ai sistemi di intelligenza artificiale con un plugin gratuito<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"mit ki dialogisch denken lernen: warum gute fragen wichtiger sind als gute modelle\" data-id=\"4700\"  data-category=\"allgemein ki-systeme tipps &amp; anleitungen\" data-post_tag=\"denkmodelle k\u00fcnstliche intelligenz lernen llm prozesse ratgeber sprachmodell\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/it\/2026\/02\/imparare-a-pensare-in-dialogo-con-ki-perche-le-buone-domande-sono-piu-importanti-dei-buoni-modelli\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Imparare a pensare in dialogo con l'IA: perch\u00e9 le buone domande sono pi\u00f9 importanti dei buoni modelli<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Imparare a pensare in dialogo con l&#039;IA\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Denken-lernen-mit-KI-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 67%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/it\/2026\/02\/imparare-a-pensare-in-dialogo-con-ki-perche-le-buone-domande-sono-piu-importanti-dei-buoni-modelli\/\" rel=\"bookmark\">Imparare a pensare in dialogo con l'IA: perch\u00e9 le buone domande sono pi\u00f9 importanti dei buoni modelli<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\n<hr \/>\n<ol>\n<li>un database vettoriale (come Qdrant) in cui qualsiasi contenuto \u00e8 memorizzato come vettori numerici,<\/li>\n<li>e un modello linguistico (ad esempio tramite Ollama) che combina in modo intelligente le rispettive richieste con il contenuto appropriato.<\/li>\n<\/ol>\n<p>Invece di lasciare che il modello \u201eindovini\u201c, questa architettura utilizza le proprie fonti di conoscenza, ad esempio:<\/p>\n<ul>\n<li>documentari autoprodotti,<\/li>\n<li>Contenuti dei siti web,<\/li>\n<li>manuali tecnici,<\/li>\n<li>Database di supporto,<\/li>\n<li>Elenchi di FAQ,<\/li>\n<li>o qualsiasi fonte di testo archiviata (ad esempio, da vecchi database).<\/li>\n<\/ul>\n<p>Il fattore decisivo: Tutte queste fonti possono essere preparate in anticipo e \"chunked\" (cio\u00e8 suddivise in piccole unit\u00e0 di testo) per poter fornire in un secondo momento gli estratti di testo pi\u00f9 rilevanti per una domanda dell'utente.<\/p>\n<p>Che vogliate rendere analizzabile il vostro database di conoscenze, la documentazione interna o un intero archivio di prodotti - con <a href=\"https:\/\/ollama.com\" target=\"_blank\" rel=\"noopener\"><strong>Ollama<\/strong><\/a> + <a href=\"https:\/\/qdrant.tech\" target=\"_blank\" rel=\"noopener\"><strong>Qdrant<\/strong><\/a> \u00e8 possibile farlo sul proprio Mac, senza vincoli di cloud e con il pieno controllo dei dati.<\/p>\n<h2>Che cos'\u00e8 un database RAG e perch\u00e9 il \u201echunking\u201c?<\/h2>\n<p>RAG \u00e8 l'acronimo di Retrieval-Augmented Generation (generazione aumentata del recupero), in altre parole: un'intelligenza artificiale che genera testo con un recupero assistito delle informazioni. Invece di addestrare un modello linguistico come GPT, Mistral o LLaMA solo su ci\u00f2 che gi\u00e0 \u201econosce\u201c, pu\u00f2 accedere a informazioni aggiuntive tramite un database di conoscenza collegato (di solito un cosiddetto database vettoriale).<\/p>\n<p><strong>Esempio:<\/strong><\/p>\n<blockquote><p>Se si chiede a un modello linguistico: \"Cosa c'\u00e8 nella mia dichiarazione dei redditi del 2023?\", dovr\u00e0 tirare a indovinare senza avere accesso ai dati originali. Tuttavia, se ha accesso a una rappresentazione vettoriale del documento memorizzata localmente, pu\u00f2 recuperare le informazioni pertinenti e incorporarle nella risposta.<\/p><\/blockquote>\n<h3>Perch\u00e9 i contenuti vengono \"spezzettati\"<\/h3>\n<p>Documenti, siti web o libri sono di solito troppo lunghi per essere elaborati o ricercati in una sola volta. I moderni modelli linguistici hanno anche dei limiti di token, cio\u00e8 una lunghezza limitata di testo che possono comprendere in una sola volta (spesso circa 4.000-8.000 token, con i modelli pi\u00f9 recenti anche 32.000 o pi\u00f9).<\/p>\n<p>Ecco perch\u00e9 RAG utilizza il seguente trucco:<\/p>\n<ol>\n<li>Il testo originale \u00e8 diviso in piccole sezioni (chunks).<\/li>\n<li>Ciascun chunk viene convertito in un vettore da un modello linguistico (embedding).<\/li>\n<li>Questi vettori sono memorizzati in un database come Qdrant.<\/li>\n<li>Quando l'utente fa una richiesta, anche la domanda viene tradotta in un vettore e vengono recuperati i pezzi pi\u00f9 simili.<\/li>\n<li>Questo contenuto viene poi aggiunto al modello linguistico, ad esempio tramite un prompt di sistema o un'iniezione di contesto.<\/li>\n<\/ol>\n<p>In questo modo si crea un sistema che si comporta come una memoria, ma senza le classiche parole chiave o la ricerca full-text, bens\u00ec basandosi esclusivamente sul significato (semantico).<\/p>\n<h2>Requisiti e obiettivi<\/h2>\n<p>Stiamo costruendo un sistema locale di RAG composto da:<\/p>\n<ul>\n<li>un LLM locale via Ollama<\/li>\n<li>un database vettoriale chiamato Qdrant<\/li>\n<li>uno script Python che suddivide, vettorializza e inserisce i testi nel database<\/li>\n<li>Opzionale: un'interfaccia semplice o un'API per l'interrogazione<\/li>\n<\/ul>\n<p><strong>Piattaforma di destinazione: macOS (Intel o Apple Silicon)<\/strong><\/p>\n<p>Questo \u00e8 un prerequisito:<\/p>\n<ul>\n<li>macOS 12 o pi\u00f9 recente (Monterey o superiore)<\/li>\n<li>Conoscenza di base dei terminali<\/li>\n<li>Python 3.10 o pi\u00f9 recente<\/li>\n<li>Opzionale: Homebrew installiert<\/li>\n<\/ul>\n<h3>Fase 1: Ollama 1TP12Animal<\/h3>\n<p>Ollama \u00e8 uno strumento snello per eseguire modelli linguistici locali come Mistral, LLaMA, Gemma o Codellama sul proprio computer, anche senza Internet.<\/p>\n<p>Installazione su Mac:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">curl -fsSL https:\/\/ollama.com\/install.sh | sh<\/pre>\n<p>In alternativa, l'Ollama pu\u00f2 essere assegnato anche tramite Homebrew install:<br \/>\nbrew install ollama<\/p>\n<p>Dopo l'installazione:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">ollama run mistral<\/pre>\n<p>Questo scarica il modello Mistral 7B e lo avvia localmente. La Ollama \u00e8 dotata di un'API REST, che verr\u00e0 utilizzata in seguito per la vettorializzazione. Naturalmente \u00e8 possibile utilizzare anche altri modelli, come Gemma3 (12B), Mistral Small (24B) o altri LLM.<\/p>\n<h3>Fase 2: animali Qdrant 1TP12 (database vettoriale locale)<\/h3>\n<p>Qdrant \u00e8 un database vettoriale velocissimo basato su Rust. \u00c8 gratuito, open source e facile da avviare sul Mac, preferibilmente tramite Docker. Se non avete ancora installato Docker sul vostro Mac 1TP12, potete scaricarlo dal sito <a href=\"https:\/\/www.docker.com\" target=\"_blank\" rel=\"noopener\"><strong>Sito web di Docker<\/strong><\/a> gratuitamente ed eseguirlo sul Mac come una normale applicazione desktop installieren. In alternativa, \u00e8 possibile installare Docker tramite Homebrew install se si utilizza gi\u00e0 Homebrew:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">brew install --cask docker<\/pre>\n<p>Quindi avviare Qdrant tramite Docker:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 -v qdrant_storage:\/qdrant\/storage qdrant\/qdrant<\/pre>\n<p>Qdrant \u00e8 raggiungibile all'indirizzo<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">http:\/\/localhost:6333<\/pre>\n<p>Per i test:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">curl http:\/\/localhost:6333\/collections<\/pre>\n<h3>Passo 3: Preparare l'ambiente Python<\/h3>\n<p>Abbiamo bisogno di Python per il chunking, l'embedding e la comunicazione con Qdrant.<\/p>\n<p>Preparazione:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">python3 -m venv rag-env\r\nsource rag-env\/bin\/activate\r\npip install qdrant-client sentence-transformers ollama numpy<\/pre>\n<p>Se ollama non \u00e8 riconosciuto come pacchetto Python, utilizzare l'API REST direttamente tramite le richieste:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">pip install requests<\/pre>\n<h3>Fase 4: Chunking e embedding<\/h3>\n<p>Di seguito \u00e8 riportato un esempio di script che divide un documento di testo in pezzi, crea embeddings tramite Ollama e li inserisce in Qdrant:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">import requests\r\nfrom qdrant_client import QdrantClient\r\nfrom qdrant_client.models import PointStruct\r\nimport uuid\r\n\r\n# Konfiguration\r\nCHUNK_SIZE = 500 # Zeichen\r\nCOLLECTION_NAME = \"mein_rag_wissen\"\r\n\r\n# Text vorbereiten\r\nwith open(\"mein_text.txt\", \"r\") as f:\r\ntext = f.read()\r\n\r\nchunks = [text[i:i+CHUNK_SIZE] for i in range(0, len(text), CHUNK_SIZE)]\r\n\r\n# Qdrant vorbereiten\r\nclient = QdrantClient(\"localhost\", port=6333)\r\n\r\n# Neue Collection anlegen (falls noch nicht vorhanden)\r\nclient.recreate_collection(\r\ncollection_name=COLLECTION_NAME,\r\nvectors_config={\"size\": 4096, \"distance\": \"Cosine\"}\r\n)\r\n\r\ndef get_embedding_ollama(text):\r\nresponse = requests.post(\r\n\"http:\/\/localhost:11434\/api\/embeddings\",\r\njson={\"model\": \"mistral\", \"prompt\": text}\r\n)\r\nreturn response.json()[\"embedding\"]\r\n\r\n# Embeddings erzeugen und in Qdrant speichern\r\npoints = []\r\nfor i, chunk in enumerate(chunks):\r\nvector = get_embedding_ollama(chunk)\r\npoints.append(PointStruct(\r\nid=str(uuid.uuid4()),\r\nvector=vector,\r\npayload={\"text\": chunk}\r\n))\r\n\r\nclient.upsert(collection_name=COLLECTION_NAME, points=points)\r\nprint(f\"{len(points)} Chunks erfolgreich eingef\u00fcgt.\")<\/pre>\n<h3>Fase 5: Interrogazione tramite ricerca semantica<\/h3>\n<p>\u00c8 ora possibile inviare a Qdrant le query come vettore e fargli trovare le sezioni di testo pi\u00f9 rilevanti:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">query = \"Wie funktioniert ein RAG-System?\"\r\nquery_vector = get_embedding_ollama(query)\r\n\r\nresults = client.search(\r\ncollection_name=COLLECTION_NAME,\r\nquery_vector=query_vector,\r\nlimit=3\r\n)\r\n\r\nfor r in results:\r\nprint(r.payload[\"text\"])<\/pre>\n<p>\u00c8 quindi possibile passare questi pezzi all'Ollama tramite un prompt di sistema, ad esempio, e farli formulare come risposta legata al contesto.<\/p>\n<h2>Chunking + esportazione JSON in FileMaker e altri database<\/h2>\n<p>In molti casi, il chunking pu\u00f2 gi\u00e0 avvenire in una soluzione di database esistente, ad esempio in FileMaker. Nel mio ambiente di lavoro funziona esattamente cos\u00ec: i dati di partenza, come i contenuti del sito web, le voci di supporto o gli articoli tecnici, sono gi\u00e0 disponibili in forma strutturata in FileMaker.<\/p>\n<p>Ecco come funziona il processo:<\/p>\n<ol>\n<li>I testi vengono suddivisi in sezioni di 300-500 caratteri all'interno di FileMaker, utilizzando la sua logica di chunking.<\/li>\n<li>A ogni brano viene assegnato il proprio ID e, se applicabile, i metadati (titolo, categoria, fonte, lingua, ecc.).<\/li>\n<li>Tutti i chunk vengono esportati automaticamente come file JSON, ad esempio in una directory specifica su un'unit\u00e0 di rete o direttamente sul disco rigido del server AI.<\/li>\n<li>Uno script Python sul server legge questi file JSON e li salva nel database Qdrant.<\/li>\n<\/ol>\n<h3>Esempio di un file chunk esportato (chunk_00017.json)<\/h3>\n<pre class=\"notranslate\" data-no-translation=\"\">{\r\n\"id\": \"00017\",\r\n\"text\": \"Dies ist ein einzelner Textabschnitt mit ca. 400 Zeichen, der aus einer gr\u00f6\u00dferen Quelle stammt. Er wurde in FileMaker vorbereitet und enth\u00e4lt alle relevanten Inhalte, die f\u00fcr eine semantische Suche ben\u00f6tigt werden.\",\r\n\"metadata\": {\r\n\"source\": \"support_center\",\r\n\"category\": \"Fehlermeldung\",\r\n\"language\": \"de\",\r\n\"title\": \"Drucker wird nicht erkannt\"\r\n}\r\n}<\/pre>\n<p>Lo script di importazione successivo pu\u00f2 essere eseguito automaticamente o regolarmente tramite il terminale, ad esempio tramite un cron job o una chiamata manuale:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">python3 import_json_chunks.py \/Users\/markus\/Desktop\/chunks\/<\/pre>\n<p>Lo script legge ogni pezzo JSON, genera il vettore corrispondente (ad esempio, tramite Ollama o SentenceTransformers) e trasferisce la voce al database Qdrant.<\/p>\n<p>Questo metodo non solo \u00e8 trasparente, ma pu\u00f2 anche essere combinato molto bene con le strutture informatiche esistenti, soprattutto nelle aziende che gi\u00e0 utilizzano l'FileMaker o che amano mappare tutto a livello centrale e controllato visivamente per motivi di chiarezza dei processi.<\/p>\n<h2>Collegare qualsiasi database all'AI locale<\/h2>\n<p>Con Ollama e Qdrant \u00e8 possibile configurare in breve tempo un sistema RAG completo e ad alte prestazioni sul Mac:<\/p>\n<ul>\n<li>Locale, senza cloud o abbonamento<\/li>\n<li>Espandibile, con i propri contenuti<\/li>\n<li>I dati sono al sicuro, poich\u00e9 nulla lascia il computer<\/li>\n<li>Efficienza, poich\u00e9 Qdrant rimane veloce anche su grandi quantit\u00e0 di dati<\/li>\n<\/ul>\n<p>Se volete usare la vostra IA non solo per chattare, ma come un vero e proprio sistema di conoscenza e memoria, questa combinazione \u00e8 un must. E funziona con poco sforzo, con il pieno controllo dei propri dati.<\/p>\n<hr \/>\n<h3>Indagine in corso sull'uso dei sistemi di intelligenza artificiale locali<\/h3>\n<div class='bootstrap-yop yop-poll-mc'>\n\t\t\t\t\t\t\t<div class=\"basic-yop-poll-container\" style=\"background-color:#ffffff; border:0px; border-style:solid; border-color:#000000; border-radius:5px; padding:0px 5px;\" data-id=\"9\" data-temp=\"basic-pretty\" data-skin=\"square\" data-cscheme=\"blue\" data-cap=\"0\" data-access=\"guest\" data-tid=\"\" data-uid=\"27bf916edb05534a191a92a5f5f9c8c1\" data-pid=\"4700\" data-resdet=\"votes-number,percentages\" data-show-results-to=\"guest\" data-show-results-moment=\"after-vote\" data-show-results-only=\"false\" data-show-message=\"true\" data-show-results-as=\"bar\" data-sort-results-by=\"as-defined\" data-sort-results-rule=\"asc\"data-is-ended=\"0\" data-percentages-decimals=\"2\" data-gdpr=\"no\" data-gdpr-sol=\"consent\" data-css=\".basic-yop-poll-container[data-uid] .basic-vote {\t\t\t\t\t\t\t\t\ttext-align: center;\t\t\t\t\t\t\t\t}\" data-counter=\"0\" data-load-with=\"1\" data-notification-section=\"top\"><div class=\"row\"><div class=\"col-md-12\"><div class=\"basic-inner\"><div class=\"basic-message hide\" style=\"border-left: 10px solid #008000; padding: 0px 10px;\" data-error=\"#ff0000\" data-success=\"#008000\"><p class=\"basic-message-text\" style=\"color:#000000; font-size:14px; font-weight:normal;\"><\/p><\/div><div class=\"basic-overlay hide\"><div class=\"basic-vote-options\"><\/div><div class=\"basic-preloader\"><div class=\"basic-windows8\"><div class=\"basic-wBall basic-wBall_1\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_2\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_3\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_4\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_5\"><div class=\"basic-wInnerBall\"><\/div><\/div><\/div><\/div><\/div><form class=\"basic-form\" action=\"\"><input type=\"hidden\" name=\"_token\" value=\"c3e34e44e9\" autocomplete=\"off\"><div class=\"basic-elements\"><div class=\"basic-element basic-question basic-question-text-vertical\" data-id=\"9\" data-uid=\"9219945eb7b20a31ef65259da449ef00\" data-type=\"question\" data-question-type=\"text\" data-required=\"yes\" data-allow-multiple=\"no\" data-min=\"1\" data-max=\"7\" data-display=\"vertical\" data-colnum=\"\" data-display-others=\"no\" data-others-color=\"\" data-others=\"\" data-others-max-chars=\"0\"><div class=\"basic-question-title\"><h5 style=\"color:#000000; font-size:16px; font-weight:normal; text-align:left;\">Cosa ne pensate del software di intelligenza artificiale in esecuzione locale, come MLX o Ollama?<\/h5><\/div><ul class=\"basic-answers\"><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"45\" data-type=\"text\" data-vn=\"186\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[45]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[45]\" name=\"answer[9]\" value=\"45\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Ingenious - finalmente indipendente dal cloud<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"46\" data-type=\"text\" data-vn=\"33\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[46]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[46]\" name=\"answer[9]\" value=\"46\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Interessante, ma (ancora) troppo complicato<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"47\" data-type=\"text\" data-vn=\"41\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[47]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[47]\" name=\"answer[9]\" value=\"47\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Lo prover\u00f2 presto<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"48\" data-type=\"text\" data-vn=\"6\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[48]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[48]\" name=\"answer[9]\" value=\"48\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Non ne ho bisogno: il cloud \u00e8 sufficiente per me.<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"49\" data-type=\"text\" data-vn=\"6\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[49]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[49]\" name=\"answer[9]\" value=\"49\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Non so esattamente di cosa si tratti.<\/span><\/label><\/div><\/li><\/ul><\/div><div class=\"clearfix\"><\/div><\/div><div class=\"basic-vote\"><a href=\"#\" class=\"button basic-vote-button\" role=\"button\" style=\"background:#027bb8; border:0px; border-style: solid; border-color:#000000; border-radius:5px; padding:10px 10px; color:#ffffff; font-size:14px; font-weight:normal;\">Voto<\/a><\/div><input type=\"hidden\" name=\"trp-form-language\" value=\"it\"\/><\/form><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n<hr \/>\n<h2>Prospettive: Cosa \u00e8 possibile con RAG, Ollama e Qdrant<\/h2>\n<p>L'impostazione descritta in questo articolo costituisce la base tecnica per un nuovo modo di gestire la conoscenza - locale, controllata ed espandibile in modo flessibile. Ma il viaggio non finisce qui. Una volta compresa l'interazione tra chunking, embedding, ricerca semantica e modelli linguistici, ci si render\u00e0 rapidamente conto della versatilit\u00e0 di questa architettura nella pratica.<\/p>\n<h3>1. connessione ai propri database<\/h3>\n<p>Che si tratti di FileMaker, MySQL, PostgreSQL o MongoDB, qualsiasi contenuto pu\u00f2 essere regolarmente estratto, spezzettato e inserito automaticamente nel database vettoriale mediante query mirate. Questo trasforma un database classico in una fonte di conoscenza ricercabile semanticamente. Soprattutto nei sistemi di supporto, negli archivi di prodotti o nelle biblioteche digitali, questo apre opzioni di accesso completamente nuove per i dipendenti o i clienti.<\/p>\n<h3>2. Importazione automatica di pagine web, PDF o documenti.<\/h3>\n<p>I contenuti non devono essere trasferiti manualmente. Con strumenti come BeautifulSoup, readability, pdfplumber o docx2txt, \u00e8 possibile importare automaticamente interi siti web, manuali PDF o documenti Word, convertirli in forma di testo e prepararli per il chunking. Ad esempio, i wiki tecnici, i portali dei clienti o la documentazione online possono essere aggiornati regolarmente e inseriti nel database RAG.<\/p>\n<h3>3. costruzione di conoscenze a lungo termine attraverso la strutturazione<\/h3>\n<p>A differenza di un'applicazione AI classica, che parte da zero a ogni domanda, una configurazione RAG consente di espandere e curare passo dopo passo la conoscenza sottostante. La selezione e la preparazione mirata dei pezzi crea una propria memoria semantica, che diventa pi\u00f9 preziosa a ogni inserimento.<\/p>\n<h3>4. connessione con i grafi della conoscenza (Neo4j)<\/h3>\n<p>Se volete fare un ulteriore passo avanti, potete non solo memorizzare le informazioni in modo semantico, ma anche collegarle logicamente. Con Neo4j, un database a grafo, le relazioni tra termini, persone, argomenti o categorie possono essere visualizzate e interrogate in modo specifico. Questo trasforma una raccolta di testi in un grafo di conoscenza strutturato che pu\u00f2 essere utilizzato sia dall'uomo che dall'intelligenza artificiale, ad esempio per visualizzare catene causali, sequenze temporali o cluster tematici.<\/p>\n<h3>5. utilizzare nei propri strumenti, app o chatbot<\/h3>\n<p>Una volta configurata, la logica RAG pu\u00f2 essere integrata in quasi tutte le applicazioni: come funzione di ricerca semantica in un'applicazione web interna, come ausilio intelligente per l'inserimento di dati in un sistema CRM o come chatbot con le proprie competenze sul sito web aziendale. Grazie all'utilizzo di API locali (ad esempio Ollama REST e Qdrant gRPC), tutti i componenti rimangono flessibili ed espandibili, anche al di l\u00e0 dei confini aziendali tradizionali.<\/p>\n<p>Coloro che hanno il coraggio di familiarizzare con questi strumenti creano le basi per sistemi di IA indipendenti e locali con un reale valore di utilit\u00e0 - in uno spirito di controllo, sovranit\u00e0 e chiarezza tecnica.<\/p>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-983 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 10px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-983 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">Argomenti attuali sul software ERP<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-983\" class=\"dpt-wrapper dpt-mag1 land1 dpt-cropped dpt-flex-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"digitales eigentum erkl\u00e4rt &#8211; so entstehen nachhaltige online-verm\u00f6genswerte\" data-id=\"4766\"  data-category=\"allgemein b\u00fccher gesellschaft ki-systeme\" data-post_tag=\"buch datenbanken denkmodelle digitales eigentum erp-software k\u00fcnstliche intelligenz prozesse publishing wordpress\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/it\/2026\/02\/la-proprieta-digitale-ha-spiegato-come-vengono-creati-gli-asset-online-sostenibili\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">La propriet\u00e0 digitale spiegata - Come vengono creati gli asset online sostenibili<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Cos&#039;\u00e8 la propriet\u00e0 digitale\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Digitales-Eigentum-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/it\/2026\/02\/la-proprieta-digitale-ha-spiegato-come-vengono-creati-gli-asset-online-sostenibili\/\" rel=\"bookmark\">La propriet\u00e0 digitale spiegata - Come vengono creati gli asset online sostenibili<\/a><\/h3><div class=\"dpt-meta1 dpt-meta\"><div class=\"dpt-author\"><a href=\"https:\/\/www.markus-schall.de\/it\/author\/admin\/\"><span>Markus Schall<\/span><\/a><\/div> - <div class=\"dpt-date\"><time datetime=\"2026-02-06T06:32:35+00:00\">6 febbraio 2026<\/time><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"filemaker-konferenz 2025: ki, community und ein unerwarteter vorfall\" data-id=\"2898\"  data-category=\"allgemein filemaker &amp; erp ki-systeme stories &amp; humor\" data-post_tag=\"datenbanken erp-software filemaker gfm-business k\u00fcnstliche intelligenz\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/it\/2025\/09\/conferenza-filemaker-2025-ki-community-e-un-incidente-inaspettato\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">FileMaker Conferenza 2025: AI, comunit\u00e0 e un incidente inaspettato<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"512\" class=\"attachment-full size-full\" alt=\"FileMaker Conferenza 2025: allarme antincendio con i vigili del fuoco\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1-300x150.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1-768x384.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1-18x9.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/it\/2025\/09\/conferenza-filemaker-2025-ki-community-e-un-incidente-inaspettato\/\" rel=\"bookmark\">FileMaker Conferenza 2025: AI, comunit\u00e0 e un incidente inaspettato<\/a><\/h3><div class=\"dpt-meta1 dpt-meta\"><div class=\"dpt-author\"><a href=\"https:\/\/www.markus-schall.de\/it\/author\/admin\/\"><span>Markus Schall<\/span><\/a><\/div> - <div class=\"dpt-date\"><time datetime=\"2025-09-18T07:29:18+00:00\">18 settembre 2025<\/time><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"gfm-dental 1.1 enth\u00e4lt konstanzpr\u00fcfung nach din 6868-157.\" data-id=\"2059\"  data-category=\"apple macos filemaker &amp; erp\" data-post_tag=\"apple erp-software filemaker\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/it\/2015\/05\/gfm-dental-11-contiene-il-test-di-costanza-secondo-din-6868-157\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">gFM-Dental 1.1 contiene il test di costanza secondo la norma DIN 6868-157.<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"630\" height=\"444\" class=\"attachment-full size-full\" alt=\"Eseguire il controllo di costanza in gFM-Dental\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/neue_konstanzpruefung_630.jpg\" data-dpt-sizes=\"(max-width: 630px) 100vw, 630px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/neue_konstanzpruefung_630.jpg 630w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/neue_konstanzpruefung_630-300x211.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/neue_konstanzpruefung_630-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/it\/2015\/05\/gfm-dental-11-contiene-il-test-di-costanza-secondo-din-6868-157\/\" rel=\"bookmark\">gFM-Dental 1.1 contiene il test di costanza secondo la norma DIN 6868-157.<\/a><\/h3><div class=\"dpt-meta1 dpt-meta\"><div class=\"dpt-author\"><a href=\"https:\/\/www.markus-schall.de\/it\/author\/admin\/\"><span>Markus Schall<\/span><\/a><\/div> - <div class=\"dpt-date\"><time datetime=\"2015-05-05T18:40:40+00:00\">5 maggio 2015<\/time><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"gfm-business und die zukunft des erp: lokale intelligenz statt cloud-abh\u00e4ngigkeit\" data-id=\"2956\"  data-category=\"apple iphone &amp; ipad apple macos filemaker &amp; erp ki-systeme\" data-post_tag=\"datenschutz digitales eigentum erp-software filemaker gfm-business k\u00fcnstliche intelligenz llm neo4j qdrant sprachmodell\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/it\/2025\/09\/gfm-business-e-il-futuro-dellerp-intelligenza-locale-anziche-dipendenza-dal-cloud\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">gFM-Business e il futuro dell'ERP: intelligenza locale anzich\u00e9 dipendenza dal cloud<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"gFM-Business e AI + grafico della conoscenza\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/it\/2025\/09\/gfm-business-e-il-futuro-dellerp-intelligenza-locale-anziche-dipendenza-dal-cloud\/\" rel=\"bookmark\">gFM-Business e il futuro dell'ERP: intelligenza locale anzich\u00e9 dipendenza dal cloud<\/a><\/h3><div class=\"dpt-meta1 dpt-meta\"><div class=\"dpt-author\"><a href=\"https:\/\/www.markus-schall.de\/it\/author\/admin\/\"><span>Markus Schall<\/span><\/a><\/div> - <div class=\"dpt-date\"><time datetime=\"2025-09-26T06:41:39+00:00\">26 settembre 2025<\/time><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\n<hr \/>\n<h2>Domande frequenti su RAG con Ollama + Qdrant<\/h2>\n<h3>1. Cos'\u00e8 un database RAG e a cosa serve?<\/h3>\n<p>Un database RAG (Retrieval Augmented Generation) combina un database vettoriale con un modello linguistico. Consente di rendere semanticamente ricercabili i propri contenuti, ad esempio la documentazione o i siti web, in modo che i modelli di intelligenza artificiale possano accedere in modo specifico alle sezioni pertinenti del proprio database.<\/p>\n<h3>2 Cosa significa \"chunking\" in questo contesto?<\/h3>\n<p>Il chunking consiste nel suddividere testi lunghi in sezioni (chunks) pi\u00f9 piccole e coerenti, di solito tra i 200 e i 500 caratteri. In questo modo, le singole sezioni di testo possono essere salvate in modo efficiente nel database vettoriale e recuperate in un secondo momento in caso di domande.<\/p>\n<h3>3. Perch\u00e9 non \u00e8 possibile salvare interi testi in Qdrant?<\/h3>\n<p>Perch\u00e9 i modelli di intelligenza artificiale e le ricerche vettoriali funzionano con testi di lunghezza limitata. Documenti di grandi dimensioni potrebbero \"nascondere\" contenuti importanti o renderli imprecisi. Il chunking aumenta l'accuratezza perch\u00e9 vengono confrontate sezioni specifiche anzich\u00e9 testi completi.<\/p>\n<h3>4. Posso utilizzare contenuti provenienti da qualsiasi fonte?<\/h3>\n<p>S\u00ec, purch\u00e9 si disponga di testi in forma modificabile (ad esempio come testo semplice, HTML, Markdown, PDF, voci FileMaker, ecc.), \u00e8 possibile prepararli, suddividerli e integrarli in Qdrant. Sono possibili anche fonti miste.<\/p>\n<h3>5. Devo essere in grado di programmare per costruire un sistema di questo tipo?<\/h3>\n<p>La conoscenza di base del terminale e di Python \u00e8 utile, ma non essenziale. Molti passaggi (ad esempio, il chunking in FileMaker, l'esportazione JSON) possono essere implementati visivamente e automaticamente. Lo script di importazione di Qdrant pu\u00f2 essere facilmente personalizzato.<\/p>\n<h3>6. Posso gestire anche pi\u00f9 documenti o categorie?<\/h3>\n<p>S\u00ec, ogni brano pu\u00f2 contenere metadati, ad esempio titolo, fonte, lingua o categoria. Questi possono essere presi in considerazione durante la ricerca per filtrare i risultati in modo pi\u00f9 specifico.<\/p>\n<h3>7 Quali modelli sono adatti alla generazione di embedding?<\/h3>\n<p>\u00c8 possibile utilizzare un modello locale tramite Ollama (ad esempio mistral, llama2, gemma) o un modello di incorporamento separato, come all-MiniLM di sentence-transformers. \u00c8 importante che il modello generi gli output di incorporazione come vettori.<\/p>\n<h3>8. Come si avvia Qdrant sul Mac?<\/h3>\n<p>Il modo pi\u00f9 semplice \u00e8 tramite il comando Docker:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 -v qdrant_storage:\/qdrant\/storage qdrant\/qdrant<\/pre>\n<p>Qdrant viene quindi eseguito sotto http:\/\/localhost:6333<\/p>\n<h3>9. Quanto possono essere grandi i miei volumi di dati?<\/h3>\n<p>Qdrant \u00e8 molto performante e pu\u00f2 facilmente gestire decine o centinaia di migliaia di chunk. La limitazione principale \u00e8 rappresentata dalla RAM e dallo spazio di archiviazione, non dal numero.<\/p>\n<h3>10. funziona anche con l'FileMaker?<\/h3>\n<p>S\u00ec, \u00e8 possibile eseguire tutte le operazioni di chunking e di esportazione JSON direttamente in FileMaker. I chunks vengono esportati come singoli file JSON, che vengono poi importati in Qdrant tramite uno script Python, in modo completamente indipendente dal sistema originale.<\/p>\n<h3>11. Posso eseguire questa operazione anche su un altro server invece che su Mac?<\/h3>\n<p>Assolutamente s\u00ec. La configurazione funziona anche su server Linux, Raspberry Pi o nel cloud (se lo si desidera). Docker lo rende indipendente dalla piattaforma. Per un uso produttivo, di solito si consiglia un server con pi\u00f9 RAM e supporto GPU.<\/p>\n<h3>12. Come posso combinare la ricerca vettoriale con Ollama?<\/h3>\n<p>Per prima cosa si crea un vettore per una domanda dell'utente tramite Ollama (Embedding API), lo si utilizza per cercare i pezzi pi\u00f9 rilevanti in Qdrant e li si fornisce al modello linguistico come contesto. Ollama elabora quindi la domanda + le informazioni rilevanti per il contesto e genera una risposta fondata.<\/p>\n<p>Immagine (c) geralt @ pixabay<\/p>","protected":false},"excerpt":{"rendered":"<p>In un mondo di informazioni sempre pi\u00f9 confuso, diventa sempre pi\u00f9 importante rendere i propri database ricercabili in modo mirato, non attraverso le classiche ricerche full-text, ma attraverso risposte semanticamente rilevanti. \u00c8 proprio qui che entra in gioco il principio del database RAG, una soluzione di ricerca supportata dall'intelligenza artificiale e composta da due componenti centrali:<\/p>","protected":false},"author":1,"featured_media":2768,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":1045,"footnotes":""},"categories":[431,3],"tags":[440,452,471,435,433,437,432,450,451],"class_list":["post-2764","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ki-systeme","category-filemaker","tag-datenbanken","tag-docker","tag-kuenstliche-intelligenz","tag-llama","tag-llm","tag-mistral","tag-ollama","tag-qdrant","tag-vektordatenbank"],"_links":{"self":[{"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/posts\/2764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/comments?post=2764"}],"version-history":[{"count":14,"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/posts\/2764\/revisions"}],"predecessor-version":[{"id":3401,"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/posts\/2764\/revisions\/3401"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/media\/2768"}],"wp:attachment":[{"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/media?parent=2764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/categories?post=2764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markus-schall.de\/it\/wp-json\/wp\/v2\/tags?post=2764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}