{"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-avec-ollama-et-qdrant-comme-moteur-de-recherche-universel-pour-ses-propres-donnees","status":"publish","type":"post","link":"https:\/\/www.markus-schall.de\/fr\/2025\/08\/rag-avec-ollama-et-qdrant-comme-moteur-de-recherche-universel-pour-ses-propres-donnees\/","title":{"rendered":"RAG avec Ollama et Qdrant comme moteur de recherche universel pour ses propres donn\u00e9es"},"content":{"rendered":"<p>Dans un monde de l'information de plus en plus confus, il est de plus en plus important de rendre ses propres bases de donn\u00e9es consultables de mani\u00e8re cibl\u00e9e - non pas par une recherche classique en plein texte, mais par des r\u00e9ponses s\u00e9mantiquement pertinentes. C'est pr\u00e9cis\u00e9ment l\u00e0 qu'intervient le principe de la base de donn\u00e9es RAG, c'est-\u00e0-dire une solution de recherche assist\u00e9e par l'IA, qui se compose de deux \u00e9l\u00e9ments centraux :<!--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-849 { --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-849 { --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\">Sujets d'actualit\u00e9 sur l'intelligence artificielle<\/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-849\" 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=\"ki als sparringspartner nutzen: wie denken im dialog produktiver wird\" data-id=\"4121\"  data-category=\"b\u00fccher ki-systeme tipps &amp; anleitungen\" data-post_tag=\"buch datenlogik denkmodelle k\u00fcnstliche intelligenz lernen llm 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\/fr\/2025\/12\/utiliser-ki-comme-sparring-partner-comment-penser-de-maniere-plus-productive-en-dialoguant\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Utiliser l'IA comme sparring-partner : Comment la r\u00e9flexion en dialogue devient plus productive<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"L&#039;IA comme partenaire d&#039;\u00e9pargne\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-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\/fr\/2025\/12\/utiliser-ki-comme-sparring-partner-comment-penser-de-maniere-plus-productive-en-dialoguant\/\" rel=\"bookmark\">Utiliser l'IA comme sparring-partner : Comment la r\u00e9flexion en dialogue devient plus productive<\/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=\"wie tiere zeit wahrnehmen \u2013 und was das f\u00fcr die zukunft der ki bedeutet\" data-id=\"4918\"  data-category=\"allgemein gesellschaft ki-systeme\" data-post_tag=\"denkmodelle erfahrungen k\u00fcnstliche intelligenz llm portrait prozesse 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\/fr\/2026\/02\/comment-les-animaux-percoivent-le-temps-et-ce-que-cela-signifie-pour-lavenir-du-ki\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Comment les animaux per\u00e7oivent le temps - et ce que cela signifie pour l'avenir de l'IA<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Animaux, IA et perception du temps\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Tiere-KI-Zeitwahrnehmung.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Tiere-KI-Zeitwahrnehmung.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Tiere-KI-Zeitwahrnehmung-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Tiere-KI-Zeitwahrnehmung-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Tiere-KI-Zeitwahrnehmung-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\/fr\/2026\/02\/comment-les-animaux-percoivent-le-temps-et-ce-que-cela-signifie-pour-lavenir-du-ki\/\" rel=\"bookmark\">Comment les animaux per\u00e7oivent le temps - et ce que cela signifie pour l'avenir de l'IA<\/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=\"lora-training: wie filemaker 2025 das feintuning gro\u00dfer sprachmodelle vereinfacht\" data-id=\"3220\"  data-category=\"filemaker &amp; erp ki-systeme\" data-post_tag=\"datenbanken filemaker k\u00fcnstliche intelligenz llm mlx 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\/fr\/2025\/10\/lora-training-comment-filemaker-2025-facilite-le-reglage-fin-des-grands-modeles-linguistiques\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Formation LoRA : comment FileMaker 2025 simplifie le r\u00e9glage fin des grands mod\u00e8les linguistiques<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"LoRA Fine tuning - FileMaker 2025\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker-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\/fr\/2025\/10\/lora-training-comment-filemaker-2025-facilite-le-reglage-fin-des-grands-modeles-linguistiques\/\" rel=\"bookmark\">Formation LoRA : comment FileMaker 2025 simplifie le r\u00e9glage fin des grands mod\u00e8les linguistiques<\/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>d'une base de donn\u00e9es vectorielle (comme Qdrant), dans laquelle tout contenu est stock\u00e9 sous forme de vecteurs num\u00e9riques,<\/li>\n<li>et un mod\u00e8le linguistique (par exemple via Ollama) qui combine intelligemment les requ\u00eates respectives avec le contenu appropri\u00e9.<\/li>\n<\/ol>\n<p>Au lieu de laisser le mod\u00e8le \"deviner\", cette architecture utilise ses propres sources de connaissances - comme par exemple :<\/p>\n<ul>\n<li>des documentaires r\u00e9dig\u00e9s par eux-m\u00eames,<\/li>\n<li>le contenu des pages web,<\/li>\n<li>des manuels techniques,<\/li>\n<li>Bases de donn\u00e9es de support,<\/li>\n<li>Listes de questions fr\u00e9quentes,<\/li>\n<li>ou n'importe quelle source de texte archiv\u00e9e (par exemple, \u00e0 partir d'anciennes bases de donn\u00e9es).<\/li>\n<\/ul>\n<p>Ce qui est d\u00e9cisif : Toutes ces sources peuvent \u00eatre pr\u00e9par\u00e9es et \"chunk\u00e9es\" (c'est-\u00e0-dire d\u00e9coup\u00e9es en petites unit\u00e9s de texte) au pr\u00e9alable, afin de pouvoir fournir ult\u00e9rieurement des extraits de texte aussi pertinents que possible pour une question d'utilisateur.<\/p>\n<p>Que l'on souhaite donc rendre analysable une base de connaissances propre, une documentation interne ou des archives de produits enti\u00e8res - avec <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> r\u00e9ussit \u00e0 le faire sur son propre Mac, sans contrainte de cloud et avec un contr\u00f4le total sur les donn\u00e9es.<\/p>\n<h2>Qu'est-ce qu'une base de donn\u00e9es RAG - et pourquoi m\u00eame \"chunking\" ?<\/h2>\n<p>RAG est l'abr\u00e9viation de Retrieval-Augmented Generation, c'est-\u00e0-dire qu'il s'agit d'une IA qui g\u00e9n\u00e8re du texte et qui fournit une aide \u00e0 la recherche d'informations. Au lieu d'entra\u00eener un mod\u00e8le linguistique comme GPT, Mistral ou LLaMA uniquement sur ce qu'il \"sait\" d\u00e9j\u00e0, il peut acc\u00e9der \u00e0 des informations suppl\u00e9mentaires qui lui sont propres gr\u00e2ce \u00e0 une base de connaissances connect\u00e9e (g\u00e9n\u00e9ralement une base de donn\u00e9es dite vectorielle).<\/p>\n<p><strong>exemple :<\/strong><\/p>\n<blockquote><p>Si l'on demande \u00e0 un mod\u00e8le linguistique : \"Que dit ma d\u00e9claration d'imp\u00f4ts de 2023 ?\", il devra deviner sans avoir acc\u00e8s aux donn\u00e9es originales. Mais s'il a acc\u00e8s \u00e0 une repr\u00e9sentation vectorielle de ce document, stock\u00e9e localement, il peut r\u00e9cup\u00e9rer les informations correspondantes de mani\u00e8re cibl\u00e9e et les int\u00e9grer dans sa r\u00e9ponse.<\/p><\/blockquote>\n<h3>Pourquoi les contenus sont \"chunk\u00e9s\" ?<\/h3>\n<p>Les documents, les pages web ou les livres sont g\u00e9n\u00e9ralement beaucoup trop longs pour \u00eatre trait\u00e9s ou recherch\u00e9s en une seule fois. M\u00eame les mod\u00e8les linguistiques modernes ont des limites de jetons - c'est-\u00e0-dire une longueur de texte limit\u00e9e qu'ils peuvent comprendre en une seule fois (souvent environ 4.000 \u00e0 8.000 jetons, voire 32.000 ou plus pour les mod\u00e8les les plus r\u00e9cents).<\/p>\n<p>C'est pourquoi l'astuce suivante est utilis\u00e9e chez RAG :<\/p>\n<ol>\n<li>Le texte original est divis\u00e9 en petites sections (chunks).<\/li>\n<li>Chaque chunk est converti en un vecteur par un mod\u00e8le de langage (embedding).<\/li>\n<li>Ces vecteurs sont stock\u00e9s dans une base de donn\u00e9es telle que Qdrant.<\/li>\n<li>En cas de requ\u00eate de l'utilisateur, l'invite est \u00e9galement traduite en un vecteur - et les chunks les plus similaires sont r\u00e9cup\u00e9r\u00e9s.<\/li>\n<li>Ces contenus sont ensuite ajout\u00e9s au mod\u00e8le linguistique - par exemple par le biais d'une invite syst\u00e8me ou d'une injection de contexte.<\/li>\n<\/ol>\n<p>On obtient ainsi un syst\u00e8me qui se comporte comme une m\u00e9moire - toutefois sans mots-cl\u00e9s classiques ou recherche plein texte, mais purement bas\u00e9 sur la signification (s\u00e9mantique).<\/p>\n<h2>Conditions pr\u00e9alables et objectif<\/h2>\n<p>Nous construisons un syst\u00e8me RAG local compos\u00e9 de :<\/p>\n<ul>\n<li>un LLM local via Ollama<\/li>\n<li>d'une base de donn\u00e9es vectorielle appel\u00e9e Qdrant<\/li>\n<li>un script Python qui chunked, vectorise et ins\u00e8re des textes dans la base de donn\u00e9es<\/li>\n<li>en option : une interface simple ou une API de consultation<\/li>\n<\/ul>\n<p><strong>Plateforme cible : macOS (Intel ou Apple Silicon)<\/strong><\/p>\n<p>Condition pr\u00e9alable :<\/p>\n<ul>\n<li>macOS 12 ou plus r\u00e9cent (Monterey ou version ult\u00e9rieure)<\/li>\n<li>Connaissances de base sur les terminaux<\/li>\n<li>Python 3.10 ou plus r\u00e9cent<\/li>\n<li>Facultatif : Homebrew installiert<\/li>\n<\/ul>\n<h3>1\u00e8re \u00e9tape : Ollama 1TP12Animaux<\/h3>\n<p>Ollama est un outil l\u00e9ger qui permet de faire fonctionner des mod\u00e8les linguistiques locaux comme Mistral, LLaMA, Gemma ou Codellama sur son propre ordinateur, m\u00eame sans Internet.<\/p>\n<p>Installation sur le Mac :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">curl -fsSL https:\/\/ollama.com\/install.sh | sh<\/pre>\n<p>Il est \u00e9galement possible de programmer Ollama via Homebrew install :<br \/>\nbrew install ollama<\/p>\n<p>Apr\u00e8s l'installation :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">ollama run mistral<\/pre>\n<p>Cela t\u00e9l\u00e9charge le mod\u00e8le Mistral 7B et le d\u00e9marre localement. Ollama apporte une API REST que nous utiliserons plus tard pour la vectorisation. Tu peux bien s\u00fbr utiliser d'autres mod\u00e8les comme Gemma3 (12B), Mistral Small (24B) ou d'autres LLM.<\/p>\n<h3>\u00c9tape 2 : Qdrant 1TP12Animaux (base de donn\u00e9es locale des vecteurs)<\/h3>\n<p>Qdrant est une base de donn\u00e9es vectorielle rapide comme l'\u00e9clair, bas\u00e9e sur Rust. Elle est gratuite, open source et facile \u00e0 d\u00e9marrer sur Mac - de pr\u00e9f\u00e9rence via Docker. Si tu n'as pas encore install\u00e9 Docker sur ton Mac install, tu peux l'installer sur le site de l'association. <a href=\"https:\/\/www.docker.com\" target=\"_blank\" rel=\"noopener\"><strong>Site web de Docker<\/strong><\/a> et l'ex\u00e9cuter sur ton Mac en tant qu'application de bureau 1TP12 normale. Tu peux \u00e9galement lancer Docker via Homebrew install si tu utilises d\u00e9j\u00e0 Homebrew :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">brew install --cask docker<\/pre>\n<p>D\u00e9marrer ensuite Qdrant via 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 sera ensuite joignable \u00e0 l'adresse suivante :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">http:\/\/localhost:6333<\/pre>\n<p>Pour tester :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">curl http:\/\/localhost:6333\/collections<\/pre>\n<h3>3e \u00e9tape : pr\u00e9parer l'environnement Python<\/h3>\n<p>Pour le chunking, l'embedding et la communication avec Qdrant, nous avons besoin de Python.<\/p>\n<p>Pr\u00e9paration :<\/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>Si ollama n'est pas reconnu comme un paquet Python, utilise l'API REST directement par requests :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">pip install requests<\/pre>\n<h3>4e \u00e9tape : Chunking et embedding<\/h3>\n<p>Tu trouveras ci-dessous un exemple de script qui divise un document texte en chunks, cr\u00e9e des embeddings via Ollama et les ins\u00e8re dans 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>\u00c9tape 5 : Interrogation via la recherche s\u00e9mantique<\/h3>\n<p>Tu peux maintenant envoyer des requ\u00eates sous forme de vecteur \u00e0 Qdrant et faire en sorte qu'il trouve les sections de texte les plus pertinentes :<\/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>Tu peux ensuite transmettre ces chunks \u00e0 Ollama, par exemple via une invite syst\u00e8me, et les faire formuler sous forme de r\u00e9ponse contextuelle.<\/p>\n<h2>Chunking + exportation JSON dans FileMaker et autres bases de donn\u00e9es<\/h2>\n<p>Dans de nombreux cas, le chunking peut d\u00e9j\u00e0 \u00eatre effectu\u00e9 dans une solution de base de donn\u00e9es existante - par exemple dans FileMaker. C'est exactement comme cela que cela fonctionne dans mon propre environnement de travail : les donn\u00e9es sources - comme le contenu des pages web, les entr\u00e9es de support ou les articles techniques - sont d\u00e9j\u00e0 disponibles sous forme structur\u00e9e dans FileMaker.<\/p>\n<p>Voici comment se d\u00e9roule le processus :<\/p>\n<ol>\n<li>Au sein de FileMaker, les textes sont divis\u00e9s en sections de 300 \u00e0 500 caract\u00e8res par exemple, selon une logique de chunking propre.<\/li>\n<li>Chaque chunk re\u00e7oit son propre identifiant ainsi que, le cas \u00e9ch\u00e9ant, des m\u00e9tadonn\u00e9es (titre, cat\u00e9gorie, source, langue, etc.).<\/li>\n<li>Tous les chunks sont automatiquement export\u00e9s sous forme de fichiers JSON - par exemple dans un r\u00e9pertoire sp\u00e9cifique sur un lecteur r\u00e9seau ou directement sur le disque dur du serveur d'IA.<\/li>\n<li>Un script Python sur le serveur lit ces fichiers JSON et les enregistre dans la base de donn\u00e9es Qdrant.<\/li>\n<\/ol>\n<h3>Exemple de fichier chunk export\u00e9 (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>Le script d'importation qui s'ensuit peut alors \u00eatre ex\u00e9cut\u00e9 automatiquement ou r\u00e9guli\u00e8rement via le terminal - par exemple via une t\u00e2che cron ou un appel manuel :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">python3 import_json_chunks.py \/Users\/markus\/Desktop\/chunks\/<\/pre>\n<p>Le script lit chaque chunk JSON, g\u00e9n\u00e8re le vecteur correspondant (par ex. via Ollama ou SentenceTransformers) et transmet l'entr\u00e9e \u00e0 la base de donn\u00e9es Qdrant.<\/p>\n<p>Cette m\u00e9thode n'est pas seulement transparente, elle se combine aussi tr\u00e8s bien avec les structures informatiques existantes - en particulier dans les entreprises qui utilisent d\u00e9j\u00e0 FileMaker ou qui, pour des raisons de clart\u00e9 des processus, aiment tout repr\u00e9senter de mani\u00e8re centralis\u00e9e et sous contr\u00f4le visuel.<\/p>\n<h2>Connecter n'importe quelle base de donn\u00e9es \u00e0 ton IA locale<\/h2>\n<p>Avec Ollama et Qdrant, il est possible de mettre en place un syst\u00e8me RAG complet et performant sur Mac en peu de temps :<\/p>\n<ul>\n<li>Local, sans cloud ni abonnement<\/li>\n<li>Extensible, avec des contenus propres<\/li>\n<li>S\u00e9curit\u00e9 des donn\u00e9es, car rien ne quitte l'ordinateur<\/li>\n<li>Efficace, car Qdrant reste rapide m\u00eame sur de grandes quantit\u00e9s de donn\u00e9es<\/li>\n<\/ul>\n<p>Celui qui veut utiliser son IA non seulement pour bavarder, mais aussi comme un v\u00e9ritable syst\u00e8me de connaissances et de m\u00e9moire, ne peut gu\u00e8re passer \u00e0 c\u00f4t\u00e9 de cette combinaison. Et : cela fonctionne d\u00e9j\u00e0 avec peu d'efforts - tout en gardant un contr\u00f4le total sur ses propres donn\u00e9es.<\/p>\n<hr \/>\n<h3>Derni\u00e8re enqu\u00eate sur l'utilisation des syst\u00e8mes d'IA locaux<\/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=\"319b8aaab5c7a562b03747e79fecb033\" data-pid=\"3220\" 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=\"5d89dec8a4\" autocomplete=\"off\"><div class=\"basic-elements\"><div class=\"basic-element basic-question basic-question-text-vertical\" data-id=\"9\" data-uid=\"977f5cd7341d2c68e20312741eb21ee5\" 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;\">Quelle est ta position sur les logiciels d'intelligence artificielle fonctionnant en local, comme MLX ou Ollama ?<\/h5><\/div><ul class=\"basic-answers\"><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"45\" data-type=\"text\" data-vn=\"143\" 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;\">Ing\u00e9nieux - enfin ind\u00e9pendant du cloud<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"46\" data-type=\"text\" data-vn=\"26\" 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;\">Int\u00e9ressant, mais (encore) trop compliqu\u00e9<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"47\" data-type=\"text\" data-vn=\"28\" 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;\">Je vais bient\u00f4t l'essayer<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"48\" data-type=\"text\" data-vn=\"5\" 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;\">Je n'en ai pas besoin - le cloud me suffit<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"49\" data-type=\"text\" data-vn=\"4\" 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;\">Je ne sais pas de quoi il s'agit exactement.<\/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;\">Votez<\/a><\/div><input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n<hr \/>\n<h2>Perspectives d'avenir : Ce qui sera possible avec RAG, Ollama et Qdrant<\/h2>\n<p>La configuration d\u00e9crite dans cet article constitue la base technique d'une nouvelle forme de gestion des connaissances - locale, contr\u00f4l\u00e9e et extensible de mani\u00e8re flexible. Mais le voyage ne s'arr\u00eate pas l\u00e0. Une fois que l'on a compris l'interaction entre le chunking, l'embedding, la recherche s\u00e9mantique et les mod\u00e8les de langage, on se rend vite compte de la polyvalence de cette architecture dans la pratique.<\/p>\n<h3>1. connexion \u00e0 des bases de donn\u00e9es propres<\/h3>\n<p>Qu'il s'agisse de FileMaker, MySQL, PostgreSQL ou MongoDB, des requ\u00eates cibl\u00e9es permettent d'extraire r\u00e9guli\u00e8rement n'importe quel contenu, de le chunk\u00e9riser et de l'ins\u00e9rer automatiquement dans la base de donn\u00e9es vectorielle. Une base de donn\u00e9es classique se transforme ainsi en une source de connaissances pouvant faire l'objet de recherches s\u00e9mantiques. En particulier dans les syst\u00e8mes de support, les archives de produits ou les biblioth\u00e8ques num\u00e9riques, cela ouvre de toutes nouvelles possibilit\u00e9s d'acc\u00e8s pour les collaborateurs ou les clients.<\/p>\n<h3>2. importation automatique de pages web, de PDF ou de documents<\/h3>\n<p>Les contenus ne doivent pas \u00eatre transf\u00e9r\u00e9s manuellement. Des outils comme BeautifulSoup, readability, pdfplumber ou docx2txt permettent de lire automatiquement des pages web enti\u00e8res, des manuels PDF ou des documents Word, de les mettre en forme de texte et de les pr\u00e9parer pour le chunking. Ainsi, les wikis techniques, les portails clients ou les documentations en ligne, par exemple, peuvent \u00eatre aliment\u00e9s r\u00e9guli\u00e8rement et de mani\u00e8re actualis\u00e9e dans la base de donn\u00e9es RAG.<\/p>\n<h3>3. d\u00e9veloppement des connaissances \u00e0 long terme gr\u00e2ce \u00e0 la structuration<\/h3>\n<p>Contrairement \u00e0 une application d'IA classique qui part de z\u00e9ro \u00e0 chaque question, une configuration RAG permet d'\u00e9largir et de curater progressivement les connaissances sous-jacentes. En s\u00e9lectionnant et en pr\u00e9parant les chunks de mani\u00e8re cibl\u00e9e, on cr\u00e9e sa propre m\u00e9moire s\u00e9mantique, dont la valeur augmente \u00e0 chaque entr\u00e9e.<\/p>\n<h3>4. connexion avec les graphes de connaissances (Neo4j)<\/h3>\n<p>Si l'on veut aller encore plus loin, on peut non seulement classer les informations de mani\u00e8re s\u00e9mantique, mais aussi les relier de mani\u00e8re logique. Neo4j, une base de donn\u00e9es de graphes, permet de visualiser les relations entre les termes, les personnes, les th\u00e8mes ou les cat\u00e9gories et de les interroger de mani\u00e8re cibl\u00e9e. Ainsi, une collection de textes devient un graphe de connaissances structur\u00e9 qui peut \u00eatre utilis\u00e9 aussi bien par l'homme que par l'IA - par exemple pour rendre visibles des cha\u00eenes de causalit\u00e9, des d\u00e9roulements temporels ou des clusters th\u00e9matiques.<\/p>\n<h3>5. utilisation dans des outils, des applications ou des chatbots personnels<\/h3>\n<p>Une fois configur\u00e9e, la logique RAG peut \u00eatre int\u00e9gr\u00e9e dans presque toutes les applications : comme fonction de recherche s\u00e9mantique dans une application web interne, comme aide \u00e0 la saisie intelligente dans un syst\u00e8me CRM ou comme chatbot avec sa propre expertise sur le site web de l'entreprise. Gr\u00e2ce \u00e0 l'utilisation d'API locales (par ex. Ollama REST et Qdrant gRPC), tous les composants restent flexibles et extensibles - m\u00eame au-del\u00e0 des fronti\u00e8res classiques de l'entreprise.<\/p>\n<p>Ceux qui ont le courage de se familiariser avec ces outils jettent les bases de syst\u00e8mes d'IA ind\u00e9pendants et locaux ayant une r\u00e9elle valeur d'usage, dans un esprit de contr\u00f4le, de souverainet\u00e9 et de clart\u00e9 technique.<\/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-850 { --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-850 { --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\">Th\u00e8mes actuels autour des logiciels 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-850\" 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=\"reichweite ist kein eigentum \u2013 warum sichtbarkeit heute nicht mehr ausreicht\" data-id=\"3994\"  data-category=\"allgemein filemaker &amp; erp gesellschaft kunst &amp; kultur\" data-post_tag=\"datenlogik datenschutz denkmodelle digitales eigentum erp-software\">\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\/fr\/2025\/12\/la-portee-nest-pas-la-propriete-pourquoi-la-visibilite-ne-suffit-plus-aujourdhui\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">La port\u00e9e n'est pas la propri\u00e9t\u00e9 - Pourquoi la visibilit\u00e9 ne suffit plus aujourd'hui<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Port\u00e9e vs. propri\u00e9t\u00e9\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-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\/fr\/2025\/12\/la-portee-nest-pas-la-propriete-pourquoi-la-visibilite-ne-suffit-plus-aujourdhui\/\" rel=\"bookmark\">La port\u00e9e n'est pas la propri\u00e9t\u00e9 - Pourquoi la visibilit\u00e9 ne suffit plus aujourd'hui<\/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=\"digitale abh\u00e4ngigkeit: wie wir unsere selbstbestimmung an die cloud verloren haben\" data-id=\"2986\"  data-category=\"apple iphone &amp; ipad apple macos filemaker &amp; erp gesellschaft ki-systeme tipps &amp; anleitungen\" data-post_tag=\"apple datenlogik datenschutz digitales eigentum erfahrungen erp-software gfm-business\">\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\/fr\/2025\/10\/la-dependance-numerique-comment-nous-avons-perdu-notre-autodetermination-au-profit-du-cloud\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">D\u00e9pendance num\u00e9rique : comment nous avons perdu notre autod\u00e9termination au profit du cloud<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"D\u00e9pendance num\u00e9rique avec les syst\u00e8mes en nuage\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-abhaengigkeit-cloud.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-abhaengigkeit-cloud.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-abhaengigkeit-cloud-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-abhaengigkeit-cloud-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-abhaengigkeit-cloud-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\/fr\/2025\/10\/la-dependance-numerique-comment-nous-avons-perdu-notre-autodetermination-au-profit-du-cloud\/\" rel=\"bookmark\">D\u00e9pendance num\u00e9rique : comment nous avons perdu notre autod\u00e9termination au profit du cloud<\/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=\"sehen wir uns auf der filemaker-konferenz fmk 2025 in hamburg?\" data-id=\"2670\"  data-category=\"filemaker &amp; erp\" data-post_tag=\"erp-software filemaker gfm-business\">\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\/fr\/2025\/08\/rendez-vous-a-la-conference-filemaker-fmk-2025-a-hambourg\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Rendez-vous \u00e0 la conf\u00e9rence FileMaker FMK 2025 \u00e0 Hambourg ?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"2560\" height=\"491\" class=\"attachment-full size-full\" alt=\"FileMaker Conf\u00e9rence FMK2025\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-scaled.jpg\" data-dpt-sizes=\"(max-width: 2560px) 100vw, 2560px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-scaled.jpg 2560w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-300x58.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-1024x196.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-768x147.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-1536x295.jpg 1536w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-2048x393.jpg 2048w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/filemaker-konferenz-fmk2025-18x3.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 19%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/fr\/2025\/08\/rendez-vous-a-la-conference-filemaker-fmk-2025-a-hambourg\/\" rel=\"bookmark\">Rendez-vous \u00e0 la conf\u00e9rence FileMaker FMK 2025 \u00e0 Hambourg ?<\/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<h2>Foire aux questions sur RAG avec Ollama + Qdrant<\/h2>\n<h3>1. qu'est-ce qu'une base de donn\u00e9es RAG - et \u00e0 quoi sert-elle ?<\/h3>\n<p>Une base de donn\u00e9es RAG (Retrieval-Augmented Generation) combine une base de donn\u00e9es vectorielle avec un mod\u00e8le linguistique. Elle permet de rendre ses propres contenus - par exemple des documentations ou des pages web - s\u00e9mantiquement consultables, de sorte que les mod\u00e8les d'IA puissent acc\u00e9der de mani\u00e8re cibl\u00e9e \u00e0 des extraits pertinents de sa propre base de donn\u00e9es.<\/p>\n<h3>2. que signifie \"chunking\" dans ce contexte ?<\/h3>\n<p>Le chunking consiste \u00e0 d\u00e9couper de longs textes en sections (chunks) plus petites et coh\u00e9rentes - g\u00e9n\u00e9ralement entre 200 et 500 caract\u00e8res. Cela permet de stocker efficacement des parties de texte individuelles dans la base de donn\u00e9es vectorielle et de les retrouver plus tard en cas de questions.<\/p>\n<h3>3. pourquoi ne peut-on pas simplement enregistrer des textes entiers dans Qdrant ?<\/h3>\n<p>Parce que les mod\u00e8les d'IA et les recherches vectorielles fonctionnent avec des longueurs de texte limit\u00e9es. De grands documents \"cacheraient\" des contenus importants ou les rendraient impr\u00e9cis. Le chunking augmente la pr\u00e9cision, car des sections cibl\u00e9es sont compar\u00e9es au lieu de textes complets.<\/p>\n<h3>4. puis-je utiliser des contenus provenant de n'importe quelle source ?<\/h3>\n<p>Oui, tant que tu as les textes sous une forme modifiable (par exemple en texte brut, HTML, Markdown, PDF, entr\u00e9es FileMaker, etc.), tu peux les pr\u00e9parer, les chunk et les int\u00e9grer dans Qdrant. Des sources mixtes sont \u00e9galement possibles.<\/p>\n<h3>5. dois-je savoir programmer pour construire un tel syst\u00e8me ?<\/h3>\n<p>Des connaissances de base en Terminal et Python sont utiles, mais pas obligatoires. De nombreuses \u00e9tapes (par exemple le chunking dans FileMaker, l'exportation JSON) peuvent \u00eatre r\u00e9alis\u00e9es visuellement et de mani\u00e8re automatis\u00e9e. Le script d'importation Qdrant peut \u00eatre facilement adapt\u00e9.<\/p>\n<h3>6. puis-je \u00e9galement g\u00e9rer plusieurs documents ou cat\u00e9gories ?<\/h3>\n<p>Oui, chaque chunk peut contenir des m\u00e9tadonn\u00e9es, par exemple le titre, la source, la langue ou la cat\u00e9gorie. Celles-ci peuvent \u00eatre prises en compte lors de la recherche afin de filtrer les r\u00e9sultats de mani\u00e8re plus cibl\u00e9e.<\/p>\n<h3>7. quels sont les mod\u00e8les adapt\u00e9s \u00e0 la cr\u00e9ation d'embeddings ?<\/h3>\n<p>Tu peux utiliser soit un mod\u00e8le local via Ollama (par exemple mistral, llama2, gemma), soit un mod\u00e8le d'embedding s\u00e9par\u00e9 comme all-MiniLM de sentence-transformers. L'important est que le mod\u00e8le g\u00e9n\u00e8re des sorties d'embedding sous forme de vecteurs.<\/p>\n<h3>8. comment d\u00e9marrer Qdrant sur Mac ?<\/h3>\n<p>Le plus simple est d'utiliser la commande 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 fonctionne ensuite sous http:\/\/localhost:6333<\/p>\n<h3>9. quelle est la taille maximale de mes donn\u00e9es ?<\/h3>\n<p>Qdrant est tr\u00e8s performant et peut g\u00e9rer sans probl\u00e8me des dizaines ou des centaines de milliers de chunks. La principale limite est celle de la RAM et de la m\u00e9moire, pas celle du nombre.<\/p>\n<h3>10. est-ce que cela fonctionne aussi avec FileMaker ?<\/h3>\n<p>Oui, tu peux faire tout le chunking et l'export JSON directement dans FileMaker. Les chunks sont export\u00e9s sous forme de fichiers JSON individuels, qui sont ensuite import\u00e9s dans Qdrant via un script Python - totalement ind\u00e9pendant du syst\u00e8me d'origine.<\/p>\n<h3>11. est-ce que je peux aussi faire fonctionner cela sur un autre serveur au lieu de Mac ?<\/h3>\n<p>Tout \u00e0 fait. L'installation fonctionne \u00e9galement sous des serveurs Linux, Raspberry Pi, ou dans le cloud (si on le souhaite). Docker le rend ind\u00e9pendant de la plateforme. Pour une utilisation productive, il est g\u00e9n\u00e9ralement recommand\u00e9 d'utiliser un serveur avec plus de RAM et un support GPU.<\/p>\n<h3>12. comment combiner la recherche vectorielle avec Ollama ?<\/h3>\n<p>Tu cr\u00e9es d'abord un vecteur pour une question d'utilisateur via Ollama (Embedding API), tu l'utilises pour rechercher les chunks les plus pertinents dans Qdrant et tu les donnes au mod\u00e8le linguistique comme contexte. Ollama traite ensuite la question + les informations contextuelles pertinentes et g\u00e9n\u00e8re une r\u00e9ponse fond\u00e9e.<\/p>\n<p>Image (c) geralt @ pixabay<\/p>","protected":false},"excerpt":{"rendered":"<p>Dans un monde de l'information de plus en plus confus, il est de plus en plus important de rendre ses propres bases de donn\u00e9es consultables de mani\u00e8re cibl\u00e9e - non pas par une recherche classique en plein texte, mais par des r\u00e9ponses s\u00e9mantiquement pertinentes. C'est pr\u00e9cis\u00e9ment l\u00e0 qu'intervient le principe de la base de donn\u00e9es RAG, c'est-\u00e0-dire une solution de recherche assist\u00e9e par l'IA, qui se compose de deux \u00e9l\u00e9ments centraux :<\/p>","protected":false},"author":1,"featured_media":2768,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":767,"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\/fr\/wp-json\/wp\/v2\/posts\/2764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/comments?post=2764"}],"version-history":[{"count":14,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/posts\/2764\/revisions"}],"predecessor-version":[{"id":3401,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/posts\/2764\/revisions\/3401"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/media\/2768"}],"wp:attachment":[{"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/media?parent=2764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/categories?post=2764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/tags?post=2764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}