{"id":5306,"date":"2026-03-30T05:55:15","date_gmt":"2026-03-30T05:55:15","guid":{"rendered":"https:\/\/www.markus-schall.de\/?p=5306"},"modified":"2026-04-17T14:30:59","modified_gmt":"2026-04-17T14:30:59","slug":"de-lexportation-des-donnees-de-chatgpt-a-votre-propre-ki-de-connaissances-pas-a-pas-avec-ollama-et-qdrant","status":"publish","type":"post","link":"https:\/\/www.markus-schall.de\/fr\/2026\/03\/de-lexportation-des-donnees-de-chatgpt-a-votre-propre-ki-de-connaissances-pas-a-pas-avec-ollama-et-qdrant\/","title":{"rendered":"De l'exportation de donn\u00e9es ChatGPT \u00e0 votre propre IA de connaissances : \u00e9tape par \u00e9tape avec Ollama et Qdrant"},"content":{"rendered":"<p>Dans la premi\u00e8re partie de cette s\u00e9rie d'articles, nous avons vu que l'exportation des donn\u00e9es ChatGPT est bien plus qu'une simple fonction technique. Dans tes donn\u00e9es export\u00e9es se trouve une collection de pens\u00e9es, d'id\u00e9es, d'analyses et de conversations qui se sont accumul\u00e9es au fil du temps. Mais tant que ces donn\u00e9es ne sont qu'une archive sur le disque dur, elles restent exactement cela : une archive. L'\u00e9tape d\u00e9cisive consiste \u00e0 rendre ces informations \u00e0 nouveau utilisables. C'est pr\u00e9cis\u00e9ment ici que commence la construction d'une IA de la connaissance personnelle.<\/p>\n<p>L'id\u00e9e est en fait \u00e9tonnamment simple : une IA ne doit pas seulement travailler avec des connaissances g\u00e9n\u00e9rales, mais aussi avoir acc\u00e8s \u00e0 tes propres donn\u00e9es. Elle doit rechercher des conversations ant\u00e9rieures, trouver des contenus appropri\u00e9s et les int\u00e9grer dans de nouvelles r\u00e9ponses. Ainsi, une IA ordinaire devient une sorte de m\u00e9moire num\u00e9rique. Il s'agit de la deuxi\u00e8me partie de la s\u00e9rie d'articles, dans laquelle il est maintenant question de la pratique.<!--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-577 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 9px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-577 { --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 de soci\u00e9t\u00e9 contemporains<\/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-577\" 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=\"sinkende gasspeicher in deutschland: technik, grenzen und politische konsequenzen\" data-id=\"4581\"  data-category=\"allgemein gesellschaft\" data-post_tag=\"deutschland energiepolitik europa krisen ratgeber\">\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\/01\/baisse-du-stockage-de-gaz-en-allemagne-technique-limites-et-consequences-politiques\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Stockage de gaz en baisse en Allemagne : technique, limites et cons\u00e9quences politiques<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Stockage de gaz en Allemagne\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Gasspeicher-Deutschland.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Gasspeicher-Deutschland.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Gasspeicher-Deutschland-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Gasspeicher-Deutschland-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Gasspeicher-Deutschland-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\/fr\/2026\/01\/baisse-du-stockage-de-gaz-en-allemagne-technique-limites-et-consequences-politiques\/\" rel=\"bookmark\">Stockage de gaz en baisse en Allemagne : technique, limites et cons\u00e9quences politiques<\/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=\"der iran\u2013israel-konflikt: warum diese eskalation der strategische albtraum des westens ist\" data-id=\"5212\"  data-category=\"allgemein gesellschaft\" data-post_tag=\"denkmodelle energiepolitik europa geopolitik krisen k\u00fcnstliche intelligenz meinungsfreiheit sicherheitspolitik spieltheorie\">\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\/03\/le-conflit-iran-israel-pourquoi-cette-escalade-est-le-cauchemar-strategique-de-loccident\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Le conflit Iran-Isra\u00ebl : pourquoi cette escalade est le cauchemar strat\u00e9gique de l'Occident<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Isra\u00ebl-Iran - Un cauchemar strat\u00e9gique\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Israel-Iran-Strategischer-Albtraum.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Israel-Iran-Strategischer-Albtraum.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Israel-Iran-Strategischer-Albtraum-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Israel-Iran-Strategischer-Albtraum-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Israel-Iran-Strategischer-Albtraum-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\/fr\/2026\/03\/le-conflit-iran-israel-pourquoi-cette-escalade-est-le-cauchemar-strategique-de-loccident\/\" rel=\"bookmark\">Le conflit Iran-Isra\u00ebl : pourquoi cette escalade est le cauchemar strat\u00e9gique de l'Occident<\/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=\"regelbasierte weltordnung und v\u00f6lkerrecht: zwischen anspruch, realit\u00e4t und rechtsbruch\" data-id=\"4275\"  data-category=\"allgemein gesellschaft\" data-post_tag=\"denkmodelle eu-gesetze europa geopolitik krisen sicherheitspolitik\">\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\/01\/lordre-mondial-fonde-sur-des-regles-et-le-droit-international-public-entre-exigence-de-realite-et-violation-du-droit\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Ordre mondial fond\u00e9 sur des r\u00e8gles et droit international : entre ambition, r\u00e9alit\u00e9 et violation du droit<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Droit international et ordre mondial fond\u00e9 sur des r\u00e8gles\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/voelkerrecht-weltordnung-titel.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/voelkerrecht-weltordnung-titel.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/voelkerrecht-weltordnung-titel-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/voelkerrecht-weltordnung-titel-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/voelkerrecht-weltordnung-titel-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\/fr\/2026\/01\/lordre-mondial-fonde-sur-des-regles-et-le-droit-international-public-entre-exigence-de-realite-et-violation-du-droit\/\" rel=\"bookmark\">Ordre mondial fond\u00e9 sur des r\u00e8gles et droit international : entre ambition, r\u00e9alit\u00e9 et violation du droit<\/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=\"dieter hallervorden \u2013 mehr als didi: portr\u00e4t eines unbequemen freigeists\" data-id=\"4347\"  data-category=\"gesellschaft kunst &amp; kultur stories &amp; humor\" data-post_tag=\"erfahrungen meinungsfreiheit musik portrait\">\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\/01\/dieter-hallervorden-plus-que-didi-portrait-dun-libertaire-inconfortable\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Dieter Hallervorden - Plus de Didi : Portrait d'un esprit libre et inconfortable<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Dieter Hallervorden et les W\u00fchlm\u00e4use \u00e0 Berlin\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse-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\/fr\/2026\/01\/dieter-hallervorden-plus-que-didi-portrait-dun-libertaire-inconfortable\/\" rel=\"bookmark\">Dieter Hallervorden - Plus de Didi : Portrait d'un esprit libre et inconfortable<\/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>Premi\u00e8re partie de la s\u00e9rie : le tr\u00e9sor sous-estim\u00e9 de l'exportation de donn\u00e9es ChatGPT<\/h2>\n<p>Alors que nous entrons concr\u00e8tement dans la pratique dans cette deuxi\u00e8me partie, il vaut la peine de jeter un coup d'\u0153il sur le <a href=\"https:\/\/www.markus-schall.de\/fr\/2026\/03\/chatgpt-datenexport-explique-comment-tes-chats-ki-deviennent-un-systeme-de-connaissance-personnel\/\"><strong>premier article de cette s\u00e9rie<\/strong><\/a>. Il y est question de la question fondamentale de savoir pourquoi l'exportation de donn\u00e9es ChatGPT est si int\u00e9ressante - et pourquoi de nombreux utilisateurs sous-estiment encore son potentiel. L'article montre quelles donn\u00e9es sont effectivement contenues dans l'exportation, comment une archive personnelle de connaissances peut en r\u00e9sulter et pourquoi cette \u00e9tape constitue pr\u00e9cis\u00e9ment la base d'une IA propre avec m\u00e9moire. Si tu veux comprendre pourquoi nous construisons ce pipeline et quelle est la valeur strat\u00e9gique de tes propres historiques de chat, tu devrais commencer par la partie 1.<\/p>\n<p>Avant de passer \u00e0 la mise en \u0153uvre concr\u00e8te dans le chapitre suivant, voyons d'abord comment un tel syst\u00e8me est fondamentalement structur\u00e9.<\/p>\n<hr \/>\n<h2>L'id\u00e9e de base d'un syst\u00e8me RAG<\/h2>\n<p>La base technique de notre syst\u00e8me est un concept d\u00e9sormais tr\u00e8s r\u00e9pandu dans le monde de l'IA : RAG, c'est-\u00e0-dire Retrieval Augmented Generation. Derri\u00e8re ce terme se cache un principe tr\u00e8s pratique.<\/p>\n<p>Normalement, un mod\u00e8le linguistique r\u00e9pond aux questions en utilisant uniquement les connaissances apprises au cours de son entra\u00eenement. Ces connaissances sont certes vastes, mais elles pr\u00e9sentent deux limites essentielles :<\/p>\n<ul>\n<li>Premi\u00e8rement, le mod\u00e8le ne conna\u00eet aucune information individuelle sur tes propres projets ou pens\u00e9es.<\/li>\n<li>Deuxi\u00e8mement, il ne peut pas acc\u00e9der aux nouvelles donn\u00e9es cr\u00e9\u00e9es apr\u00e8s la formation.<\/li>\n<\/ul>\n<p>C'est pr\u00e9cis\u00e9ment l\u00e0 qu'intervient un syst\u00e8me RAG. Au lieu de g\u00e9n\u00e9rer directement une r\u00e9ponse, il se passe d'abord autre chose : le syst\u00e8me recherche dans une base de donn\u00e9es les contenus qui correspondent \u00e0 la question pos\u00e9e. Ces contenus sont ensuite transmis au mod\u00e8le linguistique en tant que contexte. Ce n'est qu'ensuite que l'IA formule sa r\u00e9ponse. Le processus se pr\u00e9sente de mani\u00e8re simplifi\u00e9e comme suit :<\/p>\n<ol>\n<li>Tu poses une question \u2192<\/li>\n<li>le syst\u00e8me recherche dans une base de connaissances \u2192<\/li>\n<li>les contenus pertinents sont trouv\u00e9s \u2192<\/li>\n<li>ces contenus sont transmis \u00e0 l'IA comme contexte \u2192<\/li>\n<li>l'IA g\u00e9n\u00e8re une r\u00e9ponse.<\/li>\n<\/ol>\n<p>L'avantage d\u00e9cisif est \u00e9vident : l'IA peut utiliser des informations qui ne faisaient pas partie de sa formation initiale.<\/p>\n<p>Et c'est l\u00e0 que tes donn\u00e9es ChatGPT entrent en jeu. Si nous int\u00e9grons ces conversations dans une base de connaissances, l'IA pourra y acc\u00e9der plus tard. Elle peut retrouver des id\u00e9es ant\u00e9rieures, utiliser des arguments d'anciens dialogues ou prendre en compte des analyses de conversations pass\u00e9es. Le syst\u00e8me commence donc \u00e0 se \u201esouvenir\u201c de tes propres pens\u00e9es.<\/p>\n<h3>Les \u00e9l\u00e9ments constitutifs de notre syst\u00e8me<\/h3>\n<p>Pour que cela fonctionne, nous avons besoin de plusieurs composants qui travaillent ensemble. Heureusement, l'infrastructure technique n\u00e9cessaire est aujourd'hui beaucoup plus facile d'acc\u00e8s qu'il y a quelques ann\u00e9es. Notre syst\u00e8me se compose essentiellement de quatre \u00e9l\u00e9ments centraux.<\/p>\n<ol>\n<li>Le premier \u00e9l\u00e9ment est le <strong>Exportation des donn\u00e9es ChatGPT<\/strong>. C'est ici que se trouvent nos donn\u00e9es brutes. Elles contiennent toutes les conversations que nous avons eues auparavant avec l'IA.<\/li>\n<li>Le deuxi\u00e8me \u00e9l\u00e9ment est un <strong>Mod\u00e8le d'int\u00e9gration<\/strong>. Ce mod\u00e8le traduit le texte en vecteurs math\u00e9matiques. Il est ainsi possible de comparer les textes en fonction de leur signification.<\/li>\n<li>Le troisi\u00e8me \u00e9l\u00e9ment est une <strong>Base de donn\u00e9es de vecteurs<\/strong>. Dans notre cas, nous utilisons Qdrant. Cette base de donn\u00e9es stocke les repr\u00e9sentations math\u00e9matiques des textes et permet une recherche s\u00e9mantique rapide.<\/li>\n<li>Le quatri\u00e8me \u00e9l\u00e9ment est un <strong>mod\u00e8le linguistique local<\/strong>, qui passe par Ollama. Ce mod\u00e8le formulera plus tard les r\u00e9ponses proprement dites.<\/li>\n<\/ol>\n<p>Ces quatre composantes travaillent en \u00e9troite collaboration.<\/p>\n<ol>\n<li>L'exportation de donn\u00e9es fournit le contenu.<\/li>\n<li>Le mod\u00e8le d'int\u00e9gration les rend lisibles par une machine.<\/li>\n<li>La base de donn\u00e9es vectorielles les stocke et effectue des recherches.<\/li>\n<li>Le mod\u00e8le linguistique produit finalement des r\u00e9ponses compr\u00e9hensibles.<\/li>\n<\/ol>\n<p>Ensemble, ils constituent la base d'une IA de la connaissance personnelle.<\/p>\n<h3>Aper\u00e7u du flux de donn\u00e9es<\/h3>\n<p>Pour que le syst\u00e8me fonctionne, les donn\u00e9es doivent passer par plusieurs \u00e9tapes. Au d\u00e9but, il y a l'exportation des donn\u00e9es ChatGPT, que nous avons d\u00e9j\u00e0 cr\u00e9\u00e9e dans le premier article. Les conversations qu'il contient sont d'abord extraites des fichiers JSON. Ces textes doivent ensuite \u00eatre pr\u00e9par\u00e9s. Les grandes s\u00e9quences de chat sont d\u00e9compos\u00e9es en sections plus petites, appel\u00e9es \"text-chunks\". Cela rend la recherche ult\u00e9rieure nettement plus efficace.<\/p>\n<p>Dans l'\u00e9tape suivante, nous cr\u00e9ons des embeddings \u00e0 partir de ces sections de texte. Chaque texte est d\u00e9crit math\u00e9matiquement. Les textes ayant une signification similaire re\u00e7oivent des vecteurs similaires. Nous enregistrons ensuite ces vecteurs dans notre base de donn\u00e9es vectorielles Qdrant.<\/p>\n<p>Ainsi, la partie la plus importante de l'infrastructure est d\u00e9j\u00e0 en place. Lorsqu'une question est pos\u00e9e ult\u00e9rieurement, voici ce qui se passe :<\/p>\n<ol>\n<li>La question est \u00e9galement transform\u00e9e en vecteur.<\/li>\n<li>La base de donn\u00e9es recherche les textes ayant une signification similaire.<\/li>\n<li>Ces passages sont transmis au mod\u00e8le linguistique en tant que contexte.<\/li>\n<li>Le mod\u00e8le utilise ces informations pour formuler une r\u00e9ponse.<\/li>\n<\/ol>\n<p>Ce processus fait en sorte que l'IA n'utilise pas seulement des connaissances g\u00e9n\u00e9rales, mais qu'elle puisse aussi acc\u00e9der \u00e0 tes propres donn\u00e9es.<\/p>\n<h3>Ce qui sera possible \u00e0 la fin<\/h3>\n<p>Une fois le syst\u00e8me mis en place, l'utilisation de l'IA change sensiblement. Tu ne travailles plus seulement avec un mod\u00e8le linguistique g\u00e9n\u00e9ral, mais avec une IA qui peut acc\u00e9der \u00e0 tes propres donn\u00e9es. Cela ouvre de toutes nouvelles possibilit\u00e9s. Tu peux par exemple poser des questions comme<\/p>\n<blockquote><p><em>\u201eAi-je d\u00e9j\u00e0 parl\u00e9 de ce sujet avec l'IA ?\u201c<\/em><br \/>\n<em>\u201eQuelles \u00e9taient mes id\u00e9es ant\u00e9rieures sur ce projet ?\u201c<\/em><br \/>\n<em>\u201eQuels sont les arguments que j'ai d\u00e9velopp\u00e9s lors de mes pr\u00e9c\u00e9dents entretiens ?\u201c<\/em><\/p><\/blockquote>\n<p>L'IA parcourt alors tes propres conversations et trouve des contenus appropri\u00e9s. Au lieu de se contenter de donner une r\u00e9ponse g\u00e9n\u00e9rale, elle peut se r\u00e9f\u00e9rer \u00e0 des pens\u00e9es ant\u00e9rieures, r\u00e9sumer d'anciennes analyses ou identifier des liens entre diff\u00e9rentes conversations.<\/p>\n<p>En d'autres termes, l'IA commence \u00e0 travailler avec ta propre archive de connaissances. Ainsi, un simple outil de chat devient un syst\u00e8me capable de t'aider \u00e0 r\u00e9fl\u00e9chir sur le long terme. Et c'est pr\u00e9cis\u00e9ment ce syst\u00e8me que nous allons construire pas \u00e0 pas dans les prochains chapitres. Dans le prochain paragraphe, nous commencerons par les travaux pratiques et nous verrons d'abord de plus pr\u00e8s l'exportation des donn\u00e9es ChatGPT. Car avant de pouvoir construire une base de connaissances, nous devons comprendre comment nos donn\u00e9es sont en fait structur\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=\"e0a15792da24ca32daf6cf7a906f2b88\" data-pid=\"4347\" 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=\"571ac06c87\" autocomplete=\"off\"><div class=\"basic-elements\"><div class=\"basic-element basic-question basic-question-text-vertical\" data-id=\"9\" data-uid=\"442c19d37de674463084ad7b2848a94e\" 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=\"138\" 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=\"25\" 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>Pr\u00e9paration : Comprendre l'exportation des donn\u00e9es ChatGPT<\/h2>\n<p>Dans le premier article de cette s\u00e9rie, nous avons d\u00e9j\u00e0 cr\u00e9\u00e9 l'export de donn\u00e9es ChatGPT et l'avons t\u00e9l\u00e9charg\u00e9 sous forme de fichier ZIP. Au premier abord, ce fichier peut para\u00eetre peu spectaculaire - une archive contenant quelques fichiers techniques, qui ressemble d'abord plus \u00e0 une sauvegarde qu'\u00e0 un pr\u00e9cieux ensemble de donn\u00e9es. Mais c'est pr\u00e9cis\u00e9ment dans cette archive que se trouve la base de tout notre syst\u00e8me de connaissances.<\/p>\n<p>Avant de pouvoir commencer \u00e0 charger ces donn\u00e9es dans une base de donn\u00e9es ou \u00e0 les relier \u00e0 une IA, nous devons d'abord comprendre comment l'exportation est structur\u00e9e. En effet, ce n'est que si nous savons quelles informations sont contenues et comment elles sont structur\u00e9es que nous pourrons les traiter ult\u00e9rieurement de mani\u00e8re judicieuse. Dans ce chapitre, nous allons donc voir comment l'exportation de donn\u00e9es est structur\u00e9e, quels sont les fichiers r\u00e9ellement pertinents et comment nous pouvons faire de ces archives techniques une base utilisable pour notre syst\u00e8me de connaissances en IA.<\/p>\n<h3>D\u00e9compresser le fichier ZIP<\/h3>\n<p>La premi\u00e8re \u00e9tape est triviale, mais n\u00e9anmoins importante : nous devons d\u00e9compresser l'archive t\u00e9l\u00e9charg\u00e9e. Le fichier se pr\u00e9sente g\u00e9n\u00e9ralement sous la forme d'un fichier ZIP classique. Sa taille peut varier en fonction de l'ampleur de ton utilisation ant\u00e9rieure. Certains utilisateurs re\u00e7oivent une archive de quelques centaines de m\u00e9gaoctets, d'autres plusieurs gigaoctets.<\/p>\n<p>Apr\u00e8s avoir d\u00e9compress\u00e9 le fichier, tu obtiens un dossier contenant plusieurs fichiers et sous-dossiers. La structure exacte peut varier l\u00e9g\u00e8rement, mais tu y trouveras g\u00e9n\u00e9ralement une s\u00e9rie de fichiers JSON et \u00e9ventuellement d'autres fichiers contenant des informations compl\u00e9mentaires.<\/p>\n<p>Pour de nombreux utilisateurs, cette structure semble d'abord un peu technique. Mais si l'on prend le temps de r\u00e9fl\u00e9chir un instant, on reconna\u00eet rapidement un mod\u00e8le : les donn\u00e9es sont organis\u00e9es de mani\u00e8re relativement propre et suivent une structure claire. C'est une bonne nouvelle, car c'est pr\u00e9cis\u00e9ment cette structure qui permet ensuite de traiter les contenus de mani\u00e8re automatis\u00e9e.<\/p>\n<h3>Structure des donn\u00e9es de chat<\/h3>\n<p>L'\u00e9l\u00e9ment le plus important de l'exportation sont les donn\u00e9es de discussion proprement dites. Ces conversations sont g\u00e9n\u00e9ralement enregistr\u00e9es dans un ou plusieurs fichiers JSON. JSON est un format de donn\u00e9es tr\u00e8s r\u00e9pandu, souvent utilis\u00e9 pour stocker des informations structur\u00e9es.<\/p>\n<p>Un tel fichier ne contient pas simplement un long texte. Au lieu de cela, un dialogue est divis\u00e9 en \u00e9l\u00e9ments individuels. Typiquement, un dialogue se compose de plusieurs messages. Chaque message contient des informations telles que<\/p>\n<ul>\n<li>le texte proprement dit du message<\/li>\n<li>le r\u00f4le de l'exp\u00e9diteur (utilisateur ou IA)<\/li>\n<li>un horodatage<\/li>\n<li>parfois d'autres m\u00e9tadonn\u00e9es<\/li>\n<\/ul>\n<p>Il est ainsi possible de reconstituer l'ensemble du d\u00e9roulement de la conversation. Un dialogue commence par exemple par une question de l'utilisateur. Elle est suivie d'une r\u00e9ponse de l'IA. D'autres questions et r\u00e9ponses peuvent ensuite suivre. Chacun de ces messages est enregistr\u00e9 individuellement.<\/p>\n<p>Cela pr\u00e9sente un grand avantage : nous pouvons plus tard reconna\u00eetre exactement qui a dit quoi et comment s'est d\u00e9roul\u00e9e une conversation. C'est particuli\u00e8rement important pour notre syst\u00e8me de connaissances, car nous voulons ensuite rechercher et analyser pr\u00e9cis\u00e9ment ces contenus.<\/p>\n<h3>Les donn\u00e9es dont nous avons vraiment besoin<\/h3>\n<p>Bien que l'exportation contienne beaucoup d'informations, nous n'avons pas besoin de tout pour notre syst\u00e8me de connaissances. Les textes des entretiens en sont l'\u00e9l\u00e9ment le plus important. Ces textes contiennent les contenus proprement dits : Id\u00e9es, analyses, questions et r\u00e9ponses. C'est pr\u00e9cis\u00e9ment dans ces contenus que nous voulons effectuer des recherches par la suite.<\/p>\n<p>En outre, certaines m\u00e9tadonn\u00e9es peuvent \u00eatre utiles. Il s'agit par exemple<\/p>\n<ul>\n<li>Horodatage<\/li>\n<li>Titre de la conversation<\/li>\n<li>\u00e9ventuellement des num\u00e9ros d'identification internes<\/li>\n<\/ul>\n<p>Ces informations nous aideront plus tard \u00e0 mieux trier les contenus ou \u00e0 situer un entretien dans le temps. D'autres \u00e9l\u00e9ments de l'export sont moins pertinents pour notre projet. Il s'agit par exemple de certaines m\u00e9tadonn\u00e9es techniques qui ne sont int\u00e9ressantes que pour le fonctionnement interne de la plateforme.<\/p>\n<p>Pour construire notre base de connaissances, nous nous concentrons donc d\u00e9lib\u00e9r\u00e9ment sur l'essentiel : les textes des entretiens et quelques informations contextuelles de base. Plus nous structurons ces donn\u00e9es de mani\u00e8re claire, mieux notre IA pourra les utiliser par la suite.<\/p>\n<h3>Premier examen des donn\u00e9es<\/h3>\n<p>Avant de travailler avec des scripts automatis\u00e9s, il vaut la peine de jeter un coup d'\u0153il aux donn\u00e9es elles-m\u00eames. Pour ce faire, ouvre l'un des fichiers JSON \u00e0 l'aide d'un simple \u00e9diteur de texte ou d'un programme qui peut bien afficher les fichiers JSON. De nombreux \u00e9diteurs de code, tels que Visual Studio Code, s'y pr\u00eatent tr\u00e8s bien, mais les \u00e9diteurs de texte simples fonctionnent \u00e9galement.<\/p>\n<p>En regardant le fichier pour la premi\u00e8re fois, tu verras probablement une quantit\u00e9 relativement importante de donn\u00e9es structur\u00e9es. Les fichiers JSON sont constitu\u00e9s d'\u00e9l\u00e9ments imbriqu\u00e9s, c'est-\u00e0-dire de champs de donn\u00e9es qui contiennent \u00e0 leur tour d'autres champs. Cela peut sembler un peu complexe au premier abord, mais avec un peu de patience, on reconna\u00eet rapidement la structure de base. Tu verras par exemple qu'une conversation se compose de plusieurs messages et que chaque message repr\u00e9sente un objet distinct. Le texte proprement dit se trouve g\u00e9n\u00e9ralement dans un champ clairement identifiable.<\/p>\n<p>Ce premier tri a un but important : il t'aide \u00e0 comprendre comment tes donn\u00e9es sont structur\u00e9es. En effet, dans le chapitre suivant, nous utiliserons pr\u00e9cis\u00e9ment cette structure pour lire les entretiens de mani\u00e8re automatis\u00e9e et les pr\u00e9parer pour notre syst\u00e8me de connaissances. En d'autres termes, cela signifie : Nous transformons maintenant pas \u00e0 pas une archive de donn\u00e9es techniques en une base de connaissances utilisable. Et c'est pr\u00e9cis\u00e9ment ce que nous commen\u00e7ons \u00e0 faire dans le chapitre suivant. Il s'agit ici d'extraire les donn\u00e9es des conversations et de les pr\u00e9parer de mani\u00e8re \u00e0 ce qu'elles puissent \u00eatre recherch\u00e9es efficacement par la suite.<\/p>\n<h2>Pr\u00e9parer les donn\u00e9es : Des entretiens aux textes analysables<\/h2>\n<p>Apr\u00e8s avoir d\u00e9compress\u00e9 l'export de donn\u00e9es ChatGPT dans le chapitre pr\u00e9c\u00e9dent et obtenu un premier aper\u00e7u de sa structure, nous entamons maintenant la partie technique proprement dite de notre projet. Les donn\u00e9es export\u00e9es sont certes disponibles dans leur int\u00e9gralit\u00e9 - mais sous cette forme, elles ne sont pas encore parfaitement adapt\u00e9es \u00e0 notre syst\u00e8me de connaissances.<\/p>\n<p>La raison est simple : les historiques de chat sont g\u00e9n\u00e9ralement longs, contiennent de nombreux sujets et sont stock\u00e9s dans une structure qui est lisible pour les humains, mais qui n'est pas id\u00e9ale pour la recherche s\u00e9mantique ou les bases de donn\u00e9es vectorielles. Pour que notre IA puisse trouver plus tard des contenus pertinents et cibl\u00e9s, nous devons d'abord pr\u00e9parer ces donn\u00e9es brutes. Cela signifie essentiellement trois choses :<\/p>\n<ol>\n<li>extraire les conversations des fichiers JSON<\/li>\n<li>structurer les textes de mani\u00e8re pertinente<\/li>\n<li>diviser le contenu en sections plus petites<\/li>\n<\/ol>\n<p>Ce processus est une \u00e9tape tout \u00e0 fait normale dans les syst\u00e8mes d'IA modernes et est souvent appel\u00e9 pr\u00e9traitement.<\/p>\n<h3>Pourquoi les donn\u00e9es brutes ne sont pas directement appropri\u00e9es<\/h3>\n<p>Si tu jettes un coup d'\u0153il \u00e0 l'un des fichiers JSON, tu constateras qu'un seul chat est souvent compos\u00e9 de nombreux messages. Un dialogue typique peut par exemple ressembler \u00e0 ceci :<\/p>\n<ul>\n<li>Question<\/li>\n<li>R\u00e9ponse<\/li>\n<li>Demande de renseignements<\/li>\n<li>nouvelle d\u00e9claration<\/li>\n<li>autre d\u00e9tail<\/li>\n<li>R\u00e9sum\u00e9<\/li>\n<\/ul>\n<p>Certaines conversations peuvent contenir des centaines, voire des milliers de mots. Pour les humains, ce n'est pas un probl\u00e8me. Nous lisons simplement un dialogue de haut en bas.<\/p>\n<p>Cependant, cela fonctionne moins bien pour une recherche par IA. La raison en est qu'une seule conversation contient souvent plusieurs sujets. Lorsque nous effectuons une recherche s\u00e9mantique par la suite, le syst\u00e8me doit trouver des passages de texte aussi pr\u00e9cis que possible - et non des conversations enti\u00e8res avec de nombreux contenus diff\u00e9rents.<\/p>\n<p>C'est pourquoi les grands textes sont d\u00e9coup\u00e9s en sections plus petites. Ces sections sont appel\u00e9es chunks. Un chunk est tout simplement un petit bloc de texte qui contient une pens\u00e9e coh\u00e9rente. Cette m\u00e9thode am\u00e9liore consid\u00e9rablement la qualit\u00e9 de la recherche par la suite.<\/p>\n<h3>Extraire les historiques de chat<\/h3>\n<p>La premi\u00e8re \u00e9tape pratique consiste \u00e0 extraire le contenu des fichiers JSON. Pour cela, nous utilisons un petit script Python. Python se pr\u00eate particuli\u00e8rement bien \u00e0 ce genre de t\u00e2ches, car il contient de nombreuses biblioth\u00e8ques pour le traitement des donn\u00e9es et l'IA.<\/p>\n<p>Cr\u00e9e d'abord un nouveau fichier, par exemple :<\/p>\n<p><code class=\"notranslate\" data-no-translation=\"\">extract_chats.py<\/code><\/p>\n<p>Ensuite, nous ajoutons un script simple qui charge les donn\u00e9es de chat.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">import json\r\nwith open(\"conversations.json\", \"r\", encoding=\"utf-8\") as f:\r\n  data = json.load(f)\r\nprint(\"Anzahl der Gespr\u00e4che:\", len(data))<\/pre>\n<p>Si tu ex\u00e9cutes ce script, tu devrais voir combien de conversations sont contenues dans ton exportation. Maintenant, nous voulons extraire les textes proprement dits.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">texts = []\r\nfor conversation in data:\r\n  if \"mapping\" in conversation:\r\n    for node in conversation[\"mapping\"].values():\r\n      message = node.get(\"message\")\r\n      if message:\r\n        content = message.get(\"content\")\r\n        if content and \"parts\" in content:\r\n          text = \" \".join(content[\"parts\"])\r\n          texts.append(text)\r\nprint(\"Extrahierte Textabschnitte:\", len(texts))<\/pre>\n<p>Ce script parcourt la structure JSON et rassemble tous les \u00e9l\u00e9ments de texte issus des entretiens. Nous avons ainsi d\u00e9j\u00e0 r\u00e9alis\u00e9 la partie la plus importante : nous avons extrait les contenus du format d'exportation technique.<\/p>\n<h3>Cr\u00e9er des chunks de texte<\/h3>\n<p>Voici maintenant la prochaine \u00e9tape importante : le chunking. Au lieu de sauvegarder des conversations compl\u00e8tes, nous divisons les textes en sections plus petites.<br \/>\nUne taille typique pour de telles sections de texte se situe entre 300 et 800 mots ou environ 500 tokens. Voici un exemple simple de la mani\u00e8re dont on peut diviser un texte en chunks.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">def split_text(text, chunk_size=500):\r\n    words = text.split()\r\n    chunks = []\r\n    for i in range(0, len(words), chunk_size):\r\n        chunk = \" \".join(words[i:i+chunk_size])\r\n        chunks.append(chunk)\r\n    return chunks<\/pre>\n<p>Nous pouvons maintenant appliquer cette fonction \u00e0 nos textes.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">all_chunks = []\r\nfor text in texts:\r\n    chunks = split_text(text)\r\n    all_chunks.extend(chunks)\r\nprint(\"Gesamtzahl der Chunks:\", len(all_chunks))<\/pre>\n<p>Nous avons maintenant cr\u00e9\u00e9 de nombreux petits blocs de texte \u00e0 partir de nos historiques de chat. Ces blocs de texte sont id\u00e9aux pour une recherche ult\u00e9rieure dans une base de donn\u00e9es vectorielles.<\/p>\n<h3>Compl\u00e9ter les m\u00e9tadonn\u00e9es<\/h3>\n<p>Outre le texte proprement dit, des informations suppl\u00e9mentaires peuvent s'av\u00e9rer tr\u00e8s utiles. Ces \"m\u00e9tadonn\u00e9es\" nous aident ensuite \u00e0 mieux trier ou filtrer les contenus. Des m\u00e9tadonn\u00e9es typiques pourraient \u00eatre<\/p>\n<ul>\n<li>Date de l'entretien<\/li>\n<li>Titre de la conversation<\/li>\n<li>Source (ChatGPT Export)<\/li>\n<li>ID de la conversation<\/li>\n<\/ul>\n<p>Nous pouvons enregistrer ces informations en m\u00eame temps que le texte, par exemple de cette mani\u00e8re :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">documents = []\r\nfor conversation in data:\r\n    title = conversation.get(\"title\", \"Unbekannt\")\r\n    if \"mapping\" in conversation:\r\n        for node in conversation[\"mapping\"].values():\r\n            message = node.get(\"message\")\r\n            if message:\r\n                content = message.get(\"content\")\r\n                if content and \"parts\" in content:\r\n                    text = \" \".join(content[\"parts\"])\r\n                    chunks = split_text(text)\r\n                    for chunk in chunks:\r\n                        documents.append({\r\n                            \"text\": chunk,\r\n                            \"title\": title\r\n                         })<\/pre>\n<p>Cela nous a d\u00e9j\u00e0 permis d'am\u00e9liorer consid\u00e9rablement la structure de nos donn\u00e9es. Au lieu d'une archive de chat confuse, nous poss\u00e9dons maintenant une collection de nombreuses petites sections de texte, chacune \u00e9tant accompagn\u00e9e d'informations contextuelles.<\/p>\n<p>C'est pr\u00e9cis\u00e9ment cette structure qui sera d\u00e9terminante dans la prochaine \u00e9tape. En effet, nous pouvons maintenant commencer \u00e0 cr\u00e9er des embeddings \u00e0 partir de ces textes - c'est-\u00e0-dire des repr\u00e9sentations math\u00e9matiques des contenus qui seront ensuite stock\u00e9es dans notre base de donn\u00e9es vectorielles. Et c'est pr\u00e9cis\u00e9ment de cela qu'il s'agit dans le chapitre suivant.<\/p>\n<h2>Cr\u00e9er des embeddings<\/h2>\n<p>Dans le chapitre pr\u00e9c\u00e9dent, nous avons d\u00e9j\u00e0 transform\u00e9 nos donn\u00e9es ChatGPT en une forme utilisable. Nous avons extrait les conversations des fichiers JSON, nettoy\u00e9 les textes et les avons divis\u00e9s en sections plus petites, appel\u00e9es chunks.<\/p>\n<p>Mais pour que notre IA puisse plus tard rechercher des contenus de mani\u00e8re vraiment utile, il manque encore une \u00e9tape d\u00e9cisive. Les textes doivent \u00eatre traduits dans une forme que les machines peuvent comparer. C'est l\u00e0 que les embeddings entrent en jeu.<\/p>\n<p>Les embeddings sont des repr\u00e9sentations math\u00e9matiques de textes. Ils permettent aux ordinateurs de comparer la signification des textes. Deux textes au contenu similaire obtiennent des vecteurs similaires - m\u00eame s'ils utilisent des mots diff\u00e9rents. C'est pr\u00e9cis\u00e9ment cette propri\u00e9t\u00e9 dont nous avons besoin pour notre syst\u00e8me de connaissances. Car plus tard, notre IA ne devra pas seulement chercher des mots identiques, mais aussi des textes dont le contenu correspond.<\/p>\n<h3>Ce que sont les embeddings<\/h3>\n<p>Un embedding est en fait une liste de chiffres. Ces chiffres d\u00e9crivent la signification d'un texte dans un espace math\u00e9matique. Chaque texte est converti en ce que l'on appelle un vecteur. Un tel vecteur peut par exemple ressembler \u00e0 ceci :<\/p>\n<p><code data-no-translation=\"\">[0.134, -0.876, 0.442, 0.921, -0.223, ...]<\/code><\/p>\n<p>Un seul vecteur peut contenir plusieurs centaines, voire plusieurs milliers de chiffres. Ces nombres ne sont \u00e9videmment pas directement compr\u00e9hensibles pour les humains. Pour les machines, ils sont toutefois id\u00e9aux pour calculer les similitudes entre les textes. Si deux textes ont des contenus similaires, leurs vecteurs sont plus proches dans l'espace math\u00e9matique. Un exemple :<\/p>\n<ul>\n<li><strong>Texte A<\/strong>: \u201eComment exporter mes donn\u00e9es ChatGPT ?\u201c<\/li>\n<li><strong>Texte B<\/strong>: \u201eComment t\u00e9l\u00e9charger mes conversations ChatGPT ?\u201c<\/li>\n<\/ul>\n<p>Bien que les formulations soient diff\u00e9rentes, les deux textes d\u00e9crivent en fait le m\u00eame sujet. Un bon mod\u00e8le d'int\u00e9gration reconna\u00eet cette similitude. Les deux textes re\u00e7oivent donc des vecteurs similaires. C'est exactement ce principe que nous utiliserons plus tard pour notre recherche s\u00e9mantique.<\/p>\n<h3>Mod\u00e8les d'encastrement avec Ollama<\/h3>\n<p>Pour la cr\u00e9ation d'embeddings, nous avons besoin d'un mod\u00e8le sp\u00e9cial. Heureusement, nous n'avons pas besoin d'utiliser des services cloud externes pour cela. De nombreux mod\u00e8les d'embedding peuvent aujourd'hui \u00eatre exploit\u00e9s localement - et c'est l\u00e0 qu'intervient Ollama.<\/p>\n<p>Comme Ollama fonctionne d\u00e9j\u00e0 sur ton syst\u00e8me, nous pouvons y cr\u00e9er un mod\u00e8le d'embedding 1TP12. Un tr\u00e8s bon mod\u00e8le est par exemple<\/p>\n<p><code data-no-translation=\"\">nomic-embed-text<\/code><\/p>\n<p>Tu peux le faire avec la commande suivante installieren :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">ollama pull nomic-embed-text<\/pre>\n<p>D'autres mod\u00e8les populaires sont<\/p>\n<ul>\n<li>mxbai-embed-large<\/li>\n<li>bge-large<\/li>\n<li>all-minilm<\/li>\n<\/ul>\n<p>Pour nos besoins, est <em>nomic-embed-text<\/em> un tr\u00e8s bon point de d\u00e9part. Ce mod\u00e8le g\u00e9n\u00e8re des embeddings de haute qualit\u00e9 et fonctionne sans probl\u00e8me en local.<\/p>\n<h3>Cr\u00e9er des embeddings localement<\/h3>\n<p>Nous voulons maintenant \u00e9tendre notre script Python pour qu'il puisse cr\u00e9er des embeddings. Tout d'abord, nous install cr\u00e9ons une biblioth\u00e8que qui permet \u00e0 Python de communiquer avec Ollama.<\/p>\n<p>pip install ollama<\/p>\n<p>Nous pouvons maintenant aborder le mod\u00e8le d'int\u00e9gration directement depuis Python. Voici un exemple simple :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">import ollama\r\nresponse = ollama.embeddings(\r\n    model=\"nomic-embed-text\",\r\n    prompt=\"Wie exportiere ich meine ChatGPT-Daten?\"\r\n)\r\nprint(len(response[\"embedding\"]))<\/pre>\n<p>Si tout a bien fonctionn\u00e9, tu obtiens un vecteur de plusieurs centaines de chiffres.<br \/>\nMaintenant, nous appliquons cela \u00e0 nos chunks de chat.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">embeddings = []\r\nfor doc in documents:\r\n    text = doc[\"text\"]\r\n    result = ollama.embeddings(\r\n        model=\"nomic-embed-text\",\r\n        prompt=text\r\n    )\r\n    vector = result[\"embedding\"]\r\n    embeddings.append({\r\n        \"text\": text,\r\n        \"embedding\": vector,\r\n        \"title\": doc[\"title\"]\r\n    })<\/pre>\n<p>Nous cr\u00e9ons ainsi un vecteur pour chaque section de texte. Ces vecteurs seront ensuite enregistr\u00e9s dans notre base de donn\u00e9es.<\/p>\n<h3>Pourquoi cette \u00e9tape est d\u00e9cisive<\/h3>\n<p>Les embeddings sont au c\u0153ur des syst\u00e8mes de connaissances modernes. Sans les embeddings, nous ne pourrions rechercher des textes qu'\u00e0 l'aide d'une recherche classique par mots-cl\u00e9s. Cela signifierait que le syst\u00e8me ne trouverait que des contenus contenant exactement les m\u00eames mots. Or, le langage fonctionne rarement de mani\u00e8re aussi simple. Un utilisateur pourrait par exemple demander<\/p>\n<blockquote><p><em>\u201eComment ai-je trait\u00e9 mes donn\u00e9es ChatGPT ?\u201c<\/em><\/p><\/blockquote>\n<p>Cependant, la conversation initiale pourrait \u00eatre formul\u00e9e comme suit :<\/p>\n<blockquote><p><em>\u201eComment puis-je analyser mon exportation de donn\u00e9es ChatGPT ?\u201c<\/em><\/p><\/blockquote>\n<p>Une simple recherche pourrait ne pas d\u00e9tecter ce lien. Avec les embeddings, c'est diff\u00e9rent. Comme les deux textes ont des significations similaires, leurs vecteurs sont proches dans l'espace math\u00e9matique. Notre base de donn\u00e9es peut donc trouver des contenus correspondants, m\u00eame si les formulations sont diff\u00e9rentes. C'est pr\u00e9cis\u00e9ment cette capacit\u00e9 qui rend la recherche s\u00e9mantique si puissante. Elle permet \u00e0 une IA de rechercher non seulement des mots, mais aussi des significations.<\/p>\n<p>Et c'est pr\u00e9cis\u00e9ment pour cette raison que les embeddings sont la pierre angulaire de notre syst\u00e8me. Dans le chapitre suivant, nous nous appuierons sur cette base pour cr\u00e9er notre base de donn\u00e9es de vecteurs. Nous y stockerons les vecteurs g\u00e9n\u00e9r\u00e9s - et cr\u00e9erons ainsi la base de notre IA de la connaissance personnelle.<\/p>\n<h2>Qdrant 1TP12Enregistrer et configurer<\/h2>\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 les embeddings pour nos donn\u00e9es de chat dans le chapitre pr\u00e9c\u00e9dent, nous disposons maintenant d'une collection de sections de texte et des vecteurs correspondants. Ces vecteurs d\u00e9crivent math\u00e9matiquement la signification des textes et constituent ainsi la base d'une recherche s\u00e9mantique. Mais actuellement, ces donn\u00e9es ne sont disponibles que dans la m\u00e9moire de travail de notre script ou dans de simples listes. Pour que notre IA puisse y acc\u00e9der efficacement par la suite, nous avons besoin d'une m\u00e9moire sp\u00e9cialis\u00e9e.<\/p>\n<p>C'est pr\u00e9cis\u00e9ment l\u00e0 qu'une base de donn\u00e9es vectorielles entre en jeu. Une base de donn\u00e9es de vecteurs est optimis\u00e9e pour stocker de grandes quantit\u00e9s de tels embeddings et pour rechercher rapidement des vecteurs similaires. Pour notre projet, nous utilisons Qdrant, une base de donn\u00e9es open source moderne, sp\u00e9cialement con\u00e7ue pour les applications d'IA.<\/p>\n<p>Dans ce chapitre 1TP12, nous lan\u00e7ons Qdrant, d\u00e9marrons le serveur et pr\u00e9parons la base de donn\u00e9es de mani\u00e8re \u00e0 pouvoir importer nos donn\u00e9es de chat sans probl\u00e8me par la suite.<\/p>\n<h3>Ce qu'est Qdrant<\/h3>\n<p>Qdrant est une base de donn\u00e9es sp\u00e9cialis\u00e9e dans ce que l'on appelle les recherches vectorielles. Alors que les bases de donn\u00e9es classiques stockent des informations dans des tableaux - par exemple des noms, des chiffres ou des textes - une base de donn\u00e9es vectorielle travaille avec des repr\u00e9sentations math\u00e9matiques de donn\u00e9es.<\/p>\n<p>Cela signifie qu'au lieu de ne stocker que du texte, Qdrant stocke les embeddings correspondants. Le grand avantage r\u00e9side dans la recherche. Si une question est pos\u00e9e ult\u00e9rieurement, notre syst\u00e8me convertit \u00e9galement cette question en un vecteur. Qdrant peut alors calculer en un clin d'\u0153il quels sont les textes enregistr\u00e9s qui ressemblent le plus \u00e0 ce vecteur. Cela permet par exemple de trouver<\/p>\n<ul>\n<li>quels passages de chat correspondent th\u00e9matiquement \u00e0 la question<\/li>\n<li>quelles conversations ant\u00e9rieures contiennent des contenus similaires<\/li>\n<li>quelles id\u00e9es pourraient \u00eatre pertinentes dans tes archives<\/li>\n<\/ul>\n<p>C'est pr\u00e9cis\u00e9ment pour cette raison que Qdrant est aujourd'hui utilis\u00e9 dans de nombreux syst\u00e8mes d'IA modernes, de la recherche de documents aux assistants de connaissances complexes. Autre avantage : Qdrant est open source, rapidement install\u00e9 et fonctionne sans probl\u00e8me sur une machine locale normale.<\/p>\n<h3>Installation de Qdrant<\/h3>\n<p>Le moyen le plus simple de faire fonctionner Qdrant 1TP12 est de passer par Docker. Si Docker est pr\u00e9sent sur ta machine, tu peux d\u00e9marrer le serveur avec une seule commande. Ici, tu peux <a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\" target=\"_blank\" rel=\"noopener\"><strong>Docker t\u00e9l\u00e9charger<\/strong><\/a>, Si tu ne l'as pas encore install\u00e9 sur ton ordinateur, install.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 qdrant\/qdrant<\/pre>\n<p>Cette commande d\u00e9marre le serveur Qdrant et ouvre le port standard 6333. C'est par ce port que nos scripts pourront ensuite communiquer avec la base de donn\u00e9es.<\/p>\n<p>Si tu ne souhaites pas utiliser Docker, il existe d'autres possibilit\u00e9s de installier Qdrant, par exemple via un binaire local ou des gestionnaires de paquets. Cependant, dans de nombreux projets pratiques, Docker s'est av\u00e9r\u00e9 \u00eatre l'option la plus simple et la plus stable.<\/p>\n<p>Une fois le serveur d\u00e9marr\u00e9, Qdrant s'ex\u00e9cute en arri\u00e8re-plan et attend les requ\u00eates. Tu peux maintenant tester si le serveur est accessible. Pour cela, ouvre l'adresse suivante dans ton navigateur :<\/p>\n<p><code data-no-translation=\"\">http:\/\/localhost:6333<\/code><\/p>\n<p>Si tout a fonctionn\u00e9, un simple message d'\u00e9tat devrait appara\u00eetre. Le serveur est alors pr\u00eat pour les \u00e9tapes suivantes.<\/p>\n<h3>Premiers pas avec Qdrant<\/h3>\n<p>Avant de pouvoir importer nos donn\u00e9es de chat, nous devons cr\u00e9er ce que l'on appelle une collection. Dans Qdrant, une collection est comparable \u00e0 une table dans une base de donn\u00e9es classique. Elle contient nos vecteurs et les donn\u00e9es correspondantes.<\/p>\n<p>Tout d'abord, installieren la biblioth\u00e8que Python pour Qdrant :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">pip install qdrant-client<\/pre>\n<p>Nous pouvons maintenant \u00e9tablir une connexion avec la base de donn\u00e9es dans notre script Python.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">from qdrant_client import QdrantClient\r\nclient = QdrantClient(\"localhost\", port=6333)<\/pre>\n<p>Si ce code est ex\u00e9cut\u00e9 sans message d'erreur, la connexion est r\u00e9ussie. Nous allons maintenant cr\u00e9er une collection pour nos donn\u00e9es de chat.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">from qdrant_client.models import VectorParams, Distance\r\nclient.recreate_collection(\r\ncollection_name=\"chatgpt_archive\",\r\nvectors_config=VectorParams(size=768, distance=Distance.COSINE),\r\n)<\/pre>\n<p>Les param\u00e8tres les plus importants sont ici<\/p>\n<ul>\n<li><strong>nom_collection<\/strong> - le nom de notre base de donn\u00e9es<\/li>\n<li><strong>size<\/strong> - la longueur des vecteurs d'int\u00e9gration<\/li>\n<li><strong>distance<\/strong> - la m\u00e9thode de calcul de la similarit\u00e9<\/li>\n<\/ul>\n<p>La taille des vecteurs d\u00e9pend du mod\u00e8le d'int\u00e9gration utilis\u00e9. De nombreux mod\u00e8les travaillent avec des vecteurs de 768 ou 1024 dimensions. La fonction de distance Cosine est l'une des m\u00e9thodes les plus courantes pour calculer les similitudes entre les textes. Notre base de donn\u00e9es est donc d\u00e9j\u00e0 pr\u00eate \u00e0 l'emploi.<\/p>\n<h3>Planifier la structure des donn\u00e9es<\/h3>\n<p>Avant d'importer nos donn\u00e9es, il vaut la peine de jeter un coup d'\u0153il \u00e0 la structure que nous voulons enregistrer. Chaque entr\u00e9e de notre base de donn\u00e9es vectorielles sera compos\u00e9e de plusieurs \u00e9l\u00e9ments :<\/p>\n<ul>\n<li><strong>ID<\/strong> - un identifiant unique<\/li>\n<li><strong>Int\u00e9grer<\/strong> - le vecteur du texte<\/li>\n<li><strong>Charge utile<\/strong> - informations suppl\u00e9mentaires sur le texte<\/li>\n<\/ul>\n<p>La charge utile peut par exemple contenir<\/p>\n<ul>\n<li>le texte original<\/li>\n<li>le titre de l'entretien<\/li>\n<li>la date<\/li>\n<li>autres m\u00e9tadonn\u00e9es<\/li>\n<\/ul>\n<p>Un exemple d'ensemble de donn\u00e9es pourrait ressembler \u00e0 ceci :<\/p>\n<p><code data-no-translation=\"\">{<br \/>\n\"id\": 1,<br \/>\n\"vector\": [0.123, -0.452, 0.889, ...],<br \/>\n\"payload\": {<br \/>\n\"text\": \"Wie kann ich meinen ChatGPT-Datenexport analysieren?\",<br \/>\n\"title\": \"Datenanalyse\"<br \/>\n}<br \/>\n}<\/code><\/p>\n<p>Cette structure pr\u00e9sente un grand avantage. Les vecteurs sont utilis\u00e9s pour la recherche s\u00e9mantique, tandis que la charge utile contient toutes les informations que nous souhaitons afficher ou analyser ult\u00e9rieurement. Cela permet \u00e0 notre syst\u00e8me de rester flexible et d'\u00eatre facilement \u00e9tendu par la suite.<\/p>\n<p>La partie la plus importante de l'infrastructure est donc d\u00e9j\u00e0 pr\u00eate. Notre serveur Qdrant fonctionne, la base de donn\u00e9es est configur\u00e9e et nous savons quelle sera la structure de nos donn\u00e9es. Dans le chapitre suivant, nous entamons l'\u00e9tape d\u00e9cisive : nous importons nos donn\u00e9es ChatGPT dans la base de donn\u00e9es et transformons nos archives de conversations en une v\u00e9ritable base de connaissances consultable.<\/p>\n<h2>Importer les donn\u00e9es ChatGPT dans Qdrant<\/h2>\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 Qdrant install et une collection dans le chapitre pr\u00e9c\u00e9dent, la base technique de notre base de connaissances est en place. Nos embeddings existent d\u00e9j\u00e0 - nous les avons cr\u00e9\u00e9s \u00e0 partir des donn\u00e9es ChatGPT - et Qdrant fonctionne comme serveur de base de donn\u00e9es sur notre machine.<\/p>\n<p>Vient maintenant l'\u00e9tape d\u00e9cisive : nous chargeons nos donn\u00e9es dans la base de donn\u00e9es. Ce faisant, nous ne stockons pas seulement les vecteurs eux-m\u00eames, mais aussi les textes et les m\u00e9tadonn\u00e9es qui leur sont associ\u00e9s. Cette combinaison permettra plus tard \u00e0 notre IA de trouver des contenus pertinents et de les utiliser dans des r\u00e9ponses. Dans ce chapitre, nous construisons donc la base de connaissances proprement dite de notre syst\u00e8me.<\/p>\n<h3>Enregistrer les embeddings<\/h3>\n<p>Tout d'abord, nous devons transf\u00e9rer les embeddings que nous avons cr\u00e9\u00e9s dans la base de donn\u00e9es. Chaque entr\u00e9e dans Qdrant se compose de trois \u00e9l\u00e9ments :<\/p>\n<ul>\n<li>d'un identifiant<\/li>\n<li>un vecteur (embedding)<\/li>\n<li>d'une charge utile contenant des donn\u00e9es suppl\u00e9mentaires<\/li>\n<\/ul>\n<p>Dans notre cas, la charge utile contient par exemple<\/p>\n<ul>\n<li>la section de texte<\/li>\n<li>le titre de l'entretien<\/li>\n<li>\u00e9ventuellement d'autres m\u00e9tadonn\u00e9es<\/li>\n<\/ul>\n<p>En Python, nous pouvons pr\u00e9parer cette structure assez facilement. Un exemple :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">points = []\r\nfor idx, item in enumerate(embeddings):\r\npoints.append({\r\n\"id\": idx,\r\n\"vector\": item[\"embedding\"],\r\n\"payload\": {\r\n\"text\": item[\"text\"],\r\n\"title\": item[\"title\"]\r\n}\r\n})<\/pre>\n<p>Nous cr\u00e9ons ainsi une liste de points de donn\u00e9es que nous pouvons ensuite enregistrer dans Qdrant. Chaque point de donn\u00e9es contient donc une section de texte, le vecteur correspondant et des informations contextuelles suppl\u00e9mentaires. Cette structure constituera plus tard la base de notre recherche s\u00e9mantique.<\/p>\n<h3>Cr\u00e9er un script d'importation<\/h3>\n<p>Nous allons maintenant connecter notre script Python \u00e0 Qdrant et transf\u00e9rer les donn\u00e9es. Pour cela, nous utilisons le client Qdrant Python que nous avons pr\u00e9sent\u00e9 dans le chapitre pr\u00e9c\u00e9dent install. L'importation peut par exemple ressembler \u00e0 ceci<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">from qdrant_client import QdrantClient\r\nfrom qdrant_client.models import PointStruct\r\nclient = QdrantClient(\"localhost\", port=6333)\r\npoints = []\r\nfor idx, item in enumerate(embeddings):\r\npoint = PointStruct(\r\nid=idx,\r\nvector=item[\"embedding\"],\r\npayload={\r\n\"text\": item[\"text\"],\r\n\"title\": item[\"title\"]\r\n}\r\n)\r\npoints.append(point)\r\nclient.upsert(\r\ncollection_name=\"chatgpt_archive\",\r\npoints=points\r\n)\r\nprint(\"Import abgeschlossen:\", len(points), \"Datens\u00e4tze gespeichert.\")<\/pre>\n<p>La commande upsert veille \u00e0 ce que les donn\u00e9es soient enregistr\u00e9es dans la collection. Si un identifiant existe d\u00e9j\u00e0, l'enregistrement est mis \u00e0 jour. Dans le cas contraire, un nouvel enregistrement est cr\u00e9\u00e9. Selon la taille de ton exportation ChatGPT, cette importation peut prendre quelques secondes ou minutes. Pour les grands ensembles de donn\u00e9es - par exemple plusieurs milliers de sections de texte - c'est tout \u00e0 fait normal.<\/p>\n<h3>Tester la base de donn\u00e9es<\/h3>\n<p>Une fois l'importation termin\u00e9e, nous devons v\u00e9rifier si nos donn\u00e9es ont \u00e9t\u00e9 correctement enregistr\u00e9es. Le test le plus simple consiste \u00e0 effectuer une recherche vectorielle. Pour ce faire, nous commen\u00e7ons par cr\u00e9er un embedding pour une question test.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">query = \"Wie kann ich ChatGPT-Daten analysieren?\"\r\nquery_vector = ollama.embeddings(\r\nmodel=\"nomic-embed-text\",\r\nprompt=query\r\n)[\"embedding\"]<\/pre>\n<p>Nous pouvons maintenant rechercher des vecteurs similaires dans Qdrant.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">search_result = client.search(\r\ncollection_name=\"chatgpt_archive\",\r\nquery_vector=query_vector,\r\nlimit=3\r\n)<\/pre>\n<p>Cette commande nous renvoie les trois sections de texte les plus similaires de notre base de donn\u00e9es. Nous pouvons par exemple les afficher ainsi :<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">for result in search_result:\r\nprint(result.payload[\"text\"])\r\nprint(\"---\")<\/pre>\n<p>Si tout a bien fonctionn\u00e9, des parties de chat de tes archives correspondant \u00e0 la requ\u00eate de recherche apparaissent maintenant. Ainsi, nous savons : Notre base de donn\u00e9es fonctionne.<\/p>\n<h3>Premier contr\u00f4le des r\u00e9sultats<\/h3>\n<p>Ce moment est l'un des plus passionnants de tout le projet. Pour la premi\u00e8re fois, on voit que nos archives de chat peuvent r\u00e9ellement \u00eatre utilis\u00e9es comme source de connaissances. Tu peux maintenant essayer diff\u00e9rentes requ\u00eates de recherche. Par exemple<\/p>\n<ul>\n<li>\u201eArticle sur l'IA\u201c<\/li>\n<li>\u201eSyst\u00e8me RAG\u201c<\/li>\n<li>\u201eChatGPT Exportation de donn\u00e9es\u201c<\/li>\n<li>\u201eId\u00e9e de strat\u00e9gie\u201c<\/li>\n<\/ul>\n<p>Selon le contenu de ton historique de chat, Qdrant trouvera des passages appropri\u00e9s. Parfois, tu seras surpris par les contenus qui r\u00e9apparaissent. Des conversations que tu avais oubli\u00e9es depuis longtemps peuvent soudain redevenir pertinentes. Cela montre tr\u00e8s clairement pourquoi une telle approche est si int\u00e9ressante. Tes anciennes conversations IA ne sont plus de simples archives. Elles deviennent une base de connaissances sur laquelle il est possible de faire des recherches.<\/p>\n<p>Nous avons ainsi franchi une \u00e9tape importante. Nos donn\u00e9es ChatGPT sont d\u00e9sormais enti\u00e8rement stock\u00e9es dans la base de donn\u00e9es vectorielle et peuvent faire l'objet d'une recherche s\u00e9mantique. Dans le chapitre suivant, nous allons encore plus loin : nous relions notre base de connaissances \u00e0 l'IA elle-m\u00eame. Cela permettra \u00e0 l'avenir au mod\u00e8le linguistique d'acc\u00e9der \u00e0 ces donn\u00e9es et de les int\u00e9grer directement dans les r\u00e9ponses.<\/p>\n<figure id=\"attachment_5470\" aria-describedby=\"caption-attachment-5470\" style=\"width: 2550px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5470\" src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-scaled.jpg\" alt=\"Tableau de bord Qdrant sur http:\/\/localhost:6333\/dashboard\" width=\"2560\" height=\"1786\" srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-scaled.jpg 2560w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-300x209.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-1024x714.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-768x536.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-1536x1071.jpg 1536w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-2048x1429.jpg 2048w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Qdrant-Collections-18x12.jpg 18w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption id=\"caption-attachment-5470\" class=\"wp-caption-text\">Tableau de bord Qdrant sur http:\/\/localhost:6333\/dashboard<\/figcaption><\/figure>\n<h2>Relier l'IA \u00e0 la base de connaissances<\/h2>\n<p>Jusqu'ici, nous avons d\u00e9j\u00e0 mis en place une grande partie de l'infrastructure. Nos donn\u00e9es ChatGPT ont \u00e9t\u00e9 extraites de l'exportation, d\u00e9coup\u00e9es en sections de texte plus petites, dot\u00e9es d'embeddings et finalement stock\u00e9es dans la base de donn\u00e9es vectorielles Qdrant.<\/p>\n<p>Mais pour l'instant, notre IA ne travaille pas encore avec ces donn\u00e9es. Nous pouvons certes effectuer une recherche vectorielle via Python et trouver des sections de texte correspondantes, mais l'IA elle-m\u00eame n'en sait encore rien. Lorsque nous lui posons une question, elle continue \u00e0 utiliser ses connaissances linguistiques g\u00e9n\u00e9rales.<\/p>\n<p>L'\u00e9tape suivante consiste donc \u00e0 relier ces deux mondes. Nous construisons maintenant un processus dans lequel l'IA re\u00e7oit d'abord le contenu pertinent de la base de connaissances et l'int\u00e8gre ensuite dans sa r\u00e9ponse. C'est pr\u00e9cis\u00e9ment le c\u0153ur d'un syst\u00e8me RAG.<\/p>\n<h3>Processus de demande<\/h3>\n<p>Le d\u00e9roulement d'une demande est l\u00e9g\u00e8rement modifi\u00e9 par notre syst\u00e8me de connaissances. Jusqu'\u00e0 pr\u00e9sent, une conversation avec une IA se d\u00e9roulait g\u00e9n\u00e9ralement de la mani\u00e8re suivante :<\/p>\n<ol>\n<li>Tu poses une question \u2192<\/li>\n<li>l'IA traite la question \u2192<\/li>\n<li>l'IA g\u00e9n\u00e8re une r\u00e9ponse.<\/li>\n<\/ol>\n<p>Avec une base de connaissances, une \u00e9tape suppl\u00e9mentaire est ajout\u00e9e. La nouvelle proc\u00e9dure se pr\u00e9sente comme suit :<\/p>\n<ol>\n<li>Tu poses une question \u2192<\/li>\n<li>la question est transform\u00e9e en un embedding \u2192<\/li>\n<li>la base de donn\u00e9es vectorielle recherche des textes similaires \u2192<\/li>\n<li>ces textes sont transmis \u00e0 l'IA en tant que contexte \u2192.<\/li>\n<\/ol>\n<p>l'IA formule une r\u00e9ponse. Cela signifie que l'IA ne travaille plus seulement avec ses connaissances entra\u00een\u00e9es, mais en plus avec tes propres donn\u00e9es. Ce contexte rend souvent les r\u00e9ponses beaucoup plus pr\u00e9cises et personnelles.<\/p>\n<h3>\u00c9tape de r\u00e9cup\u00e9ration<\/h3>\n<p>La premi\u00e8re partie de ce processus s'appelle la r\u00e9cup\u00e9ration. Retrieval signifie simplement \u201er\u00e9cup\u00e9rer\u201c. Dans cette \u00e9tape, notre syst\u00e8me recherche dans la base de donn\u00e9es des contenus qui correspondent th\u00e9matiquement \u00e0 la question. Tout d'abord, nous cr\u00e9ons \u00e0 nouveau un embedding pour la question actuelle.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">query = \"Welche Ideen hatte ich zur Nutzung meines ChatGPT-Datenexports?\"\r\nquery_vector = ollama.embeddings(\r\nmodel=\"nomic-embed-text\",\r\nprompt=query\r\n)[\"embedding\"]<\/pre>\n<p>Cet embedding d\u00e9crit la signification de la question sous forme math\u00e9matique. Qdrant peut maintenant rechercher des vecteurs similaires.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">results = client.search(\r\ncollection_name=\"chatgpt_archive\",\r\nquery_vector=query_vector,\r\nlimit=5\r\n)<\/pre>\n<p>La base de donn\u00e9es renvoie maintenant les cinq passages de texte qui correspondent le mieux \u00e0 la question. Ces passages de texte constituent le contexte pour l'IA. Nous les rassemblons dans une liste.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">context_texts = []\r\nfor r in results:\r\ncontext_texts.append(r.payload[\"text\"])<\/pre>\n<p>Nous disposons d\u00e9sormais d'une collection de contenus pertinents issus de nos archives de chat.<\/p>\n<h3>Transf\u00e9rer le contexte \u00e0 Ollama<\/h3>\n<p>Voici maintenant l'\u00e9tape d\u00e9cisive. Nous transmettons ce contexte, ainsi que la question initiale, \u00e0 notre mod\u00e8le linguistique. Le mod\u00e8le peut maintenant utiliser ces informations pour formuler une r\u00e9ponse.<\/p>\n<p>Tout d'abord, nous construisons ce que l'on appelle un prompt. Une invite est simplement le texte que nous envoyons \u00e0 l'IA.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">context = \"\\n\\n\".join(context_texts)\r\nprompt = f\"\"\"\r\nDu bist ein KI-Assistent, der mit meinem pers\u00f6nlichen Wissensarchiv arbeitet.\r\nNutze die folgenden Textausschnitte als Kontext:\r\n{context}\r\nBeantworte nun diese Frage:\r\n{query}\r\n\"\"\"<\/pre>\n<p>Nous envoyons maintenant cette invite \u00e0 notre mod\u00e8le de langage en Ollama.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">response = ollama.chat(\r\nmodel=\"llama3\",\r\nmessages=[\r\n{\"role\": \"user\", \"content\": prompt}\r\n]\r\n)\r\nprint(response[\"message\"][\"content\"])<\/pre>\n<p>L'IA re\u00e7oit maintenant \u00e0 la fois la question et les passages pertinents de notre base de donn\u00e9es. Elle peut ainsi g\u00e9n\u00e9rer des r\u00e9ponses bas\u00e9es sur nos propres donn\u00e9es.<\/p>\n<h3>G\u00e9n\u00e9ration de r\u00e9ponses<\/h3>\n<p>La derni\u00e8re \u00e9tape est la g\u00e9n\u00e9ration de la r\u00e9ponse proprement dite. Le mod\u00e8le linguistique combine maintenant deux sources de connaissances :<\/p>\n<p>ses propres connaissances entra\u00een\u00e9es<\/p>\n<p>le contexte de notre base de connaissances<\/p>\n<p>Cette combinaison est particuli\u00e8rement puissante. Le mod\u00e8le peut expliquer des relations g\u00e9n\u00e9rales tout en int\u00e9grant des contenus concrets de nos archives. Prenons un exemple : Si tu demandes<\/p>\n<blockquote><p><em>\u201eQuelles \u00e9taient mes id\u00e9es pour utiliser mon exportation de donn\u00e9es ChatGPT ?\u201c<\/em><\/p><\/blockquote>\n<p>l'IA peut d\u00e9sormais acc\u00e9der \u00e0 des conversations ant\u00e9rieures et en faire un r\u00e9sum\u00e9 structur\u00e9. Elle pourrait par exemple r\u00e9pondre<\/p>\n<ul>\n<li>Tu as parl\u00e9 de constituer une archive personnelle de connaissances<\/li>\n<li>Tu voulais d\u00e9velopper une IA locale avec un syst\u00e8me RAG<\/li>\n<li>Tu as d\u00e9velopp\u00e9 l'id\u00e9e d'une s\u00e9rie d'articles<\/li>\n<\/ul>\n<p>Sans l'\u00e9tape de r\u00e9cup\u00e9ration, l'IA n'aurait m\u00eame pas connu ces informations. Avec notre syst\u00e8me, tes archives de chat deviennent une v\u00e9ritable source de connaissances. La partie la plus importante de notre syst\u00e8me est ainsi enti\u00e8rement construite. Nous avons maintenant<\/p>\n<ul>\n<li>une IA locale via Ollama<\/li>\n<li>une base de donn\u00e9es vectorielle contenant nos donn\u00e9es de chat<\/li>\n<li>une recherche s\u00e9mantique<\/li>\n<li>un flux de travail RAG<\/li>\n<\/ul>\n<p>Dans le prochain chapitre, nous testerons ce syst\u00e8me dans la pratique et verrons \u00e0 quel point notre IA de connaissance personnelle fonctionne r\u00e9ellement.<\/p>\n<figure id=\"attachment_5469\" aria-describedby=\"caption-attachment-5469\" style=\"width: 1408px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5469\" src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen.jpg\" alt=\"Terminal apr\u00e8s l&#039;importation r\u00e9ussie des donn\u00e9es ChatGPT\" width=\"1418\" height=\"994\" srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen.jpg 1418w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen-300x210.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen-1024x718.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen-768x538.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Terminal-Import-abgeschlossen-18x12.jpg 18w\" sizes=\"auto, (max-width: 1418px) 100vw, 1418px\" \/><figcaption id=\"caption-attachment-5469\" class=\"wp-caption-text\">Terminal apr\u00e8s l'importation r\u00e9ussie des donn\u00e9es ChatGPT<\/figcaption><\/figure>\n<h2>Premi\u00e8res interrogations avec ton IA de connaissances personnelle<\/h2>\n<p>Apr\u00e8s avoir \u00e9tabli le lien entre notre IA et la base de connaissances dans le chapitre pr\u00e9c\u00e9dent, le syst\u00e8me est techniquement complet. Nos donn\u00e9es ChatGPT se trouvent dans la base de donn\u00e9es vectorielle, l'IA peut r\u00e9cup\u00e9rer les contenus pertinents et l'ensemble du processus d'un syst\u00e8me RAG fonctionne.<\/p>\n<p>C'est maintenant qu'intervient la partie la plus passionnante du projet : les premi\u00e8res vraies requ\u00eates. En effet, c'est seulement maintenant que l'on peut voir si notre syst\u00e8me fait vraiment ce que nous esp\u00e9rions, \u00e0 savoir trouver des conversations ant\u00e9rieures, analyser leur contenu et g\u00e9n\u00e9rer des r\u00e9ponses pertinentes. Dans ce chapitre, nous testons notre IA de la connaissance, nous examinons des cas d'utilisation typiques et nous jetons un coup d'\u0153il sur les optimisations possibles.<\/p>\n<h3>Exemples de requ\u00eates<\/h3>\n<p>Commen\u00e7ons par quelques questions simples. Une bonne strat\u00e9gie consiste \u00e0 commencer par poser des questions dont tu sais qu'elles se trouvent dans tes archives de chat. Par exemple<\/p>\n<blockquote><p><em>\u201eQuelles \u00e9taient mes id\u00e9es pour utiliser mon exportation de donn\u00e9es ChatGPT ?\u201c<\/em><br \/>\n<em>\u201eQu'est-ce que j'ai \u00e9crit sur les syst\u00e8mes RAG ?\u201c<\/em><br \/>\n<em>\u201eQuelles sont les strat\u00e9gies dont j'ai discut\u00e9 pour utiliser l'IA ?\u201c<\/em><\/p><\/blockquote>\n<p>Ces questions contiennent volontairement des formulations ouvertes. L'objectif n'est pas de retrouver un texte pr\u00e9cis, mais de d\u00e9couvrir des contenus th\u00e9matiquement appropri\u00e9s. Lorsque tu poses une telle question \u00e0 ton syst\u00e8me, le processus que nous avons mis en place dans le chapitre pr\u00e9c\u00e9dent se d\u00e9roule en arri\u00e8re-plan :<\/p>\n<ol>\n<li>La question est transform\u00e9e en embedding.<\/li>\n<li>La base de donn\u00e9es vectorielle recherche des sections de texte similaires.<\/li>\n<li>Ces passages sont transmis \u00e0 l'IA en tant que contexte.<\/li>\n<li>L'IA g\u00e9n\u00e8re une r\u00e9ponse sur la base de ce contexte.<\/li>\n<\/ol>\n<p>Le r\u00e9sultat peut \u00eatre surprenant. Souvent, des conversations que tu avais oubli\u00e9es depuis longtemps refont surface. D'anciennes id\u00e9es r\u00e9apparaissent soudain \u00e0 l'\u00e9cran - parfois m\u00eame dans un contexte totalement nouveau.<\/p>\n<p>C'est pr\u00e9cis\u00e9ment l\u00e0 que r\u00e9side la force de cette approche. Tes archives de chat deviennent une source de connaissances consultable.<\/p>\n<h3>Qualit\u00e9 des r\u00e9ponses<\/h3>\n<p>Si tu essaies quelques interrogations, tu constateras que la qualit\u00e9 des r\u00e9ponses peut varier. C'est tout \u00e0 fait normal. La qualit\u00e9 d'un tel syst\u00e8me d\u00e9pend de plusieurs facteurs. Un facteur important est la taille des chapitres de texte. Si les sections sont trop grandes, elles peuvent contenir plusieurs sujets. Cela rend la recherche moins pr\u00e9cise.<\/p>\n<p>En revanche, si les chunks sont trop petits, le contexte n\u00e9cessaire fait parfois d\u00e9faut. Un autre facteur est le mod\u00e8le d'int\u00e9gration. Diff\u00e9rents mod\u00e8les reconnaissent plus ou moins bien les contextes de signification. Certains sont particuli\u00e8rement adapt\u00e9s aux textes techniques, d'autres au langage g\u00e9n\u00e9ral.<\/p>\n<p>Le nombre de r\u00e9sultats consult\u00e9s joue \u00e9galement un r\u00f4le. Si tu ne r\u00e9cup\u00e8res par exemple que deux passages de texte, il se peut qu'il manque des informations importantes. En revanche, si trop de textes sont charg\u00e9s, l'IA peut avoir du mal \u00e0 reconna\u00eetre le contexte pertinent.<\/p>\n<p>Ces param\u00e8tres peuvent \u00eatre facilement adapt\u00e9s par la suite. L'essentiel est d'abord de disposer d'un syst\u00e8me de base qui fonctionne.<\/p>\n<h3>Probl\u00e8mes typiques<\/h3>\n<p>Comme pour tout syst\u00e8me technique, certaines difficult\u00e9s peuvent survenir. L'un des probl\u00e8mes les plus fr\u00e9quents est que la base de donn\u00e9es trouve des textes qui ne sont que partiellement pertinents. Cela est d\u00fb au fait que la recherche s\u00e9mantique travaille toujours avec des probabilit\u00e9s.<\/p>\n<p>Un autre probl\u00e8me peut survenir lorsque les textes sont trop fragment\u00e9s. Si une pens\u00e9e est r\u00e9partie sur plusieurs chunks, l'IA peut avoir des difficult\u00e9s \u00e0 reconna\u00eetre le contexte.<\/p>\n<p>Le prompt joue \u00e9galement un r\u00f4le. Si l'invite n'est pas clairement formul\u00e9e, il se peut que l'IA n'utilise pas le contexte de mani\u00e8re optimale. Un exemple d'une meilleure invite pourrait ressembler \u00e0 ceci :<\/p>\n<blockquote><p><em>Utilise les extraits de texte suivants issus de mes archives de connaissances,<\/em><br \/>\n<em>pour r\u00e9pondre le plus pr\u00e9cis\u00e9ment possible \u00e0 la question.<\/em><br \/>\n<em>S'il y a des contenus pertinents, r\u00e9sume-les.<\/em><\/p><\/blockquote>\n<p>De tels petits ajustements peuvent am\u00e9liorer consid\u00e9rablement la qualit\u00e9 des r\u00e9ponses.<\/p>\n<h3>R\u00e9glage fin<\/h3>\n<p>Une fois que le syst\u00e8me fonctionne en principe, la partie la plus int\u00e9ressante commence : le peaufinage. Ici, tu peux exp\u00e9rimenter et am\u00e9liorer ton syst\u00e8me de connaissances pas \u00e0 pas. Voici quelques optimisations typiques :<\/p>\n<ul>\n<li><strong>Ajustement de la taille des chunk<\/strong><br \/>\nParfois, des sections de texte plus petites donnent de meilleurs r\u00e9sultats. Dans d'autres cas, il est pr\u00e9f\u00e9rable d'avoir plus de contexte.<\/li>\n<li><strong>Utilisation d'un autre mod\u00e8le d'int\u00e9gration<\/strong><br \/>\nUn changement de mod\u00e8le peut am\u00e9liorer consid\u00e9rablement la qualit\u00e9 de la recherche s\u00e9mantique.<\/li>\n<li><strong>Plus de contexte pour l'IA<\/strong><br \/>\nTu peux extraire plus de r\u00e9sultats de la base de donn\u00e9es, par exemple dix passages au lieu de cinq.<\/li>\n<li><strong>Utiliser les m\u00e9tadonn\u00e9es<\/strong><br \/>\nSi tu enregistres des informations suppl\u00e9mentaires - comme la date ou le titre de la conversation - tu pourras filtrer la recherche de mani\u00e8re plus pr\u00e9cise par la suite.<\/li>\n<\/ul>\n<p>Ces ajustements font partie de tout syst\u00e8me RAG r\u00e9el. Il existe rarement un r\u00e9glage parfait pour toutes les situations. Mais c'est aussi ce qui fait l'int\u00e9r\u00eat de tels syst\u00e8mes : ils peuvent \u00eatre am\u00e9lior\u00e9s en permanence.<\/p>\n<p>Avec ce chapitre, nous avons r\u00e9alis\u00e9 le premier test complet de notre syst\u00e8me. Nous avons vu que notre IA de connaissances personnelles est effectivement capable de parcourir d'anciennes conversations et de retrouver des contenus pertinents.<\/p>\n<p>Le c\u0153ur de notre projet est donc d\u00e9j\u00e0 atteint. Mais le syst\u00e8me peut encore \u00eatre consid\u00e9rablement \u00e9tendu. Dans le prochain chapitre, nous verrons donc comment int\u00e9grer d'autres sources de donn\u00e9es et d\u00e9velopper petit \u00e0 petit tes archives personnelles de connaissances.<\/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-578 { --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-578 { --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\">Derniers articles sur Allemagne<\/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-578\" class=\"dpt-wrapper dpt-list2 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=\"der zwei-plus-vier-vertrag, die nato und die bundeswehr: was gilt heute noch?\" data-id=\"4740\"  data-category=\"allgemein gesellschaft\" data-post_tag=\"deutschland europa geopolitik krisen sicherheitspolitik spieltheorie\">\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\/le-traite-deux-plus-quatre-lotan-et-larmee-allemande-quest-ce-qui-est-encore-valable-aujourdhui\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Le trait\u00e9 deux-plus-quatre, l'OTAN et la Bundeswehr : qu'est-ce qui est encore valable 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=\"\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Zwei-Plus-Vier-Vertrag.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Zwei-Plus-Vier-Vertrag.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Zwei-Plus-Vier-Vertrag-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Zwei-Plus-Vier-Vertrag-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Zwei-Plus-Vier-Vertrag-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\/fr\/2026\/02\/le-traite-deux-plus-quatre-lotan-et-larmee-allemande-quest-ce-qui-est-encore-valable-aujourdhui\/\" rel=\"bookmark\">Le trait\u00e9 deux-plus-quatre, l'OTAN et la Bundeswehr : qu'est-ce qui est encore valable 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=\"johann sebastian bach \u2013 ordnung, haltung und das fundament unserer musik\" data-id=\"5033\"  data-category=\"allgemein gesellschaft kunst &amp; kultur\" data-post_tag=\"deutschland musik portrait\">\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\/johann-sebastian-bach-lordre-lattitude-et-le-fondement-de-notre-musique\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Jean-S\u00e9bastien Bach - Ordre, attitude et fondement de notre musique<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Portrait de Johann Sebastian Bach\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Johann-Sebastian-Bach-Portrait.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Johann-Sebastian-Bach-Portrait.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Johann-Sebastian-Bach-Portrait-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Johann-Sebastian-Bach-Portrait-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Johann-Sebastian-Bach-Portrait-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\/fr\/2026\/02\/johann-sebastian-bach-lordre-lattitude-et-le-fondement-de-notre-musique\/\" rel=\"bookmark\">Jean-S\u00e9bastien Bach - Ordre, attitude et fondement de notre musique<\/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=\"hohe energiepreise in deutschland verstehen: gas, strom und benzin einfach erkl\u00e4rt\" data-id=\"4103\"  data-category=\"allgemein featured gesellschaft tipps &amp; anleitungen\" data-post_tag=\"deutschland energiepolitik eu-gesetze europa krisen ratgeber\">\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\/comprendre-les-prix-eleves-de-lenergie-en-allemagne-le-gaz-lelectricite-et-lessence-expliques-simplement\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Comprendre les prix \u00e9lev\u00e9s de l'\u00e9nergie en Allemagne : Le gaz, l'\u00e9lectricit\u00e9 et l'essence expliqu\u00e9s simplement<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Prix de l&#039;\u00e9nergie en Allemagne\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/energiepreise-deutschland-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\/fr\/2025\/12\/comprendre-les-prix-eleves-de-lenergie-en-allemagne-le-gaz-lelectricite-et-lessence-expliques-simplement\/\" rel=\"bookmark\">Comprendre les prix \u00e9lev\u00e9s de l'\u00e9nergie en Allemagne : Le gaz, l'\u00e9lectricit\u00e9 et l'essence expliqu\u00e9s simplement<\/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=\"dieter bohlen im klartext: warum deutschland an der eigenen b\u00fcrokratie scheitert\" data-id=\"3546\"  data-category=\"allgemein b\u00fccher gesellschaft kunst &amp; kultur\" data-post_tag=\"buch deutschland erfahrungen krisen meinungsfreiheit musik\">\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\/11\/dieter-bohlen-explique-clairement-pourquoi-lallemagne-echoue-a-cause-de-sa-propre-bureaucratie\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Dieter Bohlen en clair : pourquoi l'Allemagne \u00e9choue \u00e0 cause de sa propre bureaucratie<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1536\" height=\"1024\" class=\"attachment-full size-full\" alt=\"Dieter Bohlen s&#039;entretient avec Dominik Kettner\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/bohlen-kettner-germany.jpg\" data-dpt-sizes=\"(max-width: 1536px) 100vw, 1536px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/bohlen-kettner-germany.jpg 1536w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/bohlen-kettner-germany-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/bohlen-kettner-germany-1024x683.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/bohlen-kettner-germany-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/bohlen-kettner-germany-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\/fr\/2025\/11\/dieter-bohlen-explique-clairement-pourquoi-lallemagne-echoue-a-cause-de-sa-propre-bureaucratie\/\" rel=\"bookmark\">Dieter Bohlen en clair : pourquoi l'Allemagne \u00e9choue \u00e0 cause de sa propre bureaucratie<\/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>Extensions pour ton syst\u00e8me de connaissances IA personnel<\/h2>\n<p>Avec la structure que tu as mise en place jusqu'\u00e0 pr\u00e9sent, tu as d\u00e9j\u00e0 cr\u00e9\u00e9 un syst\u00e8me qui fonctionne. Tes donn\u00e9es ChatGPT ont \u00e9t\u00e9 extraites, transform\u00e9es en embeddings, stock\u00e9es dans Qdrant et finalement reli\u00e9es \u00e0 une IA locale. Le r\u00e9sultat est une IA de connaissance qui peut acc\u00e9der \u00e0 des conversations ant\u00e9rieures.<\/p>\n<p>Mais \u00e0 vrai dire, nous n'en sommes qu'au d\u00e9but. L'architecture que tu as mise en place n'est pas limit\u00e9e aux donn\u00e9es ChatGPT. Elle fonctionne avec tout type de texte. Tout ce qui peut \u00eatre converti en documents ou en fichiers texte peut faire partie de ce syst\u00e8me de connaissances. C'est l\u00e0 que r\u00e9side le v\u00e9ritable potentiel de tels syst\u00e8mes.<\/p>\n<p>Ce que nous avons fondamentalement construit, c'est une machine \u00e0 savoir personnelle. Et cette machine peut \u00eatre \u00e9tendue pas \u00e0 pas. Dans ce chapitre, nous allons voir quelles sont les possibilit\u00e9s qui en d\u00e9coulent et comment tu peux d\u00e9velopper ton syst\u00e8me \u00e0 long terme.<\/p>\n<h3>Int\u00e9grer d'autres sources de donn\u00e9es<\/h3>\n<p>L'\u00e9tape suivante la plus \u00e9vidente consiste \u00e0 ajouter d'autres contenus \u00e0 ta base de connaissances. Les conversations ChatGPT sont un bon d\u00e9but, mais elles ne repr\u00e9sentent g\u00e9n\u00e9ralement qu'une partie de tes connaissances. De nombreuses informations sont disponibles sous d'autres formats. Par exemple :<\/p>\n<ul>\n<li>propres articles<\/li>\n<li>Notes<\/li>\n<li>Documents PDF<\/li>\n<li>Documents de recherche<\/li>\n<li>Livres \u00e9lectroniques<\/li>\n<li>Protocoles ou listes d'id\u00e9es<\/li>\n<\/ul>\n<p>Tous ces contenus peuvent \u00eatre trait\u00e9s de la m\u00eame mani\u00e8re que nos donn\u00e9es de chat. Le processus reste identique :<\/p>\n<ul>\n<li>Extraire du texte<\/li>\n<li>Diviser le texte en chunks<\/li>\n<li>Cr\u00e9er des embeddings<\/li>\n<li>Enregistrer les donn\u00e9es dans Qdrant<\/li>\n<\/ul>\n<p>Voici un exemple : Si tu as \u00e9crit de nombreux articles personnels, tu peux importer ces textes dans ta base de connaissances. L'IA pourra y acc\u00e9der plus tard et reconna\u00eetre les liens. Tu pourrais par exemple demander<\/p>\n<blockquote><p><em>\u201eQuels articles ai-je \u00e9crits sur l'IA ?\u201c<\/em><\/p><\/blockquote>\n<p>ou<\/p>\n<blockquote><p><em>\u201eQuels arguments ai-je d\u00e9velopp\u00e9s pr\u00e9c\u00e9demment sur ce sujet ?\u201c<\/em><\/p><\/blockquote>\n<p>L'IA recherche ensuite dans tes archives d'articles et utilise les contenus trouv\u00e9s comme contexte. De cette mani\u00e8re, ton syst\u00e8me se d\u00e9veloppe petit \u00e0 petit pour devenir une archive de connaissances compl\u00e8te.<\/p>\n<h3>Plusieurs bases de connaissances<\/h3>\n<p>Lorsque la quantit\u00e9 de donn\u00e9es augmente, il peut \u00eatre utile de s\u00e9parer diff\u00e9rents domaines. Qdrant permet de cr\u00e9er plusieurs collections. Chaque collection peut repr\u00e9senter une base de connaissances propre. Un syst\u00e8me possible pourrait par exemple ressembler \u00e0 ceci :<\/p>\n<ul>\n<li><strong>Collection 1<\/strong>: Conversations ChatGPT<\/li>\n<li><strong>Collection 2<\/strong>: Archives des articles<\/li>\n<li><strong>Collection 3<\/strong>notes personnelles<\/li>\n<li><strong>Collection 4<\/strong>documentation technique<\/li>\n<\/ul>\n<p>Cette s\u00e9paration pr\u00e9sente plusieurs avantages. Premi\u00e8rement, la structure reste claire. Tu sais \u00e0 tout moment o\u00f9 sont stock\u00e9s certains contenus. Deuxi\u00e8mement, les requ\u00eates sont plus cibl\u00e9es. Certaines questions ne doivent peut-\u00eatre parcourir que tes archives d'articles, d'autres l'ensemble de ton syst\u00e8me de connaissances. Un exemple :<\/p>\n<ul>\n<li>Une question sur la recherche ne pourrait que consulter les archives des articles.<\/li>\n<li>En revanche, une question strat\u00e9gique pourrait prendre en compte toutes les collections en m\u00eame temps.<\/li>\n<\/ul>\n<p>De telles structures rendent les grands syst\u00e8mes de connaissances nettement plus performants.<\/p>\n<h3>Mises \u00e0 jour automatiques<\/h3>\n<p>Une autre \u00e9tape utile consiste \u00e0 actualiser r\u00e9guli\u00e8rement ton syst\u00e8me. Dans l'exemple pr\u00e9c\u00e9dent, nous avons trait\u00e9 une fois l'exportation des donn\u00e9es ChatGPT. Mais dans la pratique, de nouveaux contenus sont cr\u00e9\u00e9s en permanence.<\/p>\n<p>Nouvelles conversations, nouvelles notes, nouveaux documents - toutes ces informations pourraient \u00e9galement faire partie de tes archives de connaissances.<br \/>\nIl vaut donc la peine de r\u00e9fl\u00e9chir \u00e0 des mises \u00e0 jour automatiques. Une solution simple consiste \u00e0 importer r\u00e9guli\u00e8rement de nouvelles donn\u00e9es. Par exemple<\/p>\n<ul>\n<li>traiter les nouvelles donn\u00e9es de chat une fois par semaine<\/li>\n<li>lire automatiquement les nouveaux documents<\/li>\n<li>int\u00e9grer imm\u00e9diatement les nouveaux articles dans la base de donn\u00e9es<\/li>\n<\/ul>\n<p>Techniquement, cela est relativement facile \u00e0 mettre en \u0153uvre. Un petit script peut v\u00e9rifier r\u00e9guli\u00e8rement s'il y a de nouveaux fichiers et les traiter automatiquement. Ainsi, ton syst\u00e8me de connaissances s'agrandit continuellement. Au fil du temps, il en r\u00e9sulte des archives de plus en plus volumineuses qui documentent tes pens\u00e9es et tes projets.<\/p>\n<h3>Int\u00e9gration dans des applications propres<\/h3>\n<p>Jusqu'\u00e0 pr\u00e9sent, notre syst\u00e8me a \u00e9t\u00e9 utilis\u00e9 via de simples scripts Python. Mais \u00e0 long terme, ce syst\u00e8me pourra \u00e9galement \u00eatre int\u00e9gr\u00e9 dans des applications personnelles. De nombreux d\u00e9veloppeurs construisent par exemple de petites interfaces web qui leur permettent d'utiliser directement leur IA de la connaissance.<\/p>\n<p>Au lieu de lancer un script, tu peux alors simplement \u00e9crire une question dans un champ de saisie. Le m\u00eame processus s'ex\u00e9cute en arri\u00e8re-plan :<\/p>\n<ol>\n<li>Cr\u00e9er un embedding<\/li>\n<li>Rechercher dans la base de donn\u00e9es<\/li>\n<li>Transmettre le contexte \u00e0 l'IA<\/li>\n<li>G\u00e9n\u00e9rer la r\u00e9ponse<\/li>\n<\/ol>\n<p>Le r\u00e9sultat appara\u00eet alors directement dans l'interface. Une telle application peut prendre des formes tr\u00e8s diff\u00e9rentes. Par exemple<\/p>\n<ul>\n<li>une IC de recherche personnelle<\/li>\n<li>un assistant de connaissances pour les projets<\/li>\n<li>un moteur de recherche d'id\u00e9es<\/li>\n<li>une archive pour les articles et les notes<\/li>\n<\/ul>\n<p>Cela devient particuli\u00e8rement passionnant lorsque l'on combine ces syst\u00e8mes avec d'autres outils. Par exemple : un syst\u00e8me de r\u00e9daction pourrait acc\u00e9der automatiquement \u00e0 tes archives de connaissances et utiliser des articles ant\u00e9rieurs comme base de recherche. Ou un syst\u00e8me de prise de notes pourrait int\u00e9grer automatiquement de nouvelles id\u00e9es dans ta base de donn\u00e9es.<\/p>\n<p>En d'autres termes, l'IA fait partie de ton environnement de travail quotidien. Cela montre clairement que notre petit projet va bien au-del\u00e0 de l'exportation initiale des donn\u00e9es ChatGPT.<\/p>\n<p>Nous n'avons pas seulement cr\u00e9\u00e9 des archives. Nous avons cr\u00e9\u00e9 une architecture qui peut \u00eatre \u00e9tendue \u00e0 volont\u00e9. Et c'est l\u00e0 que r\u00e9side la v\u00e9ritable valeur de tels syst\u00e8mes. Ils ne sont pas statiques. Ils \u00e9voluent avec tes connaissances.<\/p>\n<h2>Version \u00e9tendue du pipeline \u00e0 t\u00e9l\u00e9charger<\/h2>\n<p>Le script suivant est une version \u00e9tendue du pipeline de l'article. Il est plus robuste et nettement plus proche d'une solution productive. Trois choses ont \u00e9t\u00e9 am\u00e9lior\u00e9es :<\/p>\n<ul>\n<li><strong>Indicateur de progression<\/strong>: L'utilisateur voit \u00e0 tout moment combien de textes ont d\u00e9j\u00e0 \u00e9t\u00e9 trait\u00e9s.<\/li>\n<li><strong>Importation par lots<\/strong>Embeddings : Les embeddings sont collect\u00e9s et \u00e9crits en bloc dans Qdrant, ce qui est nettement plus rapide que les importations individuelles.<\/li>\n<li><strong>pipeline d'int\u00e9gration plus rapide<\/strong>: Le script fonctionne de mani\u00e8re structur\u00e9e avec des chunks pr\u00e9par\u00e9s et r\u00e9duit les appels inutiles.<\/li>\n<\/ul>\n<p>Ce script convient donc particuli\u00e8rement bien lorsque l'exportation ChatGPT est importante - par exemple plusieurs milliers de conversations. D\u00e9roulement typique :<\/p>\n<ol>\n<li>Charger l'exportation ChatGPT<\/li>\n<li>Extraire des textes<\/li>\n<li>Diviser le texte en chunks<\/li>\n<li>Cr\u00e9er des embeddings<\/li>\n<li>Importer par lots dans Qdrant<\/li>\n<li>R\u00e9aliser une interrogation test<\/li>\n<\/ol>\n<h3>Param\u00e8tres importants du script<\/h3>\n<p>Certaines valeurs doivent \u00eatre adapt\u00e9es par l'utilisateur :<\/p>\n<ul>\n<li><strong>EXPORT_PFAD<\/strong><br \/>\nChemin d'acc\u00e8s aux fichiers conversations.json les plus num\u00e9rot\u00e9s de l'exportation ChatGPT.<\/li>\n<li><strong>NOM_COLLECTION<\/strong><br \/>\nNom de la collection de la base de donn\u00e9es vectorielles.<\/li>\n<li><strong>EMBED_MODEL<\/strong><br \/>\nMod\u00e8le d'int\u00e9gration de Ollama, par exemple nomic-embed-text ou mxbai-embed-large<\/li>\n<li><strong>ANSWER_MODEL<\/strong><br \/>\nMod\u00e8le de langue pour l'interrogation de test, par exemple llama, mistral ou gpt:oss<\/li>\n<li><strong>VECTOR_SIZE<\/strong><br \/>\ndimension du mod\u00e8le d'int\u00e9gration.<br \/>\nnomic-embed-text \u2192 768<br \/>\nmxbai-embed-large \u2192 1024<\/li>\n<li><strong>CHUNK_SIZE<\/strong><br \/>\nTaille des sections de texte.<br \/>\nTypiquement, 300-600 mots.<\/li>\n<li><strong>BATCH_SIZE<\/strong><br \/>\nCombien d'embeddings sont \u00e9crits simultan\u00e9ment dans Qdrant.<br \/>\nValeur typique : 50-200.<\/li>\n<\/ul>\n<p><strong><a class=\"downloadbtn\" href=\"https:\/\/markus-schall.de\/downloads\/ChatGPT_Export_Scripts.zip\">T\u00e9l\u00e9charger le script Python<\/a><\/strong><\/p>\n<h3>Reste au courant - sans publicit\u00e9<\/h3>\n<p>Si tu souhaites rester inform\u00e9(e) des mises \u00e0 jour de ce script ou des nouveaux t\u00e9l\u00e9chargements, tu peux t'inscrire \u00e0 ma newsletter mensuelle. La newsletter est volontairement l\u00e9g\u00e8re, compl\u00e8tement exempte de publicit\u00e9 et ne para\u00eet qu'une fois par mois. Tu y trouveras une s\u00e9lection des nouveaux articles les plus importants, des contenus pratiques sur l'IA, les logiciels et la num\u00e9risation ainsi que des informations sur les scripts actualis\u00e9s ou les nouvelles offres de t\u00e9l\u00e9chargement. Pas de spam, pas de mails quotidiens - seulement les contenus les plus pertinents sous forme compacte. Si tu souhaites suivre ces d\u00e9veloppements en continu, la newsletter est le moyen le plus simple de rester \u00e0 jour.<\/p>\n<div class=\"mailster-block-form-type-content wp-block-mailster-form-outside-wrapper wp-block-mailster-form-outside-wrapper-c1cd9d66 wp-block-mailster-form-outside-wrapper-5542 wp-block-mailster-form\"><style class=\"mailster-form-style-c1cd9d66\">.wp-block-mailster-form-outside-wrapper-c1cd9d66 .mailster-block-form-inner > *{margin-block-start:0;margin-block-end:0;}.wp-block-mailster-form-outside-wrapper-c1cd9d66 .mailster-block-form-inner > * + *{margin-block-start:0.9em;margin-block-end:0;}.wp-block-mailster-form-outside-wrapper-c1cd9d66 .wp-block-mailster-form-wrapper .mailster-label{}.wp-block-mailster-form-outside-wrapper-c1cd9d66 .wp-block-mailster-form-wrapper .input{}.mailster-block-form input[type=\"text\"]{padding:10px 15px;border:1px solid rgb(204, 204, 204);font:17px \/ 25.5px -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";border-radius:0px;background:rgb(250, 250, 250) none repeat scroll 0% 0% \/ auto padding-box border-box;box-shadow:none;line-height:25.5px;appearance:auto;outline:rgb(102, 102, 102) none 0px;text-transform:none;letter-spacing:normal;height:47px;}.mailster-block-form input[type=\"email\"]{padding:10px 15px;border:1px solid rgb(204, 204, 204);font:17px \/ 25.5px -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";border-radius:0px;background:rgb(250, 250, 250) none repeat scroll 0% 0% \/ auto padding-box border-box;box-shadow:none;line-height:25.5px;appearance:auto;outline:rgb(102, 102, 102) none 0px;text-transform:none;letter-spacing:normal;height:47px;}.mailster-block-form input[type=\"date\"]{}.mailster-block-form input[type=\"checkbox\"]{}.mailster-block-form input[type=\"radio\"]{}.mailster-block-form input[type=\"submit\"]{padding:10px 20px;border:0px solid rgb(0, 0, 0);font:17px \/ 25.5px -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";border-radius:5px;background:rgb(2, 123, 184) none repeat scroll 0% 0% \/ auto padding-box border-box;box-shadow:none;line-height:25.5px;appearance:button;outline:rgb(255, 255, 255) none 0px;text-transform:none;letter-spacing:normal;border:0px solid rgb(0, 0, 0);outline:rgb(255, 255, 255) none 0px;color:rgb(255, 255, 255);}.mailster-block-form select{}.mailster-block-form label{padding:0px;border:0px none rgb(58, 58, 58);font:17px \/ 25.5px -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";border-radius:0px;background:rgba(0, 0, 0, 0) none repeat scroll 0% 0% \/ auto padding-box border-box;box-shadow:none;line-height:25.5px;appearance:none;outline:rgb(58, 58, 58) none 0px;text-transform:none;letter-spacing:normal;}.mailster-block-form textarea{}<\/style>\n<form method=\"post\" novalidate class=\"wp-block-mailster-form-wrapper mailster-block-form\" action=\"\"><div class=\"mailster-block-form-inner\">\n<div class=\"wp-block-mailster-messages mailster-block-form-info mailster-wrapper\" aria-hidden=\"true\"><style>:root {--mailster--color--success-background: #6fbf4d;--mailster--color--success: #ffffff;--mailster--color--error-background: #bf4d4d;--mailster--color--error: #ffffff;}<\/style><div class=\"mailster-block-form-info-success\" style=\"width:100%\"><div>Veuillez confirmer votre inscription !<\/div><div class=\"mailster-block-form-info-extra\"><\/div><\/div><div class=\"mailster-block-form-info-error\" style=\"width:100%\"><div>Certains champs sont manquants ou incorrects !<\/div><div class=\"mailster-block-form-info-extra\"><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-mailster-field-firstname mailster-wrapper mailster-wrapper-type-text mailster-wrapper-inline\" style=\"width:100%\"><input name=\"firstname\" id=\"mailster-id-41b55c\" type=\"text\" aria-required=\"false\" aria-label=\"Pr\u00e9nom\" spellcheck=\"false\" value=\"\" class=\"input\" autocomplete=\"given-name\" placeholder=\" \"\/><label for=\"mailster-id-41b55c\" class=\"mailster-label\">Pr\u00e9nom<\/label><\/div>\n\n\n\n<div class=\"wp-block-mailster-field-email mailster-wrapper mailster-wrapper-required mailster-wrapper-type-email mailster-wrapper-inline mailster-wrapper-asterisk\"><input name=\"email\" id=\"mailster-id-f70659\" type=\"email\" aria-required=\"true\" aria-label=\"Courrier \u00e9lectronique\" spellcheck=\"false\" required value=\"\" class=\"input\" autocomplete=\"email\" placeholder=\" \"\/><label for=\"mailster-id-f70659\" class=\"mailster-label\">Courrier \u00e9lectronique<\/label><\/div>\n\n\n\n<div class=\"wp-block-mailster-field-submit mailster-wrapper mailster-wrapper-type-submit mailster-wrapper-align-center wp-block-button\"><input name=\"submit\" id=\"mailster-id-7c1924\" type=\"submit\" value=\"S&#039;inscrire ici\" class=\"wp-block-button__link submit-button\"\/><\/div>\n<\/div><script class=\"mailster-block-form-data\" type=\"application\/json\">{\"id\":5542,\"identifier\":\"c1cd9d66\",\"cooldown\":0,\"isPreview\":false,\"type\":\"submission\",\"prefill\":false}<\/script><input name=\"_timestamp\" type=\"hidden\" value=\"1777563695\" \/>\n<button class=\"mailster-block-form-close\" aria-label=\"close\" tabindex=\"0\"><svg viewbox=\"0 0 100 100\"><path d=\"M100 10.71 89.29 0 50 39.29 10.71 0 0 10.71 39.29 50 0 89.29 10.71 100 50 60.71 89.29 100 100 89.29 60.71 50z\"\/><\/svg><\/button><input type=\"hidden\" name=\"trp-form-language\" value=\"fr\"\/><\/form>\n<\/div>\n<h3>Perspective de la troisi\u00e8me partie : peaufinage, analyse et utilisation optimale des donn\u00e9es<\/h3>\n<p>Dans la troisi\u00e8me partie de la s\u00e9rie, nous allons faire un pas de plus et voir ce que l'on peut concr\u00e8tement tirer de la base de connaissances constitu\u00e9e. Maintenant que les donn\u00e9es ChatGPT sont stock\u00e9es dans Qdrant, l'utilisation proprement dite est au centre de nos pr\u00e9occupations. Nous jetons un coup d'\u0153il \u00e0 l'interface web de Qdrant, analysons les donn\u00e9es stock\u00e9es et v\u00e9rifions si la recherche s\u00e9mantique fonctionne d\u00e9j\u00e0 bien. En outre, il s'agit de proc\u00e9der \u00e0 d'importants r\u00e9glages fins : Comment le chunking doit-il \u00eatre choisi en fonction de l'application ? Comment transmettre de mani\u00e8re optimale le contexte \u00e0 un mod\u00e8le linguistique local ? Et comment peut-on am\u00e9liorer la qualit\u00e9 des r\u00e9ponses de mani\u00e8re cibl\u00e9e ? La troisi\u00e8me partie s'adresse \u00e0 tous ceux qui souhaitent tirer davantage du syst\u00e8me et le faire \u00e9voluer en toute connaissance de cause.<\/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-579 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 9px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-579 { --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\">Derniers articles 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-579\" 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=\"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\/fr\/2025\/08\/ollama-rencontre-qdrant-une-memoire-locale-pour-ton-ki-sur-mac\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Ollama rencontre Qdrant : une m\u00e9moire locale pour ton IA sur Mac<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1440\" height=\"980\" class=\"attachment-full size-full\" alt=\"M\u00e9moire pour l&#039;IA locale avec Ollama et 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: 75%\"><\/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\/ollama-rencontre-qdrant-une-memoire-locale-pour-ton-ki-sur-mac\/\" rel=\"bookmark\">Ollama rencontre Qdrant : une m\u00e9moire locale pour ton IA sur 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=\"warum ein eigenes magazin f\u00fcr unternehmen heute wichtiger ist als werbung\" data-id=\"4476\"  data-category=\"gesellschaft ki-systeme tipps &amp; anleitungen\" data-post_tag=\"datenlogik datenschutz digitales eigentum k\u00fcnstliche intelligenz ratgeber\">\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\/01\/pourquoi-un-magazine-dentreprise-est-aujourdhui-plus-important-que-la-publicite\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Pourquoi avoir son propre magazine est aujourd'hui plus important pour les entreprises que la publicit\u00e9<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Magazine en tant que propri\u00e9t\u00e9\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/magazin-gastbeitraege-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\/fr\/2026\/01\/pourquoi-un-magazine-dentreprise-est-aujourdhui-plus-important-que-la-publicite\/\" rel=\"bookmark\">Pourquoi avoir son propre magazine est aujourd'hui plus important pour les entreprises que la publicit\u00e9<\/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=\"vom content zur substanz: wie digitale systeme entstehen, die nicht kopierbar sind\" data-id=\"5899\"  data-category=\"allgemein b\u00fccher gesellschaft tipps &amp; anleitungen\" data-post_tag=\"buch datenlogik denkmodelle digitales eigentum erfahrungen k\u00fcnstliche intelligenz prozesse publishing ratgeber\">\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\/04\/du-contenu-a-la-substance-comment-des-systemes-numeriques-qui-ne-peuvent-pas-etre-copies-sont-crees\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Du contenu \u00e0 la substance : comment des syst\u00e8mes num\u00e9riques qui ne peuvent pas \u00eatre copi\u00e9s voient le jour<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"682\" class=\"attachment-full size-full\" alt=\"Un syst\u00e8me plut\u00f4t qu&#039;un contenu unique\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Organische-Reichweite-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\/fr\/2026\/04\/du-contenu-a-la-substance-comment-des-systemes-numeriques-qui-ne-peuvent-pas-etre-copies-sont-crees\/\" rel=\"bookmark\">Du contenu \u00e0 la substance : comment des syst\u00e8mes num\u00e9riques qui ne peuvent pas \u00eatre copi\u00e9s voient le jour<\/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=\"k\u00fcnstliche intelligenz: welche jobs in gefahr sind, und wie wir uns jetzt wappnen k\u00f6nnen\" data-id=\"2940\"  data-category=\"allgemein b\u00fccher gesellschaft ki-systeme\" data-post_tag=\"buch k\u00fcnstliche intelligenz llama llm mistral mlx ollama 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\/09\/lintelligence-artificielle-quels-sont-les-emplois-menaces-et-comment-sen-premunir\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Intelligence artificielle : quels sont les emplois menac\u00e9s et comment s'armer d\u00e8s maintenant ?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Quels emplois seront supprim\u00e9s \u00e0 l&#039;avenir par l&#039;IA\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/welche-jobs-fallen-durch-ki-weg.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/welche-jobs-fallen-durch-ki-weg.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/welche-jobs-fallen-durch-ki-weg-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/welche-jobs-fallen-durch-ki-weg-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/welche-jobs-fallen-durch-ki-weg-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\/fr\/2025\/09\/lintelligence-artificielle-quels-sont-les-emplois-menaces-et-comment-sen-premunir\/\" rel=\"bookmark\">Intelligence artificielle : quels sont les emplois menac\u00e9s et comment s'armer d\u00e8s maintenant ?<\/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<\/h2>\n<ol>\n<li><strong>Quel est l'int\u00e9r\u00eat d'int\u00e9grer l'exportation de mes donn\u00e9es ChatGPT dans ma propre IA ?<\/strong><br \/>\nLe principal avantage r\u00e9side dans le fait que tu peux utiliser tes propres conversations et pens\u00e9es de mani\u00e8re durable. De nombreuses personnes ont des conversations intensives avec les syst\u00e8mes d'IA sur des projets, des id\u00e9es, des analyses ou des questions personnelles. Ces contenus disparaissent g\u00e9n\u00e9ralement au fil de la plateforme. Mais si tu les exportes et les int\u00e8gres dans ta propre base de connaissances, tu en feras des archives personnelles. Ton IA locale peut alors acc\u00e9der \u00e0 ces contenus, reconna\u00eetre les liens et t'aider \u00e0 r\u00e9pondre \u00e0 de nouvelles questions. Au lieu de toujours repartir de z\u00e9ro, tu construis petit \u00e0 petit sur ta propre r\u00e9flexion.<\/li>\n<li><strong>N'est-ce pas tr\u00e8s compliqu\u00e9 pour quelqu'un qui n'est pas d\u00e9veloppeur ?<\/strong><br \/>\nAu premier abord, des termes tels que embeddings, bases de donn\u00e9es vectorielles ou syst\u00e8mes RAG semblent complexes. Dans la pratique, les diff\u00e9rentes \u00e9tapes sont toutefois relativement claires. En fait, tu n'as besoin que de trois composants : une IA locale (par exemple via Ollama), une base de donn\u00e9es vectorielle comme Qdrant et un petit script Python qui traite tes donn\u00e9es. De nombreuses \u00e9tapes se d\u00e9roulent automatiquement. Une fois le syst\u00e8me mis en place, il fonctionne comme un moteur de recherche normal ou un chatbot - sauf qu'il travaille avec tes propres connaissances.<\/li>\n<li><strong>Quelles sont exactement les donn\u00e9es contenues dans l'exportation ChatGPT ?<\/strong><br \/>\nL'exportation ChatGPT contient en g\u00e9n\u00e9ral toutes les conversations que tu as eues avec le syst\u00e8me. Cela comprend non seulement les messages de texte eux-m\u00eames, mais aussi les m\u00e9tadonn\u00e9es telles que les titres des conversations, l'horodatage et les informations structurelles. La plupart du temps, les donn\u00e9es sont disponibles au format JSON et peuvent donc \u00eatre trait\u00e9es relativement facilement par des scripts. Dans de nombreux cas, l'exportation comprend \u00e9galement des m\u00e9dias ou des fichiers vocaux, si ceux-ci ont \u00e9t\u00e9 utilis\u00e9s dans les entretiens. Toutefois, pour la constitution d'une base de connaissances, ce sont surtout les contenus textuels qui sont int\u00e9ressants.<\/li>\n<li><strong>Pourquoi utilise-t-on une base de donn\u00e9es de vecteurs et non une base de donn\u00e9es normale pour de tels syst\u00e8mes ?<\/strong><br \/>\nLes bases de donn\u00e9es normales conviennent parfaitement lorsque l'on recherche des termes ou des identifiants concrets. Elles sont toutefois moins adapt\u00e9es \u00e0 la recherche s\u00e9mantique. Une base de donn\u00e9es vectorielle ne stocke pas seulement les textes sous forme de cha\u00eenes de caract\u00e8res, mais aussi sous forme de vecteurs math\u00e9matiques qui d\u00e9crivent la signification d'un texte. Cela permet au syst\u00e8me de rechercher des similitudes de contenu. Par exemple, si tu demandes \u201eid\u00e9es d'articles sur l'intelligence artificielle\u201c, la base de donn\u00e9es peut \u00e9galement trouver des contenus dans lesquels figurent d'autres formulations telles que \u201esujets d'articles de blog sur l'intelligence artificielle\u201c.<\/li>\n<li><strong>Qu'est-ce que les embeddings et pourquoi sont-ils si importants ?<\/strong><br \/>\nLes embeddings sont des repr\u00e9sentations math\u00e9matiques de textes. Un mod\u00e8le linguistique transforme un texte en une liste de chiffres qui d\u00e9crivent la signification du texte. Les textes ayant une signification similaire sont proches les uns des autres dans l'espace math\u00e9matique. Cela permet \u00e0 une base de donn\u00e9es vectorielle de rechercher ult\u00e9rieurement des contenus similaires. Sans les embeddings, la recherche s\u00e9mantique ne serait gu\u00e8re possible. Ils constituent le fondement des syst\u00e8mes RAG modernes et sont la raison pour laquelle de tels syst\u00e8mes sont beaucoup plus flexibles que la recherche plein texte classique.<\/li>\n<li><strong>Quelle est la taille maximale de mon exportation de donn\u00e9es ChatGPT ?<\/strong><br \/>\nLa taille ne joue en principe pas un grand r\u00f4le. M\u00eame plusieurs milliers de conversations peuvent \u00eatre trait\u00e9es sans probl\u00e8me. Ce qui est d\u00e9terminant, c'est plut\u00f4t le nombre de sections de texte g\u00e9n\u00e9r\u00e9es, les fameux chunks. Une exportation plus importante entra\u00eene un plus grand nombre de chunks et donc d'embeddings. Les bases de donn\u00e9es vectorielles modernes peuvent toutefois g\u00e9rer sans probl\u00e8me des millions d'entr\u00e9es de ce type. Pour un assistant de connaissances priv\u00e9, m\u00eame un petit serveur ou un ordinateur de bureau performant suffit amplement.<\/li>\n<li><strong>Pourquoi le texte est-il divis\u00e9 en petites sections avant d'\u00eatre trait\u00e9 ?<\/strong><br \/>\nSi l'on enregistre directement des conversations compl\u00e8tes ou de grands textes sous forme d'embeddings, la recherche s\u00e9mantique devient impr\u00e9cise. Un seul texte pourrait contenir plusieurs sujets. En le divisant en sections plus petites, le syst\u00e8me peut ensuite effectuer une recherche beaucoup plus pr\u00e9cise. Chaque section d\u00e9crit un th\u00e8me plus clair. Ainsi, la base de donn\u00e9es trouve exactement les parties d'une conversation qui correspondent vraiment \u00e0 la question actuelle.<\/li>\n<li><strong>Quel est le r\u00f4le de Ollama dans ce syst\u00e8me ?<\/strong><br \/>\nOllama sert de plate-forme locale pour les mod\u00e8les linguistiques. Il te permet d'ex\u00e9cuter des mod\u00e8les d'IA directement sur ton propre ordinateur. Dans notre syst\u00e8me, Ollama remplit deux fonctions : Il cr\u00e9e des embeddings pour les textes et g\u00e9n\u00e8re des r\u00e9ponses aux questions. L'avantage, c'est que toutes les donn\u00e9es restent locales. Tes conversations et tes archives de connaissances ne quittent donc jamais ton propre ordinateur.<\/li>\n<li><strong>Pourquoi Qdrant est-il utilis\u00e9 comme base de donn\u00e9es vectorielles ?<\/strong><br \/>\nQdrant est une base de donn\u00e9es vectorielle moderne, sp\u00e9cialement con\u00e7ue pour les applications d'intelligence artificielle. Elle est rapide, facile \u00e0 installier et tr\u00e8s bien document\u00e9e. De plus, elle se connecte facilement \u00e0 Python et \u00e0 de nombreux frameworks d'IA. Pour les syst\u00e8mes de connaissances locaux, Qdrant est donc une solution particuli\u00e8rement pratique. Des alternatives seraient par exemple Chroma, Weaviate ou Pinecone.<\/li>\n<li><strong>Que signifie le terme \"syst\u00e8me RAG\" ?<\/strong><br \/>\nRAG est l'abr\u00e9viation de \u201eRetrieval-Augmented Generation\u201c. Il s'agit d'une architecture dans laquelle une IA r\u00e9cup\u00e8re d'abord des informations pertinentes dans une base de donn\u00e9es et les utilise ensuite pour g\u00e9n\u00e9rer une r\u00e9ponse. L'IA combine donc ses propres connaissances avec des donn\u00e9es externes. Elle peut ainsi donner des r\u00e9ponses tr\u00e8s pr\u00e9cises tout en acc\u00e9dant \u00e0 des informations actuelles ou personnelles.<\/li>\n<li><strong>Puis-je int\u00e9grer d'autres sources de donn\u00e9es dans ce syst\u00e8me ?<\/strong><br \/>\nOui, c'est m\u00eame l'un des plus grands avantages de cette architecture. Le syst\u00e8me n'est pas limit\u00e9 aux donn\u00e9es ChatGPT. Tu peux aussi int\u00e9grer tes propres articles, notes, PDF, documents de recherche ou autres documents. Tant que le contenu peut \u00eatre trait\u00e9 sous forme de texte, il peut faire partie de la base de connaissances. Ton syst\u00e8me se transforme ainsi au fil du temps en une archive de connaissances compl\u00e8te.<\/li>\n<li><strong>Dans quelle mesure un tel syst\u00e8me de connaissances reste-t-il actuel ?<\/strong><br \/>\nL'actualit\u00e9 d\u00e9pend de la fr\u00e9quence \u00e0 laquelle tu importes de nouvelles donn\u00e9es. Tu peux par exemple traiter r\u00e9guli\u00e8rement de nouvelles exportations ChatGPT ou cr\u00e9er un script qui d\u00e9tecte automatiquement les nouveaux documents. De nombreux syst\u00e8mes sont configur\u00e9s pour \u00eatre mis \u00e0 jour une fois par semaine ou une fois par mois. Ainsi, la base de connaissances reste toujours \u00e0 jour.<\/li>\n<li><strong>De quel mat\u00e9riel ai-je besoin pour un tel syst\u00e8me ?<\/strong><br \/>\nPour les petits projets, un ordinateur de bureau moderne suffit d\u00e9j\u00e0. Si tu souhaites utiliser un mod\u00e8le linguistique plus important, un GPU peut s'av\u00e9rer utile. Toutefois, de nombreux utilisateurs exploitent \u00e9galement avec succ\u00e8s leurs syst\u00e8mes de connaissances sur un ordinateur portable performant ou un mini-serveur. Il est surtout important de disposer de suffisamment de m\u00e9moire vive et d'un espace de stockage suffisant pour la base de donn\u00e9es.<\/li>\n<li><strong>Quelle est la vitesse de fonctionnement d'un tel syst\u00e8me dans la pratique ?<\/strong><br \/>\nLa vitesse d\u00e9pend de plusieurs facteurs, par exemple de la taille de la base de donn\u00e9es, du mat\u00e9riel et du mod\u00e8le de langage utilis\u00e9. Dans de nombreux cas, une requ\u00eate ne prend que quelques secondes. La recherche vectorielle elle-m\u00eame est g\u00e9n\u00e9ralement extr\u00eamement rapide. La plus grande partie du temps est souvent consacr\u00e9e \u00e0 la g\u00e9n\u00e9ration de la r\u00e9ponse du mod\u00e8le de langage.<\/li>\n<li><strong>Est-il possible de s\u00e9parer plusieurs domaines de connaissances ?<\/strong><br \/>\nOui, les bases de donn\u00e9es vectorielles comme Qdrant permettent d'utiliser plusieurs collections. Chaque collection peut repr\u00e9senter un domaine th\u00e9matique propre. Tu pourrais par exemple cr\u00e9er une collection pour les conversations ChatGPT, une pour les articles et une pour les notes. Cela permet de structurer proprement les domaines de connaissances et d'effectuer des recherches cibl\u00e9es.<\/li>\n<li><strong>Dans quelle mesure mes donn\u00e9es sont-elles en s\u00e9curit\u00e9 dans un syst\u00e8me d'IA local ?<\/strong><br \/>\nLe grand avantage d'un syst\u00e8me local est que tes donn\u00e9es ne doivent pas \u00eatre transmises \u00e0 des services externes. Toutes les informations restent sur ton propre ordinateur ou serveur. C'est particuli\u00e8rement int\u00e9ressant pour les contenus sensibles. Bien entendu, tu dois tout de m\u00eame effectuer des sauvegardes r\u00e9guli\u00e8res et prot\u00e9ger ton syst\u00e8me contre tout acc\u00e8s non autoris\u00e9.<\/li>\n<li><strong>Puis-je \u00e9galement int\u00e9grer ce syst\u00e8me dans mes propres applications ?<\/strong><br \/>\nOui, la plupart des composants sont accessibles via des interfaces de programmation. Tu peux ainsi int\u00e9grer ton syst\u00e8me de connaissances dans tes propres outils, par exemple dans une interface web, un syst\u00e8me de r\u00e9daction ou une application de prise de notes. De nombreux d\u00e9veloppeurs construisent de petites applications qui rendent leur base de connaissances directement accessible via une interface de chat.<\/li>\n<li><strong>Comment cette technologie pourrait-elle \u00e9voluer \u00e0 l'avenir ?<\/strong><br \/>\nLes IA de connaissances personnelles n'en sont probablement qu'au d\u00e9but de leur d\u00e9veloppement. \u00c0 l'avenir, de tels syst\u00e8mes pourraient int\u00e9grer automatiquement de nouveaux contenus, cr\u00e9er des r\u00e9sum\u00e9s ou m\u00eame fournir leurs propres propositions de projets. Plus les donn\u00e9es affluent dans un tel syst\u00e8me, plus il devient pr\u00e9cieux. \u00c0 long terme, il pourrait devenir une sorte de m\u00e9moire num\u00e9rique personnelle qui structurerait tes connaissances et les rendrait accessibles \u00e0 tout moment.<\/li>\n<\/ol>\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-580 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 9px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-580 { --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\">Derniers articles sur Art &amp; Culture<\/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-580\" 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=\"helge schneider: haltung, humor und die freiheit, sich nicht erkl\u00e4ren zu m\u00fcssen\" data-id=\"4756\"  data-category=\"allgemein gesellschaft kunst &amp; kultur\" data-post_tag=\"deutschland erfahrungen meinungsfreiheit musik portrait\">\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\/lattitude-de-helge-schneider-lhumour-et-la-liberte-de-ne-pas-avoir-a-sexpliquer\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Helge Schneider : l'attitude, l'humour et la libert\u00e9 de ne pas devoir s'expliquer<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Portrait de Helge Schneider\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Helge-Schneider.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Helge-Schneider.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Helge-Schneider-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Helge-Schneider-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Helge-Schneider-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\/fr\/2026\/02\/lattitude-de-helge-schneider-lhumour-et-la-liberte-de-ne-pas-avoir-a-sexpliquer\/\" rel=\"bookmark\">Helge Schneider : l'attitude, l'humour et la libert\u00e9 de ne pas devoir s'expliquer<\/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=\"dieter hallervorden \u2013 mehr als didi: portr\u00e4t eines unbequemen freigeists\" data-id=\"4347\"  data-category=\"gesellschaft kunst &amp; kultur stories &amp; humor\" data-post_tag=\"erfahrungen meinungsfreiheit musik portrait\">\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\/01\/dieter-hallervorden-plus-que-didi-portrait-dun-libertaire-inconfortable\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Dieter Hallervorden - Plus de Didi : Portrait d'un esprit libre et inconfortable<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Dieter Hallervorden et les W\u00fchlm\u00e4use \u00e0 Berlin\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Hallvervorden-Wuehlmaeuse-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\/fr\/2026\/01\/dieter-hallervorden-plus-que-didi-portrait-dun-libertaire-inconfortable\/\" rel=\"bookmark\">Dieter Hallervorden - Plus de Didi : Portrait d'un esprit libre et inconfortable<\/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 war syrien vor dem krieg? wer regiert heute? was bedeutet das f\u00fcr gefl\u00fcchtete in deutschland?\" data-id=\"4628\"  data-category=\"allgemein gesellschaft kunst &amp; kultur\" data-post_tag=\"deutschland europa geopolitik krisen meinungsfreiheit sicherheitspolitik\">\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\/01\/comment-etait-la-syrie-avant-la-guerre-qui-gouverne-aujourdhui-que-cela-signifie-t-il-pour-les-refugies-en-allemagne\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Comment \u00e9tait la Syrie avant la guerre ? Qui gouverne aujourd'hui ? Qu'est-ce que cela signifie pour les personnes qui ont fui en Allemagne ?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"La Syrie et Damas\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Syrien-Damaskus-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\/fr\/2026\/01\/comment-etait-la-syrie-avant-la-guerre-qui-gouverne-aujourdhui-que-cela-signifie-t-il-pour-les-refugies-en-allemagne\/\" rel=\"bookmark\">Comment \u00e9tait la Syrie avant la guerre ? Qui gouverne aujourd'hui ? Qu'est-ce que cela signifie pour les personnes qui ont fui en Allemagne ?<\/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=\"zukunft mit ladeger\u00e4t \u2013 herr von l&#8217;oreot kauft einen e-scooter\" data-id=\"3229\"  data-category=\"allgemein gesellschaft kunst &amp; kultur stories &amp; humor\" data-post_tag=\"erfahrungen\">\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\/lavenir-avec-un-chargeur-monsieur-von-loreot-achete-un-scooter-electrique\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Avenir avec chargeur - Monsieur de L'oreot ach\u00e8te un scooter \u00e9lectrique<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"747\" class=\"attachment-full size-full\" alt=\"\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1-300x219.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1-768x560.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/loereot-e-scooter-1-16x12.jpg 16w\" \/><\/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\/fr\/2025\/10\/lavenir-avec-un-chargeur-monsieur-von-loreot-achete-un-scooter-electrique\/\" rel=\"bookmark\">Avenir avec chargeur - Monsieur de L'oreot ach\u00e8te un scooter \u00e9lectrique<\/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 \/>","protected":false},"excerpt":{"rendered":"<p>Dans la premi\u00e8re partie de cette s\u00e9rie d'articles, nous avons vu que l'exportation des donn\u00e9es ChatGPT est bien plus qu'une simple fonction technique. Dans tes donn\u00e9es export\u00e9es se trouve une collection de pens\u00e9es, d'id\u00e9es, d'analyses et de conversations qui se sont accumul\u00e9es au fil du temps. Mais tant que ces donn\u00e9es ne sont qu'une archive sur le disque dur, elles restent exactement cela : un ... <a title=\"Avenir avec chargeur - Monsieur de L&#039;oreot ach\u00e8te un scooter \u00e9lectrique\" class=\"read-more\" href=\"https:\/\/www.markus-schall.de\/fr\/2025\/10\/lavenir-avec-un-chargeur-monsieur-von-loreot-achete-un-scooter-electrique\/\" aria-label=\"En savoir plus sur Avenir avec chargeur - Monsieur de L&#039;oreot ach\u00e8te un scooter \u00e9lectrique\">Lire la suite<\/a><\/p>","protected":false},"author":1,"featured_media":5300,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":145,"footnotes":""},"categories":[15,431,4],"tags":[440,444,473,452,471,435,433,465,432,442,434],"class_list":["post-5306","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apple-macos","category-ki-systeme","category-tipps-anleitungen","tag-datenbanken","tag-denkmodelle","tag-digitales-eigentum","tag-docker","tag-kuenstliche-intelligenz","tag-llama","tag-llm","tag-mlx","tag-ollama","tag-prozesse","tag-sprachmodell"],"_links":{"self":[{"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/posts\/5306","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=5306"}],"version-history":[{"count":36,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/posts\/5306\/revisions"}],"predecessor-version":[{"id":5753,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/posts\/5306\/revisions\/5753"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/media\/5300"}],"wp:attachment":[{"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/media?parent=5306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/categories?post=5306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markus-schall.de\/fr\/wp-json\/wp\/v2\/tags?post=5306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}