{"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-la-exportacion-de-datos-de-chatgpt-a-su-propio-ki-de-conocimiento-paso-a-paso-con-ollama-y-qdrant","status":"publish","type":"post","link":"https:\/\/www.markus-schall.de\/es\/2026\/03\/de-la-exportacion-de-datos-de-chatgpt-a-su-propio-ki-de-conocimiento-paso-a-paso-con-ollama-y-qdrant\/","title":{"rendered":"De la exportaci\u00f3n de datos ChatGPT a su propia IA del conocimiento: paso a paso con Ollama y Qdrant"},"content":{"rendered":"<p>En la primera parte de esta serie de art\u00edculos, vimos que la exportaci\u00f3n de datos de ChatGPT es mucho m\u00e1s que una funci\u00f3n t\u00e9cnica. Tus datos exportados contienen una colecci\u00f3n de pensamientos, ideas, an\u00e1lisis y conversaciones que se han acumulado durante un largo periodo de tiempo. Pero mientras estos datos s\u00f3lo se almacenen como un archivo en tu disco duro, siguen siendo s\u00f3lo eso: un archivo. El paso crucial es hacer que esta informaci\u00f3n vuelva a ser utilizable. Aqu\u00ed es exactamente donde empieza el desarrollo de una IA de conocimiento personal.<\/p>\n<p>En realidad, la idea es sorprendentemente sencilla: una IA no s\u00f3lo debe trabajar con conocimientos generales, sino tambi\u00e9n ser capaz de acceder a sus propios datos. Debe ser capaz de buscar en conversaciones anteriores, encontrar contenido adecuado e incorporarlo a nuevas respuestas. Esto convierte a una IA ordinaria en una especie de memoria digital. Esta es la segunda parte de la serie de art\u00edculos, que ahora se centra en el aspecto pr\u00e1ctico.<!--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-980 { --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-980 { --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\">Cuestiones sociales de actualidad<\/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-980\" 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=\"zukunft mit ladeger\u00e4t &#8211; 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\/es\/2025\/10\/futuro-con-cargador-el-sr-von-loreot-compra-un-e-scooter\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Futuro con cargador - El Sr. von L'oreot compra un e-scooter<\/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\/es\/2025\/10\/futuro-con-cargador-el-sr-von-loreot-compra-un-e-scooter\/\" rel=\"bookmark\">Futuro con cargador - El Sr. von L'oreot compra un e-scooter<\/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=\"unsterblichkeit durch technik: wie weit forschung und ki wirklich sind\" data-id=\"3624\"  data-category=\"allgemein gesellschaft ki-systeme\" data-post_tag=\"denkmodelle k\u00fcnstliche intelligenz lernen llm prozesse sprachmodell\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/es\/2025\/11\/inmortalidad-a-traves-de-la-tecnologia-hasta-donde-llegan-realmente-la-investigacion-y-el-ki\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">La inmortalidad a trav\u00e9s de la tecnolog\u00eda: hasta d\u00f3nde han llegado realmente la investigaci\u00f3n y la IA<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Inmortalidad digital\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-unsterblichkeit.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-unsterblichkeit.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-unsterblichkeit-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-unsterblichkeit-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/digitale-unsterblichkeit-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\/es\/2025\/11\/inmortalidad-a-traves-de-la-tecnologia-hasta-donde-llegan-realmente-la-investigacion-y-el-ki\/\" rel=\"bookmark\">La inmortalidad a trav\u00e9s de la tecnolog\u00eda: hasta d\u00f3nde han llegado realmente la investigaci\u00f3n y la IA<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"vom ende der wehrpflicht bis zu schulstreiks: die neue debatte \u00fcber bundeswehr und bildung\" data-id=\"5147\"  data-category=\"allgemein gesellschaft\" 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\/es\/2026\/03\/del-fin-del-servicio-militar-obligatorio-a-las-huelgas-escolares-el-nuevo-debate-sobre-las-fuerzas-armadas-alemanas-y-la-educacion\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Del fin del servicio militar obligatorio a las huelgas escolares: el nuevo debate sobre el Bundeswehr y la educaci\u00f3n<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Huelgas escolares sobre el servicio militar obligatorio y la Bundeswehr en las escuelas\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Wehrpflicht-Schulstreiks.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Wehrpflicht-Schulstreiks.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Wehrpflicht-Schulstreiks-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Wehrpflicht-Schulstreiks-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Wehrpflicht-Schulstreiks-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\/es\/2026\/03\/del-fin-del-servicio-militar-obligatorio-a-las-huelgas-escolares-el-nuevo-debate-sobre-las-fuerzas-armadas-alemanas-y-la-educacion\/\" rel=\"bookmark\">Del fin del servicio militar obligatorio a las huelgas escolares: el nuevo debate sobre el Bundeswehr y la educaci\u00f3n<\/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\/es\/2026\/01\/el-orden-mundial-basado-en-normas-y-el-derecho-internacional-entre-la-realidad-y-el-incumplimiento-de-la-ley\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">El orden mundial basado en normas y el Derecho internacional: entre la pretensi\u00f3n, la realidad y el incumplimiento del Derecho<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Derecho internacional y orden mundial basado en normas\" 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\/es\/2026\/01\/el-orden-mundial-basado-en-normas-y-el-derecho-internacional-entre-la-realidad-y-el-incumplimiento-de-la-ley\/\" rel=\"bookmark\">El orden mundial basado en normas y el Derecho internacional: entre la pretensi\u00f3n, la realidad y el incumplimiento del Derecho<\/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>Parte 1 de la serie: El tesoro infravalorado de la exportaci\u00f3n de datos ChatGPT<\/h2>\n<p>Mientras nos adentramos en el aspecto pr\u00e1ctico de las cosas en esta segunda parte, merece la pena echar un vistazo al <a href=\"https:\/\/www.markus-schall.de\/es\/2026\/03\/la-exportacion-de-datos-de-chatgpt-explica-como-tus-chats-de-ki-se-convierten-en-un-sistema-de-conocimiento-personal\/\"><strong>primer art\u00edculo de esta serie<\/strong><\/a>. Aborda la cuesti\u00f3n fundamental de por qu\u00e9 la exportaci\u00f3n de datos ChatGPT es tan interesante en primer lugar - y por qu\u00e9 muchos usuarios siguen subestimando su potencial. El art\u00edculo muestra qu\u00e9 datos contiene realmente la exportaci\u00f3n, c\u00f3mo pueden utilizarse para crear un archivo personal de conocimientos y por qu\u00e9 este paso constituye la base de su propia IA con memoria. Si quieres entender por qu\u00e9 estamos construyendo este pipeline en primer lugar y qu\u00e9 valor estrat\u00e9gico tienen tus propios historiales de chat, deber\u00edas empezar por la Parte 1.<\/p>\n<p>Antes de empezar con la implementaci\u00f3n propiamente dicha en el pr\u00f3ximo cap\u00edtulo, veamos c\u00f3mo se estructura fundamentalmente un sistema de este tipo.<\/p>\n<hr \/>\n<h2>La idea b\u00e1sica de un sistema GAR<\/h2>\n<p>La base t\u00e9cnica de nuestro sistema es un concepto muy extendido en el mundo de la inteligencia artificial: RAG (Retrieval Augmented Generation). Detr\u00e1s de este t\u00e9rmino se esconde un principio muy pr\u00e1ctico.<\/p>\n<p>Normalmente, un modelo ling\u00fc\u00edstico responde a las preguntas exclusivamente con los conocimientos aprendidos durante su entrenamiento. Aunque estos conocimientos son amplios, tienen dos limitaciones decisivas:<\/p>\n<ul>\n<li>En primer lugar, el modelo no conoce ninguna informaci\u00f3n individual sobre sus propios proyectos o pensamientos.<\/li>\n<li>En segundo lugar, no puede acceder a nuevos datos creados despu\u00e9s del entrenamiento.<\/li>\n<\/ul>\n<p>Aqu\u00ed es exactamente donde entra en juego un sistema RAG. En lugar de generar directamente una respuesta, primero ocurre otra cosa: el sistema busca en una base de datos contenidos que coincidan con la pregunta planteada. A continuaci\u00f3n, este contenido se transfiere al modelo ling\u00fc\u00edstico como contexto. S\u00f3lo entonces la IA formula su respuesta. En t\u00e9rminos sencillos, el proceso es el siguiente:<\/p>\n<ol>\n<li>Haces una pregunta \u2192<\/li>\n<li>el sistema busca en una base de datos de conocimientos \u2192<\/li>\n<li>se encuentra contenido relevante \u2192<\/li>\n<li>Este contenido se transfiere a la IA como contexto \u2192<\/li>\n<li>la IA genera una respuesta.<\/li>\n<\/ol>\n<p>La ventaja decisiva es obvia: la IA puede utilizar informaci\u00f3n que no formaba parte de su entrenamiento original.<\/p>\n<p>Y aqu\u00ed es donde entran en juego los datos de ChatGPT. Si integramos estas conversaciones en una base de datos de conocimientos, la IA podr\u00e1 acceder a ellas m\u00e1s adelante. Puede encontrar ideas anteriores, utilizar argumentos de di\u00e1logos antiguos o tener en cuenta an\u00e1lisis de conversaciones pasadas. As\u00ed, el sistema empieza a \u201erecordar\u201c tus propios pensamientos.<\/p>\n<h3>Los componentes de nuestro sistema<\/h3>\n<p>Para que esto funcione, necesitamos varios componentes que trabajen juntos. Afortunadamente, hoy en d\u00eda es mucho m\u00e1s f\u00e1cil acceder a la infraestructura t\u00e9cnica necesaria que hace unos a\u00f1os. En esencia, nuestro sistema consta de cuatro componentes centrales.<\/p>\n<ol>\n<li>El primer componente es el <strong>Exportaci\u00f3n de datos ChatGPT<\/strong>. Aqu\u00ed es donde est\u00e1n nuestros datos en bruto. Contiene todas las conversaciones que hemos mantenido previamente con la IA.<\/li>\n<li>El segundo componente es un <strong>Modelo de incrustaci\u00f3n<\/strong>. Este modelo traduce el texto en vectores matem\u00e1ticos. Esto permite comparar textos en funci\u00f3n de su significado.<\/li>\n<li>El tercer componente es un <strong>Base de datos vectorial<\/strong>. En nuestro caso, utilizamos Qdrant. Esta base de datos almacena las representaciones matem\u00e1ticas de los textos y permite una b\u00fasqueda sem\u00e1ntica r\u00e1pida.<\/li>\n<li>El cuarto componente es un <strong>modelo ling\u00fc\u00edstico local<\/strong>, que se ejecuta a trav\u00e9s de Ollama. Este modelo formular\u00e1 posteriormente las respuestas reales.<\/li>\n<\/ol>\n<p>Estos cuatro componentes trabajan en estrecha colaboraci\u00f3n.<\/p>\n<ol>\n<li>La exportaci\u00f3n de datos proporciona el contenido.<\/li>\n<li>El modelo de incrustaci\u00f3n los hace legibles por m\u00e1quina.<\/li>\n<li>La base de datos de vectores los guarda y busca.<\/li>\n<li>Finalmente, el modelo ling\u00fc\u00edstico genera respuestas comprensibles.<\/li>\n<\/ol>\n<p>Juntos, forman la base de una IA de conocimiento personal.<\/p>\n<h3>El flujo de datos de un vistazo<\/h3>\n<p>Para que el sistema funcione, los datos tienen que pasar por varios pasos. El primer paso es la exportaci\u00f3n de datos ChatGPT, que ya creamos en el primer art\u00edculo. Las conversaciones que contiene se extraen primero de los archivos JSON. A continuaci\u00f3n, hay que prepararlas. Los historiales de chat grandes se dividen en secciones m\u00e1s peque\u00f1as, conocidas como trozos de texto. Esto hace que la b\u00fasqueda posterior sea mucho m\u00e1s eficiente.<\/p>\n<p>En el siguiente paso, generamos incrustaciones a partir de estas secciones de texto. Cada texto se describe matem\u00e1ticamente. Los textos con un significado similar reciben vectores similares. A continuaci\u00f3n, guardamos estos vectores en nuestra base de datos vectorial Qdrant.<\/p>\n<p>Esto significa que la parte m\u00e1s importante de la infraestructura ya est\u00e1 instalada. Si m\u00e1s tarde se formula una pregunta, ocurre lo siguiente:<\/p>\n<ol>\n<li>La pregunta tambi\u00e9n se convierte en un vector.<\/li>\n<li>La base de datos busca textos con un significado similar.<\/li>\n<li>Estos pasajes de texto se transfieren al modelo ling\u00fc\u00edstico como contexto.<\/li>\n<li>El modelo utiliza esta informaci\u00f3n para formular una respuesta.<\/li>\n<\/ol>\n<p>Este proceso garantiza que la IA no s\u00f3lo utilice conocimientos generales, sino que tambi\u00e9n pueda acceder a sus propios datos.<\/p>\n<h3>Lo que ser\u00e1 posible al final<\/h3>\n<p>Una vez configurado el sistema, el trato con la IA cambia notablemente. Ya no se trabaja s\u00f3lo con un modelo ling\u00fc\u00edstico general, sino con una IA que puede acceder a sus propios datos. Esto abre posibilidades completamente nuevas. Por ejemplo, puedes hacer preguntas como:<\/p>\n<blockquote><p><em>\u201e\u00bfHe hablado alguna vez con la IA sobre este tema?\u201c<\/em><br \/>\n<em>\u201e\u00bfQu\u00e9 ideas ten\u00eda antes sobre este proyecto?\u201c.\u201c<\/em><br \/>\n<em>\u201e\u00bfQu\u00e9 argumentos he desarrollado en conversaciones anteriores?\u201c.\u201c<\/em><\/p><\/blockquote>\n<p>A continuaci\u00f3n, la IA busca en tus propias conversaciones y encuentra el contenido adecuado. En lugar de limitarse a dar una respuesta general, puede referirse a pensamientos anteriores, resumir an\u00e1lisis antiguos o reconocer conexiones entre distintas conversaciones.<\/p>\n<p>En otras palabras, la IA empieza a trabajar con tu propio archivo de conocimientos. Esto convierte una simple herramienta de chat en un sistema que puede apoyar tu pensamiento a largo plazo. Y es precisamente este sistema el que construiremos paso a paso en los pr\u00f3ximos cap\u00edtulos. En la siguiente secci\u00f3n, comenzamos con el trabajo pr\u00e1ctico y primero echamos un vistazo m\u00e1s de cerca a la exportaci\u00f3n de datos de ChatGPT. Porque antes de poder construir una base de datos de conocimiento, necesitamos entender c\u00f3mo est\u00e1n estructurados realmente nuestros datos.<\/p>\n<hr \/>\n<h3>Encuesta actual sobre el uso de sistemas locales de IA<\/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=\"3699a1852f7a558aeb5635385d5d726f\" data-pid=\"4275\" 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=\"7dc7c83e25\" autocomplete=\"off\"><div class=\"basic-elements\"><div class=\"basic-element basic-question basic-question-text-vertical\" data-id=\"9\" data-uid=\"657ceaa6e11f2cd511ce05b2939f2b3d\" 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;\">\u00bfQu\u00e9 opina de la ejecuci\u00f3n local de programas de IA como MLX o Ollama?<\/h5><\/div><ul class=\"basic-answers\"><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"45\" data-type=\"text\" data-vn=\"148\" 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;\">Ingenioso: por fin independiente de la nube<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"46\" data-type=\"text\" data-vn=\"29\" 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;\">Interesante, pero (a\u00fan) demasiado complicado<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"47\" data-type=\"text\" data-vn=\"29\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[47]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[47]\" name=\"answer[9]\" value=\"47\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Lo probar\u00e9 pronto<\/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;\">No lo necesito, con la nube me basta<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"49\" 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[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;\">No s\u00e9 exactamente de qu\u00e9 se trata.<\/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;\">Vote<\/a><\/div><input type=\"hidden\" name=\"trp-form-language\" value=\"es\"\/><\/form><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n<hr \/>\n<h2>Preparaci\u00f3n: Exportaci\u00f3n de datos ChatGPT<\/h2>\n<p>En el primer art\u00edculo de esta serie, ya hemos creado la exportaci\u00f3n de datos ChatGPT y la hemos descargado como archivo ZIP. A primera vista, este archivo puede parecer poco espectacular: un archivo con algunos ficheros t\u00e9cnicos que en principio parece m\u00e1s una copia de seguridad que un conjunto de datos valiosos. Sin embargo, este archivo contiene la base de todo nuestro sistema de conocimientos.<\/p>\n<p>Antes de empezar a cargar estos datos en una base de datos o conectarlos a una IA, primero tenemos que entender c\u00f3mo est\u00e1 estructurada la exportaci\u00f3n. Porque s\u00f3lo si sabemos qu\u00e9 informaci\u00f3n contiene y c\u00f3mo est\u00e1 estructurada podremos procesarla despu\u00e9s de forma significativa. En este cap\u00edtulo veremos c\u00f3mo est\u00e1 estructurada la exportaci\u00f3n de datos, qu\u00e9 archivos son realmente relevantes y c\u00f3mo podemos convertir este archivo t\u00e9cnico en una base \u00fatil para nuestro sistema de conocimiento de IA.<\/p>\n<h3>Descomprimir archivo ZIP<\/h3>\n<p>El primer paso es trivial, pero no por ello menos importante: tenemos que descomprimir el archivo descargado. Normalmente, el archivo est\u00e1 disponible en formato ZIP cl\u00e1sico. Dependiendo de su uso previo, su tama\u00f1o puede variar. Algunos usuarios reciben un archivo de unos cientos de megabytes, otros de varios gigabytes.<\/p>\n<p>Una vez descomprimido el archivo, se crea una carpeta con varios archivos y subcarpetas. La estructura exacta puede variar ligeramente, pero normalmente encontrar\u00e1 varios archivos JSON y posiblemente otros archivos con informaci\u00f3n adicional.<\/p>\n<p>Para muchos usuarios, esta estructura parece inicialmente algo t\u00e9cnica. Pero si se toman un momento, r\u00e1pidamente reconocen un patr\u00f3n: los datos est\u00e1n organizados de forma relativamente ordenada y siguen una estructura clara. Es una buena noticia, porque es precisamente esta estructura la que permite procesar el contenido autom\u00e1ticamente m\u00e1s adelante.<\/p>\n<h3>Estructura de los datos del chat<\/h3>\n<p>La parte m\u00e1s importante de la exportaci\u00f3n son los datos reales de las conversaciones. Estas conversaciones suelen almacenarse en uno o varios archivos JSON. JSON es un formato de datos muy extendido que suele utilizarse para almacenar informaci\u00f3n estructurada.<\/p>\n<p>Un archivo de este tipo no contiene simplemente un texto largo. Por el contrario, un di\u00e1logo se divide en elementos individuales. Normalmente, un di\u00e1logo consta de varios mensajes. Cada mensaje contiene informaci\u00f3n como<\/p>\n<ul>\n<li>el texto real del mensaje<\/li>\n<li>el papel del remitente (usuario o IA)<\/li>\n<li>un sello de tiempo<\/li>\n<li>en parte m\u00e1s metadatos<\/li>\n<\/ul>\n<p>Esto permite reconstruir todo el curso del di\u00e1logo. Por ejemplo, un di\u00e1logo comienza con una pregunta del usuario. A continuaci\u00f3n, la IA responde. Despu\u00e9s pueden seguir otras preguntas y respuestas. Cada uno de estos mensajes se guarda individualmente.<\/p>\n<p>Esto tiene una gran ventaja: m\u00e1s tarde podemos reconocer exactamente qui\u00e9n dijo qu\u00e9 y c\u00f3mo se desarroll\u00f3 una conversaci\u00f3n. Esto es especialmente importante para nuestro sistema de conocimiento, ya que queremos buscar y analizar con precisi\u00f3n este contenido m\u00e1s adelante.<\/p>\n<h3>Qu\u00e9 datos necesitamos realmente<\/h3>\n<p>Aunque la exportaci\u00f3n contiene mucha informaci\u00f3n, no la necesitamos toda para nuestro sistema de conocimiento. El componente m\u00e1s importante son los textos de las conversaciones. Estos textos contienen el contenido real: Ideas, an\u00e1lisis, preguntas y respuestas. Es precisamente este contenido el que queremos buscar m\u00e1s adelante.<\/p>\n<p>Algunos metadatos tambi\u00e9n pueden ser \u00fatiles. Esto incluye, por ejemplo<\/p>\n<ul>\n<li>Marca de tiempo<\/li>\n<li>T\u00edtulo de la conversaci\u00f3n<\/li>\n<li>Posiblemente n\u00fameros de identificaci\u00f3n internos<\/li>\n<\/ul>\n<p>Esta informaci\u00f3n nos ayuda a clasificar mejor los contenidos m\u00e1s adelante o a categorizar una conversaci\u00f3n en funci\u00f3n del tiempo. Otros componentes de la exportaci\u00f3n son menos relevantes para nuestro proyecto. Se trata, por ejemplo, de ciertos metadatos t\u00e9cnicos que s\u00f3lo tienen inter\u00e9s para el funcionamiento interno de la plataforma.<\/p>\n<p>Para construir nuestra base de conocimientos, nos concentramos deliberadamente en lo esencial: los textos de las conversaciones y alguna informaci\u00f3n contextual b\u00e1sica. Cuanto m\u00e1s claramente estructuremos estos datos, mejor podr\u00e1 trabajar despu\u00e9s con ellos nuestra IA.<\/p>\n<h3>Primera revisi\u00f3n de los datos<\/h3>\n<p>Antes de empezar a trabajar con scripts automatizados, merece la pena echar un vistazo r\u00e1pido a los datos en s\u00ed. Para ello, abra uno de los archivos JSON con un editor de texto sencillo o un programa que pueda mostrar bien los archivos JSON. Muchos editores de c\u00f3digo como Visual Studio Code son muy adecuados para esto, pero los editores de texto simples tambi\u00e9n funcionan.<\/p>\n<p>Cuando vea el archivo por primera vez, probablemente ver\u00e1 una cantidad relativamente grande de datos estructurados. Los archivos JSON est\u00e1n formados por elementos anidados, es decir, campos de datos que a su vez contienen otros campos. Esto puede parecer un poco complejo al principio, pero con un poco de paciencia reconocer\u00e1s r\u00e1pidamente la estructura b\u00e1sica. Por ejemplo, ver\u00e1 que una conversaci\u00f3n consta de varios mensajes y que cada mensaje representa un objeto independiente. El texto propiamente dicho suele estar en un campo claramente reconocible.<\/p>\n<p>Esta primera criba tiene un prop\u00f3sito importante: le ayuda a comprender c\u00f3mo est\u00e1n estructurados sus datos. Porque en el pr\u00f3ximo cap\u00edtulo utilizaremos precisamente esta estructura para leer autom\u00e1ticamente las conversaciones y prepararlas para nuestro sistema de conocimiento. Dicho de otro modo: Estamos transformando paso a paso un archivo de datos t\u00e9cnicos en una base de conocimientos utilizable. Y aqu\u00ed es exactamente donde empezamos en el siguiente cap\u00edtulo. El objetivo es extraer los datos de las conversaciones y prepararlos para que puedan consultarse posteriormente de forma eficaz.<\/p>\n<h2>Preparar los datos: De conversaciones a textos analizables<\/h2>\n<p>Tras desempaquetar la exportaci\u00f3n de datos ChatGPT en el cap\u00edtulo anterior y obtener una visi\u00f3n general inicial de la estructura, comienza ahora la parte t\u00e9cnica real de nuestro proyecto. Aunque los datos exportados est\u00e1n completos, a\u00fan no se adaptan de forma \u00f3ptima a nuestro sistema de conocimiento en esta forma.<\/p>\n<p>La raz\u00f3n es sencilla: los historiales de chat suelen ser largos, contienen muchos temas y se almacenan en una estructura legible para los humanos, pero no ideal para las b\u00fasquedas sem\u00e1nticas o las bases de datos vectoriales. Para que nuestra IA pueda encontrar contenidos relevantes m\u00e1s adelante, primero tenemos que procesar estos datos en bruto. Esto significa esencialmente tres cosas:<\/p>\n<ol>\n<li>Extraer las conversaciones de los archivos JSON<\/li>\n<li>estructurar los textos con sentido<\/li>\n<li>dividir el contenido en secciones m\u00e1s peque\u00f1as<\/li>\n<\/ol>\n<p>Este proceso es un paso completamente normal en los sistemas modernos de IA y suele denominarse preprocesamiento.<\/p>\n<h3>Por qu\u00e9 los datos brutos no son directamente adecuados<\/h3>\n<p>Si echas un vistazo a uno de los archivos JSON, te dar\u00e1s cuenta de que una sola conversaci\u00f3n a menudo consta de muchos mensajes. Un di\u00e1logo t\u00edpico puede tener este aspecto, por ejemplo:<\/p>\n<ul>\n<li>Pregunta<\/li>\n<li>Respuesta<\/li>\n<li>Consulta<\/li>\n<li>nueva declaraci\u00f3n<\/li>\n<li>m\u00e1s detalles<\/li>\n<li>Resumen<\/li>\n<\/ul>\n<p>Algunas conversaciones pueden contener cientos o incluso miles de palabras. Esto no es un problema para los humanos. Simplemente leemos un di\u00e1logo de arriba abajo.<\/p>\n<p>Sin embargo, esto funciona peor para una b\u00fasqueda AI. La raz\u00f3n es que un mismo chat suele contener varios temas. Si despu\u00e9s realizamos una b\u00fasqueda sem\u00e1ntica, el sistema debe encontrar pasajes de texto lo m\u00e1s precisos posible, no conversaciones enteras con muchos contenidos diferentes.<\/p>\n<p>Por eso los textos grandes se dividen en secciones m\u00e1s peque\u00f1as. Estas secciones se denominan trozos. Un trozo es simplemente un peque\u00f1o bloque de texto que contiene un pensamiento coherente. Este m\u00e9todo mejora considerablemente la calidad de la b\u00fasqueda posterior.<\/p>\n<h3>Extraer historiales de chat<\/h3>\n<p>El primer paso pr\u00e1ctico es leer el contenido de los archivos JSON. Para ello utilizamos un peque\u00f1o script en Python. Python es especialmente adecuado para este tipo de tareas porque contiene muchas bibliotecas para el procesamiento de datos y la IA.<\/p>\n<p>Primero crea un nuevo archivo, por ejemplo<\/p>\n<p><code class=\"notranslate\" data-no-translation=\"\">extract_chats.py<\/code><\/p>\n<p>A continuaci\u00f3n, a\u00f1adimos un sencillo script que carga los datos del 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>Cuando ejecute este script, deber\u00eda ver cu\u00e1ntas conversaciones contiene su exportaci\u00f3n. Ahora vamos a extraer los textos reales.<\/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>Este script recorre la estructura JSON y recoge todas las partes de texto de las conversaciones. Esto significa que ya hemos completado la parte m\u00e1s importante: hemos extra\u00eddo el contenido del formato t\u00e9cnico de exportaci\u00f3n.<\/p>\n<h3>Crear trozos de texto<\/h3>\n<p>Ahora viene el siguiente paso importante: la fragmentaci\u00f3n. En lugar de guardar conversaciones completas, dividimos los textos en secciones m\u00e1s peque\u00f1as.<br \/>\nEl tama\u00f1o t\u00edpico de estas secciones de texto oscila entre 300 y 800 palabras, es decir, aproximadamente 500 tokens. A continuaci\u00f3n se muestra un ejemplo sencillo de c\u00f3mo dividir textos en trozos.<\/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>Ahora podemos aplicar esta funci\u00f3n a nuestros textos.<\/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>Ahora hemos creado muchas secciones de texto m\u00e1s peque\u00f1as a partir de nuestros historiales de chat. Estos bloques de texto son ideales para su posterior b\u00fasqueda en una base de datos vectorial.<\/p>\n<h3>A\u00f1adir metadatos<\/h3>\n<p>Adem\u00e1s del texto propiamente dicho, la informaci\u00f3n adicional puede ser muy \u00fatil. Estos metadatos nos ayudan a clasificar o filtrar mejor el contenido. Los metadatos t\u00edpicos pueden ser<\/p>\n<ul>\n<li>Fecha de la conversaci\u00f3n<\/li>\n<li>T\u00edtulo de la conversaci\u00f3n<\/li>\n<li>Fuente (ChatGPT Export)<\/li>\n<li>ID de la llamada<\/li>\n<\/ul>\n<p>Podemos guardar esta informaci\u00f3n junto con el texto, por ejemplo as\u00ed:<\/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>Esto ya ha dado a nuestros datos una estructura mucho mejor. En lugar de un confuso archivo de chats, ahora tenemos una colecci\u00f3n de muchas peque\u00f1as secciones de texto, cada una de ellas con informaci\u00f3n contextual.<\/p>\n<p>Precisamente esta estructura ser\u00e1 crucial en el siguiente paso. Porque ahora podemos empezar a generar incrustaciones a partir de estos textos, es decir, representaciones matem\u00e1ticas del contenido que luego se guardar\u00e1n en nuestra base de datos vectorial. Y esto es exactamente de lo que trata el pr\u00f3ximo cap\u00edtulo.<\/p>\n<h2>Crear incrustaciones<\/h2>\n<p>En el cap\u00edtulo anterior, ya pusimos nuestros datos de ChatGPT en un formato utilizable. Extrajimos las conversaciones de los archivos JSON, limpiamos los textos y los dividimos en secciones m\u00e1s peque\u00f1as, los llamados chunks.<\/p>\n<p>Sin embargo, todav\u00eda falta un paso crucial para que nuestra IA pueda realmente buscar contenidos de forma significativa. Los textos deben traducirse a un formato que las m\u00e1quinas puedan comparar. Aqu\u00ed es donde entran en juego las incrustaciones.<\/p>\n<p>Las incrustaciones son representaciones matem\u00e1ticas de los textos. Permiten a los ordenadores comparar el significado de los textos. Dos textos de contenido similar reciben vectores similares, aunque utilicen palabras distintas. Esta es precisamente la propiedad que necesitamos para nuestro sistema de conocimiento. Al fin y al cabo, nuestra IA no s\u00f3lo debe buscar palabras id\u00e9nticas, sino tambi\u00e9n textos cuyo contenido coincida.<\/p>\n<h3>Qu\u00e9 son las incrustaciones<\/h3>\n<p>Una incrustaci\u00f3n es b\u00e1sicamente una lista de n\u00fameros. Estos n\u00fameros describen el significado de un texto en un espacio matem\u00e1tico. Cada texto se convierte en un vector. Un vector de este tipo puede tener este aspecto, por ejemplo:<\/p>\n<p><code data-no-translation=\"\">[0.134, -0.876, 0.442, 0.921, -0.223, ...]<\/code><\/p>\n<p>Un solo vector puede contener varios cientos o incluso miles de n\u00fameros. Por supuesto, estos n\u00fameros no son directamente comprensibles para los humanos. Sin embargo, para las m\u00e1quinas son ideales para calcular similitudes entre textos. Si dos textos tienen un contenido similar, sus vectores est\u00e1n m\u00e1s pr\u00f3ximos en el espacio matem\u00e1tico. Un ejemplo:<\/p>\n<ul>\n<li><strong>Texto A<\/strong>\u201e\u00bfC\u00f3mo puedo exportar mis datos de ChatGPT?\u201c<\/li>\n<li><strong>Texto B<\/strong>: \u201e\u00bfC\u00f3mo descargo mis conversaciones de ChatGPT?\u201c<\/li>\n<\/ul>\n<p>Aunque la redacci\u00f3n es diferente, ambos textos describen b\u00e1sicamente el mismo tema. Un buen modelo de incrustaci\u00f3n reconoce esta similitud. Por tanto, los dos textos reciben vectores similares. M\u00e1s adelante utilizaremos precisamente este principio para nuestra b\u00fasqueda sem\u00e1ntica.<\/p>\n<h3>Modelos de incrustaci\u00f3n con Ollama<\/h3>\n<p>Necesitamos un modelo especial para crear incrustaciones. Afortunadamente, para ello no tenemos que recurrir a servicios externos en la nube. Muchos modelos de incrustaci\u00f3n pueden funcionar ahora localmente, y aqu\u00ed es donde entra en juego Ollama.<\/p>\n<p>Dado que Ollama ya est\u00e1 funcionando en su sistema, podemos incrustar all\u00ed un modelo install. Un modelo muy bueno es, por ejemplo:<\/p>\n<p><code data-no-translation=\"\">nomic-embed-text<\/code><\/p>\n<p>Puedes domarlo con el siguiente comando 1TP12:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">ollama pull nomic-embed-text<\/pre>\n<p>Otros modelos populares son<\/p>\n<ul>\n<li>mxbai-embed-large<\/li>\n<li>bge-large<\/li>\n<li>todas las pel\u00edculas<\/li>\n<\/ul>\n<p>Para nuestros fines <em>nomic-embed-text<\/em> es un buen punto de partida. Este modelo genera incrustaciones de alta calidad y se ejecuta localmente sin problemas.<\/p>\n<h3>Crear incrustaciones localmente<\/h3>\n<p>Ahora queremos ampliar nuestro script Python para que pueda generar incrustaciones. Primero 1TP12Creamos una biblioteca con la que Python pueda comunicarse con Ollama.<\/p>\n<p>pip install ollama<\/p>\n<p>Ahora podemos abordar el modelo de incrustaci\u00f3n directamente desde Python. El siguiente es un ejemplo sencillo:<\/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 todo ha funcionado, obtendr\u00e1s un vector con varios cientos de n\u00fameros.<br \/>\nAhora apliquemos esto a nuestros trozos 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>As\u00ed creamos un vector para cada secci\u00f3n de texto. Estos vectores se guardan posteriormente en nuestra base de datos.<\/p>\n<h3>Por qu\u00e9 es crucial este paso<\/h3>\n<p>Las incrustaciones son el n\u00facleo de los modernos sistemas de conocimiento. Sin incrustaciones, s\u00f3lo podr\u00edamos buscar textos mediante las cl\u00e1sicas b\u00fasquedas por palabras clave. Esto significar\u00eda que el sistema s\u00f3lo encontrar\u00eda contenidos que contuvieran exactamente las mismas palabras. Pero el lenguaje rara vez funciona as\u00ed de sencillo. Por ejemplo, un usuario podr\u00eda preguntar<\/p>\n<blockquote><p><em>\u201e\u00bfC\u00f3mo he procesado mis datos de ChatGPT?\u201c<\/em><\/p><\/blockquote>\n<p>Sin embargo, la conversaci\u00f3n original podr\u00eda formularse as\u00ed:<\/p>\n<blockquote><p><em>\u201e\u00bfC\u00f3mo puedo analizar mi exportaci\u00f3n de datos ChatGPT?\u201c<\/em><\/p><\/blockquote>\n<p>Una simple b\u00fasqueda podr\u00eda no reconocer esta conexi\u00f3n. Con las incrustaciones es distinto. Como ambos textos tienen significados similares, sus vectores est\u00e1n pr\u00f3ximos en el espacio matem\u00e1tico. Por tanto, nuestra base de datos puede encontrar contenidos coincidentes, aunque la redacci\u00f3n sea diferente. Es precisamente esta capacidad la que hace que la b\u00fasqueda sem\u00e1ntica sea tan potente. Permite a una IA buscar no s\u00f3lo palabras, sino significados.<\/p>\n<p>Y precisamente por eso las incrustaciones son el elemento central de nuestro sistema. En el pr\u00f3ximo cap\u00edtulo, nos basaremos en esto y installieren nuestra base de datos de vectores. En ella almacenaremos los vectores generados, creando as\u00ed la base de nuestra IA del conocimiento personal.<\/p>\n<h2>Qdrant 1TP12A\u00f1adir y configurar<\/h2>\n<p>Una vez creadas las incrustaciones para nuestros datos de chat en el cap\u00edtulo anterior, ahora tenemos una colecci\u00f3n de secciones de texto y vectores asociados. Estos vectores describen matem\u00e1ticamente el significado de los textos y constituyen la base de una b\u00fasqueda sem\u00e1ntica. Sin embargo, actualmente estos datos s\u00f3lo est\u00e1n disponibles en la memoria de trabajo de nuestro script o en simples listas. Necesitamos una memoria especializada para que nuestra IA pueda acceder a ellos de forma eficiente m\u00e1s adelante.<\/p>\n<p>Aqu\u00ed es exactamente donde entra en juego una base de datos vectorial. Una base de datos vectorial est\u00e1 optimizada para almacenar grandes cantidades de tales incrustaciones y buscar r\u00e1pidamente vectores similares. Para nuestro proyecto utilizamos Qdrant, una moderna base de datos de c\u00f3digo abierto desarrollada especialmente para aplicaciones de IA.<\/p>\n<p>En este cap\u00edtulo 1TP12 instalaremos Qdrant, iniciaremos el servidor y prepararemos la base de datos para poder importar f\u00e1cilmente nuestros datos de chat m\u00e1s adelante.<\/p>\n<h3>Qu\u00e9 es Qdrant<\/h3>\n<p>Qdrant es una base de datos especializada en las llamadas b\u00fasquedas vectoriales. Mientras que las bases de datos tradicionales almacenan informaci\u00f3n en tablas -como nombres, n\u00fameros o textos-, una base de datos vectorial trabaja con representaciones matem\u00e1ticas de los datos.<\/p>\n<p>Esto significa que en lugar de guardar s\u00f3lo el texto, Qdrant guarda las incrustaciones asociadas. La gran ventaja reside en la b\u00fasqueda. Si m\u00e1s tarde se formula una pregunta, nuestro sistema tambi\u00e9n convierte esta pregunta en un vector. A continuaci\u00f3n, Qdrant puede calcular a la velocidad del rayo qu\u00e9 textos almacenados se parecen m\u00e1s a este vector. Esto permite averiguar, por ejemplo:<\/p>\n<ul>\n<li>qu\u00e9 pasajes del chat coinciden tem\u00e1ticamente con la pregunta<\/li>\n<li>qu\u00e9 conversaciones anteriores tienen un contenido similar<\/li>\n<li>qu\u00e9 ideas podr\u00edan ser relevantes en su archivo<\/li>\n<\/ul>\n<p>Esta es precisamente la raz\u00f3n por la que Qdrant se utiliza hoy en d\u00eda en muchos sistemas modernos de IA, desde b\u00fasquedas de documentos hasta complejos asistentes del conocimiento. Otra ventaja: Qdrant es de c\u00f3digo abierto, se 1TP12iza r\u00e1pidamente y funciona sin problemas en una m\u00e1quina local normal.<\/p>\n<h3>Instalaci\u00f3n de Qdrant<\/h3>\n<p>La forma m\u00e1s sencilla de installieren Qdrant es a trav\u00e9s de Docker. Si Docker est\u00e1 disponible en su m\u00e1quina, puede iniciar el servidor con un solo comando. Aqu\u00ed puede <a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\" target=\"_blank\" rel=\"noopener\"><strong>Descargar Docker<\/strong><\/a>, si a\u00fan no lo ha instalado en su ordenador installiert.<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 qdrant\/qdrant<\/pre>\n<p>Este comando inicia el servidor Qdrant y abre el puerto est\u00e1ndar 6333. Nuestros scripts podr\u00e1n comunicarse posteriormente con la base de datos a trav\u00e9s de este puerto.<\/p>\n<p>Si no desea utilizar Docker, tambi\u00e9n hay otras maneras de installiere Qdrant, por ejemplo a trav\u00e9s de un binario local o gestor de paquetes. En muchos proyectos pr\u00e1cticos, sin embargo, Docker ha demostrado ser la opci\u00f3n m\u00e1s sencilla y estable.<\/p>\n<p>Una vez iniciado el servidor, Qdrant se ejecuta en segundo plano y espera peticiones. Ahora puede comprobar si el servidor es accesible. Para ello, abra la siguiente direcci\u00f3n en su navegador:<\/p>\n<p><code data-no-translation=\"\">http:\/\/localhost:6333<\/code><\/p>\n<p>Si todo ha funcionado, deber\u00eda aparecer un simple mensaje de estado. El servidor ya est\u00e1 listo para los siguientes pasos.<\/p>\n<h3>Primeros pasos con Qdrant<\/h3>\n<p>Antes de poder importar los datos de nuestro chat, necesitamos crear una colecci\u00f3n. En Qdrant, una colecci\u00f3n es comparable a una tabla en una base de datos cl\u00e1sica. Contiene nuestros vectores y los datos asociados.<\/p>\n<p>Primero installiere la biblioteca Python para Qdrant:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">pip install qdrant-client<\/pre>\n<p>Ahora podemos establecer una conexi\u00f3n con la base de datos en nuestro 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 este c\u00f3digo se ejecuta sin un mensaje de error, la conexi\u00f3n es exitosa. Ahora creamos una colecci\u00f3n para nuestros datos 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>Los par\u00e1metros m\u00e1s importantes son<\/p>\n<ul>\n<li><strong>nombre_colecci\u00f3n<\/strong> - el nombre de nuestra base de datos<\/li>\n<li><strong>talla<\/strong> - la longitud de los vectores de incrustaci\u00f3n<\/li>\n<li><strong>distancia<\/strong> - el m\u00e9todo de c\u00e1lculo de la similitud<\/li>\n<\/ul>\n<p>El tama\u00f1o del vector depende del modelo de incrustaci\u00f3n utilizado. Muchos modelos trabajan con vectores de 768 o 1024 dimensiones. La funci\u00f3n de distancia coseno es uno de los m\u00e9todos m\u00e1s comunes para calcular similitudes entre textos. Esto significa que nuestra base de datos ya est\u00e1 lista para ser utilizada.<\/p>\n<h3>Estructura de datos del plan<\/h3>\n<p>Antes de importar nuestros datos, merece la pena echar un vistazo r\u00e1pido a la estructura que queremos guardar. Cada entrada de nuestra base de datos de vectores constar\u00e1 de varios componentes:<\/p>\n<ul>\n<li><strong>ID<\/strong> - un identificador \u00fanico<\/li>\n<li><strong>Inserci\u00f3n<\/strong> - el vector del texto<\/li>\n<li><strong>Carga \u00fatil<\/strong> - Informaci\u00f3n adicional sobre el texto<\/li>\n<\/ul>\n<p>La carga \u00fatil puede contener, por ejemplo<\/p>\n<ul>\n<li>el texto original<\/li>\n<li>el t\u00edtulo de la conversaci\u00f3n<\/li>\n<li>la fecha<\/li>\n<li>otros metadatos<\/li>\n<\/ul>\n<p>Un ejemplo de registro de datos podr\u00eda ser el siguiente:<\/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>Esta estructura tiene una gran ventaja. Los vectores se utilizan para la b\u00fasqueda sem\u00e1ntica, mientras que la carga \u00fatil contiene toda la informaci\u00f3n que queremos mostrar o analizar posteriormente. Esto significa que nuestro sistema sigue siendo flexible y puede ampliarse f\u00e1cilmente m\u00e1s adelante.<\/p>\n<p>Esto significa que la parte m\u00e1s importante de la infraestructura ya est\u00e1 preparada. Nuestro servidor Qdrant est\u00e1 funcionando, la base de datos est\u00e1 configurada y sabemos qu\u00e9 estructura tendr\u00e1n nuestros datos. En el siguiente cap\u00edtulo, comenzamos con el paso crucial: importamos nuestros datos de ChatGPT a la base de datos y transformamos nuestro archivo de conversaciones en una base de conocimientos real en la que se pueden realizar b\u00fasquedas.<\/p>\n<h2>Importar datos de ChatGPT a Qdrant<\/h2>\n<p>Ahora que hemos creado Qdrant installiert y una colecci\u00f3n en el cap\u00edtulo anterior, se ha creado la base t\u00e9cnica para nuestra base de datos de conocimiento. Nuestros embeddings ya existen - los hemos creado a partir de los datos de ChatGPT - y Qdrant se est\u00e1 ejecutando como servidor de base de datos en nuestra m\u00e1quina.<\/p>\n<p>Ahora viene el paso crucial: cargamos nuestros datos en la base de datos. No s\u00f3lo guardamos los vectores en s\u00ed, sino tambi\u00e9n los textos y metadatos asociados. Esta combinaci\u00f3n permite a nuestra IA encontrar posteriormente contenido relevante y utilizarlo en las respuestas. En este cap\u00edtulo construimos la base de conocimientos de nuestro sistema.<\/p>\n<h3>Guardar incrustaciones<\/h3>\n<p>En primer lugar, tenemos que transferir las incrustaciones generadas a la base de datos. Cada entrada de Qdrant consta de tres componentes:<\/p>\n<ul>\n<li>una identificaci\u00f3n<\/li>\n<li>un vector (incrustaci\u00f3n)<\/li>\n<li>una carga \u00fatil con datos adicionales<\/li>\n<\/ul>\n<p>En nuestro caso, por ejemplo, la carga \u00fatil contiene<\/p>\n<ul>\n<li>la secci\u00f3n de texto<\/li>\n<li>el t\u00edtulo de la conversaci\u00f3n<\/li>\n<li>Posiblemente m\u00e1s metadatos<\/li>\n<\/ul>\n<p>En Python, podemos preparar esta estructura con relativa facilidad. Un ejemplo:<\/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>Esto genera una lista de puntos de datos que podemos guardar en Qdrant. Cada punto de datos contiene, por tanto, una secci\u00f3n de texto, el vector correspondiente e informaci\u00f3n contextual adicional. Esta estructura constituir\u00e1 posteriormente la base de nuestra b\u00fasqueda sem\u00e1ntica.<\/p>\n<h3>Crear script de importaci\u00f3n<\/h3>\n<p>Ahora conectamos nuestro script Python a Qdrant y transferimos los datos. Para ello, utilizamos el cliente Python de Qdrant, que hemos analizado en el cap\u00edtulo anterior 1TP12. La importaci\u00f3n puede tener este aspecto, por ejemplo:<\/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>El comando upsert garantiza que los datos se guardan en la colecci\u00f3n. Si ya existe un ID, se actualiza la entrada. En caso contrario, se crea un nuevo registro de datos. Dependiendo del tama\u00f1o de su exportaci\u00f3n ChatGPT, esta importaci\u00f3n puede tardar unos segundos o minutos. Esto es completamente normal para conjuntos de datos m\u00e1s grandes - como varios miles de secciones de texto.<\/p>\n<h3>Base de datos de pruebas<\/h3>\n<p>Una vez finalizada la importaci\u00f3n, debemos comprobar que nuestros datos se han guardado correctamente. La prueba m\u00e1s sencilla consiste en realizar una b\u00fasqueda vectorial. Para ello, primero creamos una incrustaci\u00f3n para una pregunta de prueba.<\/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>Ahora podemos buscar vectores similares en 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>Este comando devuelve las tres secciones de texto m\u00e1s similares de nuestra base de datos. Por ejemplo, podemos mostrarlas as\u00ed:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">for result in search_result:\r\nprint(result.payload[\"text\"])\r\nprint(\"---\")<\/pre>\n<p>Si todo ha funcionado, ahora aparecer\u00e1n las secciones de chat de tu archivo que coincidan con la consulta de b\u00fasqueda. Ahora ya lo sabemos: Nuestra base de datos funciona.<\/p>\n<h3>Primera evaluaci\u00f3n de resultados<\/h3>\n<p>Este momento es uno de los m\u00e1s emocionantes de todo el proyecto. Por primera vez, se hace evidente que nuestro archivo de chat puede utilizarse realmente como fuente de conocimiento. Ahora puedes probar diferentes consultas de b\u00fasqueda. Por ejemplo:<\/p>\n<ul>\n<li>\u201eArt\u00edculo AI\u201c<\/li>\n<li>\u201eSistema RAG\u201c<\/li>\n<li>\u201eExportaci\u00f3n de datos ChatGPT\u201c<\/li>\n<li>\u201eIdea de estrategia\u201c<\/li>\n<\/ul>\n<p>En funci\u00f3n del contenido de tu historial de chat, Qdrant encontrar\u00e1 pasajes de texto adecuados. A veces te sorprender\u00e1 el contenido que resurge. Conversaciones que hab\u00edas olvidado hace tiempo pueden volver a ser relevantes de repente. Esto demuestra muy claramente por qu\u00e9 este enfoque es tan interesante. Tus viejas conversaciones de IA ya no son s\u00f3lo un archivo. Se convierten en una base de conocimientos en la que se pueden hacer b\u00fasquedas.<\/p>\n<p>Hemos alcanzado as\u00ed un hito importante. Nuestros datos ChatGPT est\u00e1n ahora totalmente almacenados en la base de datos vectorial y pueden buscarse sem\u00e1nticamente. En el pr\u00f3ximo cap\u00edtulo, daremos un paso m\u00e1s: conectaremos nuestra base de datos de conocimientos con la propia IA. Esto permitir\u00e1 al modelo ling\u00fc\u00edstico acceder a estos datos en el futuro e incorporarlos directamente a las respuestas.<\/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=\"Qdrant Dashboard en 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\">Qdrant Dashboard en http:\/\/localhost:6333\/dashboard<\/figcaption><\/figure>\n<h2>Conectar la IA con la base de datos de conocimientos<\/h2>\n<p>Hasta este punto, ya hemos construido gran parte de la infraestructura. Nuestros datos ChatGPT se extrajeron de la exportaci\u00f3n, se descompusieron en secciones de texto m\u00e1s peque\u00f1as, se incrustaron y, por \u00faltimo, se almacenaron en la base de datos vectorial Qdrant.<\/p>\n<p>Sin embargo, nuestra IA a\u00fan no trabaja con estos datos. Aunque podemos realizar una b\u00fasqueda vectorial con Python y encontrar pasajes de texto adecuados, la propia IA a\u00fan no es consciente de ello. Cuando le hacemos una pregunta, sigue utilizando \u00fanicamente sus conocimientos ling\u00fc\u00edsticos generales.<\/p>\n<p>Por tanto, el siguiente paso es conectar estos dos mundos. Ahora estamos construyendo un proceso en el que la IA recibe primero el contenido pertinente de la base de datos de conocimientos y luego lo incorpora a su respuesta. Este es precisamente el n\u00facleo de un sistema GAR.<\/p>\n<h3>Proceso de consulta<\/h3>\n<p>El proceso de una consulta cambia ligeramente gracias a nuestro sistema de conocimiento. Hasta ahora, una conversaci\u00f3n con una IA sol\u00eda ser as\u00ed:<\/p>\n<ol>\n<li>Haces una pregunta \u2192<\/li>\n<li>La IA procesa la pregunta \u2192<\/li>\n<li>la IA genera una respuesta.<\/li>\n<\/ol>\n<p>Una base de datos de conocimientos es un paso adicional. El nuevo proceso es el siguiente:<\/p>\n<ol>\n<li>Haces una pregunta \u2192<\/li>\n<li>la pregunta se convierte en una incrustaci\u00f3n \u2192<\/li>\n<li>la base de datos vectorial busca textos similares \u2192<\/li>\n<li>Estos textos se transfieren a la IA como contexto \u2192<\/li>\n<\/ol>\n<p>la IA formula una respuesta. Esto significa que la IA ya no s\u00f3lo trabaja con sus conocimientos entrenados, sino tambi\u00e9n con sus propios datos. Este contexto a menudo hace que las respuestas sean mucho m\u00e1s precisas y personalizadas.<\/p>\n<h3>Paso de recuperaci\u00f3n<\/h3>\n<p>La primera parte de este proceso se conoce como recuperaci\u00f3n. Recuperaci\u00f3n significa simplemente \u201erecuperar\u201c. En este paso, nuestro sistema busca en la base de datos contenidos que coincidan con el tema de la pregunta. En primer lugar, creamos otra incrustaci\u00f3n para la pregunta actual.<\/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>Esta incrustaci\u00f3n describe el significado de la pregunta en forma matem\u00e1tica. Qdrant puede ahora buscar vectores similares.<\/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 datos devuelve ahora los cinco pasajes de texto que mejor se ajustan a la pregunta. Estos pasajes de texto constituyen el contexto de la IA. Los recopilamos en una lista.<\/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>Ahora disponemos de una recopilaci\u00f3n de contenidos relevantes de nuestro archivo de chats.<\/p>\n<h3>Transferir contexto a Ollama<\/h3>\n<p>Ahora viene el paso decisivo. Pasamos este contexto junto con la pregunta original a nuestro modelo ling\u00fc\u00edstico. Ahora el modelo puede utilizar esta informaci\u00f3n para formular una respuesta.<\/p>\n<p>En primer lugar, construimos lo que llamamos un prompt. Un prompt es simplemente el texto que enviamos a la 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>Ahora enviamos este mensaje a nuestro modelo ling\u00fc\u00edstico 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>La IA recibe ahora tanto la pregunta como los pasajes de texto pertinentes de nuestra base de datos. Esto le permite generar respuestas basadas en nuestros propios datos.<\/p>\n<h3>Generaci\u00f3n de respuestas<\/h3>\n<p>El \u00faltimo paso es la generaci\u00f3n de respuestas propiamente dicha. El modelo ling\u00fc\u00edstico combina ahora dos fuentes de conocimiento:<\/p>\n<p>sus propios conocimientos formados<\/p>\n<p>el contexto de nuestra base de datos de conocimientos<\/p>\n<p>Esta combinaci\u00f3n es especialmente potente. El modelo puede explicar relaciones generales y al mismo tiempo incorporar contenidos espec\u00edficos de nuestro archivo. Un ejemplo: Si se pregunta<\/p>\n<blockquote><p><em>\u201e\u00bfQu\u00e9 ideas ten\u00eda para utilizar mi exportaci\u00f3n de datos ChatGPT?\u201c<\/em><\/p><\/blockquote>\n<p>la IA puede ahora acceder a conversaciones anteriores y crear un resumen estructurado a partir de ellas. Por ejemplo, puede responder:<\/p>\n<ul>\n<li>Has hablado de crear un archivo personal de conocimientos<\/li>\n<li>Quer\u00edas desarrollar una IA local con un sistema RAG<\/li>\n<li>Ha desarrollado la idea de una serie de art\u00edculos<\/li>\n<\/ul>\n<p>Sin el paso de recuperaci\u00f3n, la IA no habr\u00eda conocido esta informaci\u00f3n en absoluto. Con nuestro sistema, su archivo de chat se convierte en una verdadera fuente de conocimiento. Esto completa la parte m\u00e1s importante de nuestro sistema. Ahora lo tenemos:<\/p>\n<ul>\n<li>una IA local a trav\u00e9s de Ollama<\/li>\n<li>una base de datos vectorial con nuestros datos de chat<\/li>\n<li>una b\u00fasqueda sem\u00e1ntica<\/li>\n<li>un flujo de trabajo RAG<\/li>\n<\/ul>\n<p>En el pr\u00f3ximo cap\u00edtulo probaremos este sistema en la pr\u00e1ctica y comprobaremos lo bien que funciona nuestra IA de conocimiento personal.<\/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 tras importar correctamente los datos de 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 tras importar correctamente los datos de ChatGPT<\/figcaption><\/figure>\n<h2>Primeras consultas con su conocimiento personal AI<\/h2>\n<p>Ahora que hemos establecido la conexi\u00f3n entre nuestra IA y la base de datos de conocimientos en el cap\u00edtulo anterior, el sistema est\u00e1 t\u00e9cnicamente completo. Nuestros datos ChatGPT est\u00e1n en la base de datos vectorial, la IA puede recuperar el contenido relevante y todo el proceso de un sistema RAG funciona.<\/p>\n<p>Ahora llega la parte m\u00e1s emocionante del proyecto: las primeras consultas reales. Porque s\u00f3lo ahora podemos ver si nuestro sistema hace realmente lo que esper\u00e1bamos, es decir, encontrar conversaciones anteriores, analizar contenidos y generar respuestas significativas. En este cap\u00edtulo ponemos a prueba nuestra IA del conocimiento, analizamos casos de uso t\u00edpicos y estudiamos posibles optimizaciones.<\/p>\n<h3>Ejemplos de consultas<\/h3>\n<p>Empecemos con algunas preguntas sencillas. Una buena estrategia es empezar haciendo preguntas que sepas que est\u00e1n en tu archivo de chat. Por ejemplo:<\/p>\n<blockquote><p><em>\u201e\u00bfQu\u00e9 ideas ten\u00eda para utilizar mi exportaci\u00f3n de datos ChatGPT?\u201c<\/em><br \/>\n<em>\u201e\u00bfQu\u00e9 he escrito sobre los sistemas RAG?\u201c<\/em><br \/>\n<em>\u201e\u00bfQu\u00e9 estrategias he discutido para utilizar la IA?\u201c<\/em><\/p><\/blockquote>\n<p>Estas preguntas contienen deliberadamente formulaciones abiertas. El objetivo no es encontrar un texto concreto, sino descubrir un contenido tem\u00e1ticamente apropiado. Cuando usted formula una pregunta de este tipo a su sistema, el proceso que establecimos en el cap\u00edtulo anterior tiene lugar en segundo plano:<\/p>\n<ol>\n<li>La pregunta se convierte en una incrustaci\u00f3n.<\/li>\n<li>La base de datos vectorial busca secciones de texto similares.<\/li>\n<li>Estos pasajes de texto se transfieren a la IA como contexto.<\/li>\n<li>La IA genera una respuesta basada en este contexto.<\/li>\n<\/ol>\n<p>El resultado puede ser sorprendente. A menudo surgen conversaciones olvidadas hace tiempo. Viejas ideas reaparecen de repente en la pantalla, a veces incluso en un contexto completamente nuevo.<\/p>\n<p>Este es precisamente el punto fuerte de este enfoque. Tu archivo de chat se convierte en una fuente de conocimiento en la que se pueden hacer b\u00fasquedas.<\/p>\n<h3>Calidad de las respuestas<\/h3>\n<p>Si realiza algunas consultas, se dar\u00e1 cuenta de que la calidad de las respuestas puede variar. Esto es completamente normal. La calidad de un sistema de este tipo depende de varios factores. Un factor importante es el tama\u00f1o de los trozos de texto. Si los trozos son demasiado grandes, pueden contener varios temas. Esto hace que la b\u00fasqueda sea menos precisa.<\/p>\n<p>Sin embargo, si los trozos son demasiado peque\u00f1os, a veces falta el contexto necesario. Otro factor es el modelo de incrustaci\u00f3n. Los distintos modelos reconocen los contextos de significado de forma diferente. Algunos son especialmente adecuados para textos t\u00e9cnicos, otros para el lenguaje general.<\/p>\n<p>El n\u00famero de resultados recuperados tambi\u00e9n influye. Por ejemplo, si s\u00f3lo se recuperan dos pasajes de texto, puede faltar informaci\u00f3n importante. Si, por el contrario, se cargan demasiados textos, la IA puede tener dificultades para reconocer el contexto pertinente.<\/p>\n<p>Estos par\u00e1metros pueden ajustarse f\u00e1cilmente m\u00e1s adelante. Lo m\u00e1s importante en primer lugar es disponer de un sistema b\u00e1sico que funcione.<\/p>\n<h3>Problemas t\u00edpicos<\/h3>\n<p>Como ocurre con cualquier sistema t\u00e9cnico, aqu\u00ed tambi\u00e9n pueden surgir algunas dificultades. Un problema habitual es que la base de datos encuentre textos que s\u00f3lo son parcialmente relevantes. Esto se debe a que la b\u00fasqueda sem\u00e1ntica siempre trabaja con probabilidades.<\/p>\n<p>Otro problema puede surgir si los textos se han fragmentado demasiado. Si un pensamiento est\u00e1 repartido en varios trozos, la IA puede tener dificultades para reconocer el contexto.<\/p>\n<p>La indicaci\u00f3n tambi\u00e9n desempe\u00f1a un papel. Si no est\u00e1 claro, la IA puede no aprovechar al m\u00e1ximo el contexto. Un ejemplo de una indicaci\u00f3n mejor podr\u00eda ser el siguiente:<\/p>\n<blockquote><p><em>Utilice los siguientes extractos de texto de mi archivo de conocimientos,<\/em><br \/>\n<em>responder a la pregunta con la mayor precisi\u00f3n posible.<\/em><br \/>\n<em>Si existen contenidos relevantes, res\u00famalos.<\/em><\/p><\/blockquote>\n<p>Estos peque\u00f1os ajustes pueden mejorar significativamente la calidad de las respuestas.<\/p>\n<h3>Ajuste fino<\/h3>\n<p>En cuanto el sistema funciona b\u00e1sicamente, empieza la parte m\u00e1s interesante: la puesta a punto. Aqu\u00ed puedes experimentar y mejorar tu sistema de conocimiento paso a paso. Algunas optimizaciones t\u00edpicas son<\/p>\n<ul>\n<li><strong>Ajustar el tama\u00f1o de los trozos<\/strong><br \/>\nA veces, las secciones de texto m\u00e1s peque\u00f1as proporcionan mejores resultados. En otros casos, es \u00fatil disponer de m\u00e1s contexto.<\/li>\n<li><strong>Utilizaci\u00f3n de un modelo de incrustaci\u00f3n diferente<\/strong><br \/>\nCambiar el modelo puede mejorar significativamente la calidad de la b\u00fasqueda sem\u00e1ntica.<\/li>\n<li><strong>M\u00e1s contexto para la IA<\/strong><br \/>\nPuede recuperar m\u00e1s resultados de la base de datos, por ejemplo diez pasajes de texto en lugar de cinco.<\/li>\n<li><strong>Utilizar metadatos<\/strong><br \/>\nSi guarda informaci\u00f3n adicional, como la fecha o el t\u00edtulo de la convocatoria, podr\u00e1 filtrar la b\u00fasqueda con mayor precisi\u00f3n m\u00e1s adelante.<\/li>\n<\/ul>\n<p>Estos ajustes forman parte de todo sistema GAR real. Rara vez existe un ajuste perfecto para todas las situaciones. Pero \u00e9se es precisamente el atractivo de estos sistemas: se pueden mejorar continuamente.<\/p>\n<p>Con este cap\u00edtulo hemos realizado la primera prueba completa de nuestro sistema. Hemos visto que, efectivamente, nuestra IA de conocimiento personal es capaz de buscar en conversaciones antiguas y recuperar contenido relevante.<\/p>\n<p>Esto significa que el n\u00facleo de nuestro proyecto ya se ha logrado. Pero el sistema a\u00fan puede ampliarse considerablemente. Por ello, en el pr\u00f3ximo cap\u00edtulo veremos c\u00f3mo se pueden integrar fuentes de datos adicionales y ampliar paso a paso el archivo personal de conocimientos.<\/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-981 { --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-981 { --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\">Art\u00edculos de actualidad sobre Alemania<\/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-981\" 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=\"zustand der deutschen wirtschaft 2025: f\u00fcnf jahre krise, zahlen, trends und ausblick\" data-id=\"3773\"  data-category=\"allgemein gesellschaft\" data-post_tag=\"auswandern deutschland energiepolitik erfahrungen geopolitik 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\/es\/2025\/12\/estado-de-la-economia-alemana-2025-cinco-anos-de-crisis-cifras-tendencias-y-perspectivas\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Estado de la econom\u00eda alemana en 2025: cinco a\u00f1os de crisis, cifras, tendencias y perspectivas<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Situaci\u00f3n de la econom\u00eda alemana en 2025\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/zustand-deutschland-2025.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/zustand-deutschland-2025.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/zustand-deutschland-2025-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/zustand-deutschland-2025-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/zustand-deutschland-2025-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\/es\/2025\/12\/estado-de-la-economia-alemana-2025-cinco-anos-de-crisis-cifras-tendencias-y-perspectivas\/\" rel=\"bookmark\">Estado de la econom\u00eda alemana en 2025: cinco a\u00f1os de crisis, cifras, tendencias y perspectivas<\/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=\"energie, macht und abh\u00e4ngigkeit: europas weg vom exportweltmeister zum nachfrager\" data-id=\"4945\"  data-category=\"allgemein gesellschaft\" data-post_tag=\"denkmodelle deutschland energiepolitik eu-gesetze 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\/es\/2026\/02\/poder-y-dependencia-energeticos-la-transicion-de-europa-de-campeon-mundial-de-exportacion-a-consumidor\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Energ\u00eda, poder y dependencia: Europa pasa de ser campeona mundial de exportaci\u00f3n a consumidora<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Europa y la energ\u00eda\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Europa-Energie.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Europa-Energie.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Europa-Energie-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Europa-Energie-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Europa-Energie-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\/es\/2026\/02\/poder-y-dependencia-energeticos-la-transicion-de-europa-de-campeon-mundial-de-exportacion-a-consumidor\/\" rel=\"bookmark\">Energ\u00eda, poder y dependencia: Europa pasa de ser campeona mundial de exportaci\u00f3n a consumidora<\/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=\"nord stream sprengung: sabotage, machtpolitik und die unbequemen offenen fragen\" data-id=\"4441\"  data-category=\"allgemein gesellschaft\" data-post_tag=\"deutschland energiepolitik europa geopolitik krisen 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\/es\/2026\/01\/north-stream-blasting-sabotage-power-politics-and-the-uncomfortable-open-questions\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Derribo del Nord Stream: sabotaje, pol\u00edtica de poder e inc\u00f3modas preguntas sin respuesta<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Voladuras del Nord Stream\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/nordstream-sprengung.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/nordstream-sprengung.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/nordstream-sprengung-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/nordstream-sprengung-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/nordstream-sprengung-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\/es\/2026\/01\/north-stream-blasting-sabotage-power-politics-and-the-uncomfortable-open-questions\/\" rel=\"bookmark\">Derribo del Nord Stream: sabotaje, pol\u00edtica de poder e inc\u00f3modas preguntas sin respuesta<\/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 dieter bohlen spricht, wenn andere schweigen: ein portr\u00e4t \u00fcber flei\u00df und klarheit\" data-id=\"3744\"  data-category=\"allgemein gesellschaft kunst &amp; kultur\" data-post_tag=\"auswandern deutschland erfahrungen krisen 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\/es\/2025\/12\/por-que-dieter-bohlen-habla-cuando-otros-callan-un-retrato-de-diligencia-y-claridad\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Por qu\u00e9 Dieter Bohlen habla cuando otros callan: Un retrato de diligencia y claridad<\/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\/Dieter-Bohlen-Portrait.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-Portrait.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-Portrait-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-Portrait-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Dieter-Bohlen-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\/es\/2025\/12\/por-que-dieter-bohlen-habla-cuando-otros-callan-un-retrato-de-diligencia-y-claridad\/\" rel=\"bookmark\">Por qu\u00e9 Dieter Bohlen habla cuando otros callan: Un retrato de diligencia y claridad<\/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>Extensiones para su sistema personal de conocimiento de IA<\/h2>\n<p>Ya has creado un sistema funcional con la configuraci\u00f3n anterior. Tus datos de ChatGPT han sido extra\u00eddos, convertidos en embeddings, almacenados en Qdrant y finalmente conectados a una IA local. El resultado es una IA de conocimiento que puede acceder a conversaciones anteriores.<\/p>\n<p>Pero, estrictamente hablando, s\u00f3lo estamos al principio. La arquitectura que has construido no se limita a los datos ChatGPT. Funciona con cualquier tipo de texto. Cualquier cosa que pueda convertirse en documentos o archivos de texto puede pasar a formar parte de este sistema de conocimiento. Aqu\u00ed es donde reside el verdadero potencial de este tipo de sistemas.<\/p>\n<p>Lo que hemos construido b\u00e1sicamente es una m\u00e1quina de conocimiento personal. Y esta m\u00e1quina puede ampliarse paso a paso. En este cap\u00edtulo veremos las posibilidades que se derivan de ello y c\u00f3mo puedes ampliar tu sistema a largo plazo.<\/p>\n<h3>Integrar fuentes de datos adicionales<\/h3>\n<p>El siguiente paso m\u00e1s obvio es a\u00f1adir m\u00e1s contenido a tu base de conocimientos. Las conversaciones de ChatGPT son un buen comienzo, pero normalmente s\u00f3lo representan una parte de tus propios conocimientos. Hay mucha informaci\u00f3n disponible en otros formatos. Por ejemplo:<\/p>\n<ul>\n<li>art\u00edculos propios<\/li>\n<li>Notas<\/li>\n<li>Documentos PDF<\/li>\n<li>Documentos de investigaci\u00f3n<\/li>\n<li>Libros electr\u00f3nicos<\/li>\n<li>Protocolos o listas de ideas<\/li>\n<\/ul>\n<p>Todo este contenido puede procesarse de la misma manera que nuestros datos de chat. El proceso sigue siendo id\u00e9ntico:<\/p>\n<ul>\n<li>Extraer texto<\/li>\n<li>Dividir el texto en trozos<\/li>\n<li>Crear incrustaciones<\/li>\n<li>Guardar datos en Qdrant<\/li>\n<\/ul>\n<p>Un ejemplo: Si ha escrito muchos art\u00edculos propios, puede importar estos textos a su base de datos de conocimientos. La IA puede acceder a ellos m\u00e1s tarde y reconocer correlaciones. Por ejemplo, podr\u00eda preguntar:<\/p>\n<blockquote><p><em>\u201e\u00bfQu\u00e9 art\u00edculos he escrito sobre IA?\u201c<\/em><\/p><\/blockquote>\n<p>o<\/p>\n<blockquote><p><em>\u201e\u00bfQu\u00e9 argumentos he desarrollado sobre este tema en el pasado?\u201c.\u201c<\/em><\/p><\/blockquote>\n<p>A continuaci\u00f3n, la IA busca en tu archivo de art\u00edculos y utiliza el contenido que encuentra como contexto. De este modo, el sistema se convierte paso a paso en un completo archivo de conocimientos.<\/p>\n<h3>Varias bases de datos de conocimientos<\/h3>\n<p>A medida que aumenta la cantidad de datos, puede ser \u00fatil separar diferentes \u00e1reas. Qdrant le permite crear m\u00faltiples colecciones. Cada colecci\u00f3n puede representar su propia base de conocimientos. Un posible sistema podr\u00eda tener este aspecto, por ejemplo:<\/p>\n<ul>\n<li><strong>Colecci\u00f3n 1<\/strong>Conversaciones ChatGPT<\/li>\n<li><strong>Colecci\u00f3n 2<\/strong>: Archivo de art\u00edculos<\/li>\n<li><strong>Colecci\u00f3n 3<\/strong>Notas personales<\/li>\n<li><strong>Colecci\u00f3n 4<\/strong>Documentaci\u00f3n t\u00e9cnica<\/li>\n<\/ul>\n<p>Esta separaci\u00f3n tiene varias ventajas. En primer lugar, la estructura permanece clara. Siempre se sabe d\u00f3nde se almacenan determinados contenidos. En segundo lugar, las consultas pueden controlarse de forma m\u00e1s espec\u00edfica. Algunas preguntas quiz\u00e1 s\u00f3lo deban buscar en su archivo de art\u00edculos, otras en todo su sistema de conocimiento. Un ejemplo:<\/p>\n<ul>\n<li>Una pregunta de investigaci\u00f3n s\u00f3lo podr\u00eda buscarse en el archivo de art\u00edculos.<\/li>\n<li>En cambio, una pregunta estrat\u00e9gica podr\u00eda tener en cuenta todas las colecciones al mismo tiempo.<\/li>\n<\/ul>\n<p>Estas estructuras hacen que los grandes sistemas de conocimiento sean mucho m\u00e1s eficientes.<\/p>\n<h3>Actualizaciones autom\u00e1ticas<\/h3>\n<p>Otro paso \u00fatil es actualizar el sistema con regularidad. En el ejemplo anterior, hemos procesado la exportaci\u00f3n de datos ChatGPT una vez. En la pr\u00e1ctica, sin embargo, se crean nuevos contenidos constantemente.<\/p>\n<p>Nuevas conversaciones, nuevas notas, nuevos documentos... toda esta informaci\u00f3n tambi\u00e9n podr\u00eda pasar a formar parte de tu archivo de conocimientos.<br \/>\nPor tanto, merece la pena pensar en las actualizaciones autom\u00e1ticas. Una soluci\u00f3n sencilla consiste en importar regularmente nuevos datos. Por ejemplo:<\/p>\n<ul>\n<li>Procesar nuevos datos de chat una vez a la semana<\/li>\n<li>Importaci\u00f3n autom\u00e1tica de nuevos documentos<\/li>\n<li>A\u00f1adir inmediatamente nuevos art\u00edculos a la base de datos<\/li>\n<\/ul>\n<p>T\u00e9cnicamente, esto es relativamente f\u00e1cil de implementar. Un peque\u00f1o script puede comprobar peri\u00f3dicamente si hay nuevos archivos disponibles y procesarlos autom\u00e1ticamente. De este modo, el sistema de conocimientos crece continuamente. Con el tiempo, se crea un archivo cada vez m\u00e1s extenso que documenta tus pensamientos y proyectos.<\/p>\n<h3>Integraci\u00f3n en sus propias aplicaciones<\/h3>\n<p>Hasta ahora, nuestro sistema se ha utilizado mediante sencillos scripts en Python. Pero a largo plazo, este sistema tambi\u00e9n puede integrarse en tus propias aplicaciones. Por ejemplo, muchos desarrolladores est\u00e1n construyendo peque\u00f1as interfaces web que permiten utilizar directamente su IA del conocimiento.<\/p>\n<p>En lugar de iniciar una secuencia de comandos, basta con escribir una pregunta en un campo de entrada. El mismo proceso se ejecuta en segundo plano:<\/p>\n<ol>\n<li>Crear incrustaci\u00f3n<\/li>\n<li>Buscar en la base de datos<\/li>\n<li>Transferir el contexto a la IA<\/li>\n<li>Generar respuesta<\/li>\n<\/ol>\n<p>El resultado aparece directamente en la interfaz de usuario. Una aplicaci\u00f3n de este tipo puede adoptar formas muy diferentes. Por ejemplo:<\/p>\n<ul>\n<li>una IA de investigaci\u00f3n personal<\/li>\n<li>un asistente de conocimientos para proyectos<\/li>\n<li>un buscador de ideas<\/li>\n<li>un archivo de art\u00edculos y notas<\/li>\n<\/ul>\n<p>La combinaci\u00f3n de estos sistemas con otras herramientas resulta especialmente interesante. Por ejemplo, un sistema editorial podr\u00eda acceder autom\u00e1ticamente a su archivo de conocimientos y utilizar art\u00edculos anteriores como base para la investigaci\u00f3n. O un sistema de notas podr\u00eda integrar autom\u00e1ticamente nuevas ideas en tu base de datos.<\/p>\n<p>En otras palabras, la IA pasa a formar parte de tu entorno de trabajo diario. Esto deja claro que nuestro peque\u00f1o proyecto va mucho m\u00e1s all\u00e1 de la exportaci\u00f3n de datos original de ChatGPT.<\/p>\n<p>No nos hemos limitado a crear un archivo. Hemos creado una arquitectura que puede ampliarse seg\u00fan las necesidades. Y es precisamente ah\u00ed donde reside el verdadero valor de estos sistemas. No son est\u00e1ticos. Crecen con sus conocimientos.<\/p>\n<h2>Versi\u00f3n ampliada del gasoducto para descargar<\/h2>\n<p>El siguiente script es una versi\u00f3n extendida del pipeline del art\u00edculo. Es m\u00e1s robusto y mucho m\u00e1s cercano a una soluci\u00f3n productiva. Se han mejorado tres cosas:<\/p>\n<ul>\n<li><strong>Indicador de progreso<\/strong>El usuario puede ver en todo momento cu\u00e1ntos textos se han procesado ya.<\/li>\n<li><strong>Importaci\u00f3n por lotes<\/strong>Las incrustaciones se recopilan y escriben en Qdrant en bloques, lo que resulta mucho m\u00e1s r\u00e1pido que las importaciones individuales.<\/li>\n<li><strong>Canal de incrustaci\u00f3n m\u00e1s r\u00e1pido<\/strong>El script funciona de forma estructurada con trozos preparados y reduce las llamadas innecesarias.<\/li>\n<\/ul>\n<p>Por lo tanto, este script es especialmente adecuado si la exportaci\u00f3n de ChatGPT es mayor: varios miles de conversaciones, por ejemplo. Proceso t\u00edpico:<\/p>\n<ol>\n<li>Cargar exportaci\u00f3n ChatGPT<\/li>\n<li>Extraer textos<\/li>\n<li>Dividir el texto en trozos<\/li>\n<li>Crear incrustaciones<\/li>\n<li>Importaci\u00f3n por lotes en Qdrant<\/li>\n<li>Realizar una consulta de prueba<\/li>\n<\/ol>\n<h3>Ajustes importantes en el script<\/h3>\n<p>Algunos valores deben ser ajustados por el usuario:<\/p>\n<ul>\n<li><strong>EXPORT_PFAD<\/strong><br \/>\nRuta a los archivos conversations.json, en su mayor\u00eda numerados, de la exportaci\u00f3n ChatGPT.<\/li>\n<li><strong>NOMBRE_COLECCI\u00d3N<\/strong><br \/>\nNombre de la colecci\u00f3n de bases de datos vectoriales.<\/li>\n<li><strong>MODELO_EMBED<\/strong><br \/>\nModelo de incrustaci\u00f3n de Ollama, por ejemplo nomic-embed-text o mxbai-embed-large<\/li>\n<li><strong>ANSWER_MODEL<\/strong><br \/>\nModelo ling\u00fc\u00edstico para la consulta de prueba, por ejemplo, llama, mistral o gpt:oss<\/li>\n<li><strong>VECTOR_SIZE<\/strong><br \/>\nDimensi\u00f3n del modelo de incrustaci\u00f3n.<br \/>\nnomic-embed-text \u2192 768<br \/>\nmxbai-embed-large \u2192 1024<\/li>\n<li><strong>CHUNK_SIZE<\/strong><br \/>\nTama\u00f1o de las secciones de texto.<br \/>\nNormalmente de 300 a 600 palabras.<\/li>\n<li><strong>BATCH_SIZE<\/strong><br \/>\nCu\u00e1ntas incrustaciones se escriben en Qdrant al mismo tiempo.<br \/>\nValor t\u00edpico: 50-200.<\/li>\n<\/ul>\n<p><strong><a class=\"downloadbtn\" href=\"https:\/\/markus-schall.de\/downloads\/ChatGPT_Export_Scripts.zip\">Descargar script Python<\/a><\/strong><\/p>\n<h3>Mant\u00e9ngase al d\u00eda - sin publicidad<\/h3>\n<p>Si desea mantenerse informado sobre las actualizaciones de este script o nuevas descargas, puede suscribirse a mi bolet\u00edn mensual. El bolet\u00edn es deliberadamente escueto, no tiene publicidad y s\u00f3lo aparece una vez al mes. En \u00e9l encontrar\u00e1s una selecci\u00f3n de los nuevos art\u00edculos m\u00e1s importantes, contenido pr\u00e1ctico sobre IA, software y digitalizaci\u00f3n, as\u00ed como informaci\u00f3n sobre scripts actualizados o nuevas ofertas de descarga. Sin spam, sin correos electr\u00f3nicos diarios: s\u00f3lo el contenido m\u00e1s relevante en formato compacto. Si quiere seguir estas novedades de forma continuada, el bolet\u00edn es la forma m\u00e1s sencilla de mantenerse al d\u00eda.<\/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>Confirme su suscripci\u00f3n.<\/div><div class=\"mailster-block-form-info-extra\"><\/div><\/div><div class=\"mailster-block-form-info-error\" style=\"width:100%\"><div>Faltan algunos campos o son incorrectos.<\/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=\"Nombre\" spellcheck=\"false\" value=\"\" class=\"input\" autocomplete=\"given-name\" placeholder=\" \"\/><label for=\"mailster-id-41b55c\" class=\"mailster-label\">Nombre<\/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=\"correo electr\u00f3nico\" spellcheck=\"false\" required value=\"\" class=\"input\" autocomplete=\"email\" placeholder=\" \"\/><label for=\"mailster-id-f70659\" class=\"mailster-label\">correo electr\u00f3nico<\/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=\"Reg\u00edstrese aqu\u00ed\" 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=\"1778781205\" \/>\n<button class=\"mailster-block-form-close\" aria-label=\"cerrar\" 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=\"es\"\/><\/form>\n<\/div>\n<h3>Perspectivas para la Parte 3: Afinar, analizar y optimizar el uso de los datos<\/h3>\n<p>En la tercera parte de la serie, vamos un paso m\u00e1s all\u00e1 y echamos un vistazo a lo que realmente puede obtener de la base de datos de conocimiento que ha creado. Ahora que los datos de ChatGPT se han almacenado en Qdrant, nos centramos en su uso real. Echamos un vistazo a la interfaz web de Qdrant, analizamos los datos almacenados y comprobamos lo bien que funciona la b\u00fasqueda sem\u00e1ntica. Tambi\u00e9n nos ocupamos de importantes ajustes finos: \u00bfC\u00f3mo debe seleccionarse el chunking en funci\u00f3n del caso de uso? \u00bfC\u00f3mo puede transferirse de forma \u00f3ptima el contexto a un modelo ling\u00fc\u00edstico local? \u00bfY c\u00f3mo puede mejorarse espec\u00edficamente la calidad de las respuestas? La tercera parte est\u00e1 dirigida a todos aquellos que quieran sacar m\u00e1s partido del sistema y desarrollarlo conscientemente.<\/p>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-982 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-h-gutter: 10px;--dpt-v-gutter: 9px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-982 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">Art\u00edculos de actualidad sobre inteligencia artificial<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-982\" class=\"dpt-wrapper dpt-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=\"filemaker-konferenz 2025: ki, community und ein unerwarteter vorfall\" data-id=\"2898\"  data-category=\"allgemein filemaker &amp; erp ki-systeme stories &amp; humor\" data-post_tag=\"datenbanken erp-software filemaker gfm-business k\u00fcnstliche intelligenz\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/es\/2025\/09\/conferencia-filemaker-2025-comunidad-ki-y-un-incidente-inesperado\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">FileMaker Conferencia 2025: IA, comunidad y un incidente inesperado<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"512\" class=\"attachment-full size-full\" alt=\"FileMaker Conferencia 2025: Alarma de incendio con bomberos\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1-300x150.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1-768x384.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/FMK2025-Feueralarm-1-18x9.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/es\/2025\/09\/conferencia-filemaker-2025-comunidad-ki-y-un-incidente-inesperado\/\" rel=\"bookmark\">FileMaker Conferencia 2025: IA, comunidad y un incidente inesperado<\/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=\"als ich mit einem roboter telefonierte &#8211; wie ki das telefon erobert und wie man sie erkennt\" data-id=\"5130\"  data-category=\"allgemein gesellschaft ki-systeme stories &amp; humor\" data-post_tag=\"datenschutz erfahrungen k\u00fcnstliche intelligenz prozesse\">\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\/es\/2026\/03\/como-ki-conquista-el-telefono-y-como-reconocerlo\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Cuando hablaba por tel\u00e9fono con un robot: c\u00f3mo la IA est\u00e1 conquistando el tel\u00e9fono y c\u00f3mo reconocerla<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Conversaci\u00f3n telef\u00f3nica con un robot de inteligencia artificial\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Telefonanrufe-KI-Werbung.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Telefonanrufe-KI-Werbung.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Telefonanrufe-KI-Werbung-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Telefonanrufe-KI-Werbung-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Telefonanrufe-KI-Werbung-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\/es\/2026\/03\/como-ki-conquista-el-telefono-y-como-reconocerlo\/\" rel=\"bookmark\">Cuando hablaba por tel\u00e9fono con un robot: c\u00f3mo la IA est\u00e1 conquistando el tel\u00e9fono y c\u00f3mo reconocerla<\/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=\"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\/es\/2025\/08\/ollama-meets-qdrant-una-memoria-local-para-tu-ki-en-el-mac\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Ollama se re\u00fane con Qdrant: una memoria local para tu IA en el Mac<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1440\" height=\"980\" class=\"attachment-full size-full\" alt=\"Memoria para IA local con Ollama y 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\/es\/2025\/08\/ollama-meets-qdrant-una-memoria-local-para-tu-ki-en-el-mac\/\" rel=\"bookmark\">Ollama se re\u00fane con Qdrant: una memoria local para tu IA en el 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=\"lora-training: wie filemaker 2025 das feintuning gro\u00dfer sprachmodelle vereinfacht\" data-id=\"3220\"  data-category=\"filemaker &amp; erp ki-systeme\" data-post_tag=\"datenbanken filemaker k\u00fcnstliche intelligenz llm mlx sprachmodell\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/es\/2025\/10\/lora-training-como-filemaker-2025-simplifica-el-ajuste-fino-de-grandes-modelos-lingueisticos\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Entrenamiento LoRA: c\u00f3mo FileMaker 2025 simplifica el ajuste fino de grandes modelos ling\u00fc\u00edsticos<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"LoRA Ajuste fino - FileMaker 2025\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/lora-finetuning-filemaker-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/es\/2025\/10\/lora-training-como-filemaker-2025-simplifica-el-ajuste-fino-de-grandes-modelos-lingueisticos\/\" rel=\"bookmark\">Entrenamiento LoRA: c\u00f3mo FileMaker 2025 simplifica el ajuste fino de grandes modelos ling\u00fc\u00edsticos<\/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>Preguntas m\u00e1s frecuentes<\/h2>\n<ol>\n<li><strong>\u00bfPara qu\u00e9 sirve integrar la exportaci\u00f3n de datos de ChatGPT en mi propia IA?<\/strong><br \/>\nLa mayor ventaja es que puedes utilizar tus propias conversaciones y pensamientos a largo plazo. Muchas personas mantienen conversaciones intensas con sistemas de IA sobre proyectos, ideas, an\u00e1lisis o cuestiones personales. Normalmente, este contenido desaparece en el transcurso de la plataforma. Sin embargo, si lo exportas y lo integras en tu propia base de datos de conocimientos, se convierte en un archivo personal. Tu IA local puede entonces acceder a este contenido, reconocer correlaciones y ayudarte con nuevas preguntas. En lugar de empezar siempre desde cero, construyes tu propio pensamiento paso a paso.<\/li>\n<li><strong>\u00bfNo es muy complicado para alguien que no es desarrollador?<\/strong><br \/>\nA primera vista, t\u00e9rminos como incrustaciones, bases de datos vectoriales o sistemas RAG parecen complejos. En la pr\u00e1ctica, sin embargo, los pasos individuales est\u00e1n estructurados de forma relativamente clara. B\u00e1sicamente, s\u00f3lo se necesitan tres componentes: una IA local (por ejemplo, a trav\u00e9s de Ollama), una base de datos vectorial como Qdrant y un peque\u00f1o script en Python que procese los datos. Muchos de los pasos se ejecutan autom\u00e1ticamente. Una vez configurado el sistema, funciona como un motor de b\u00fasqueda normal o un chatbot, con la diferencia de que trabaja con tus propios conocimientos.<\/li>\n<li><strong>\u00bfQu\u00e9 datos contiene realmente la exportaci\u00f3n ChatGPT?<\/strong><br \/>\nLa exportaci\u00f3n de ChatGPT suele contener todas las conversaciones que has mantenido con el sistema. Esto incluye no s\u00f3lo los mensajes de texto en s\u00ed, sino tambi\u00e9n metadatos como t\u00edtulos de conversaci\u00f3n, marcas de tiempo e informaci\u00f3n estructural. Los datos suelen estar disponibles en formato JSON, por lo que pueden procesarse con relativa facilidad mediante scripts. En muchos casos, la exportaci\u00f3n tambi\u00e9n incluye archivos multimedia o de idioma si se utilizaron en las conversaciones. Sin embargo, lo que interesa a la hora de crear una base de datos de conocimientos es sobre todo el contenido textual.<\/li>\n<li><strong>\u00bfPor qu\u00e9 se utiliza una base de datos vectorial para estos sistemas y no una base de datos normal?<\/strong><br \/>\nLas bases de datos normales son ideales para buscar t\u00e9rminos o ID espec\u00edficos. Sin embargo, son menos adecuadas para b\u00fasquedas sem\u00e1nticas. Una base de datos vectorial almacena los textos no s\u00f3lo como cadenas de caracteres, sino tambi\u00e9n como vectores matem\u00e1ticos que describen el significado de un texto. Esto permite al sistema buscar similitudes en el contenido. Por ejemplo, si pide \u201eideas para art\u00edculos sobre inteligencia artificial\u201c, la base de datos tambi\u00e9n puede encontrar contenidos que contengan otras frases como \u201etemas para art\u00edculos de blog sobre inteligencia artificial\u201c.<\/li>\n<li><strong>\u00bfQu\u00e9 son las incrustaciones y por qu\u00e9 son tan importantes?<\/strong><br \/>\nLas incrustaciones son representaciones matem\u00e1ticas de los textos. Un modelo ling\u00fc\u00edstico convierte un texto en una lista de n\u00fameros que describen su significado. Los textos con significados similares se aproximan en el espacio matem\u00e1tico. Esto permite a una base de datos vectorial buscar posteriormente contenidos similares. Sin incrustaciones, una b\u00fasqueda sem\u00e1ntica dif\u00edcilmente ser\u00eda posible. Constituyen la base de los sistemas RAG modernos y son la raz\u00f3n por la que dichos sistemas son mucho m\u00e1s flexibles que las b\u00fasquedas cl\u00e1sicas de texto completo.<\/li>\n<li><strong>\u00bfQu\u00e9 tama\u00f1o puede tener mi exportaci\u00f3n de datos ChatGPT?<\/strong><br \/>\nEl tama\u00f1o no juega un papel importante. Incluso varios miles de conversaciones pueden procesarse sin problemas. Lo que es m\u00e1s importante es el n\u00famero de secciones de texto generadas, los llamados chunks. Una exportaci\u00f3n mayor conlleva m\u00e1s chunks y, por tanto, m\u00e1s incrustaciones. Sin embargo, las bases de datos vectoriales modernas pueden gestionar f\u00e1cilmente millones de entradas de este tipo. Incluso un peque\u00f1o servidor o un potente ordenador de sobremesa son completamente suficientes para un asistente de conocimiento privado.<\/li>\n<li><strong>\u00bfPor qu\u00e9 se divide el texto en peque\u00f1as secciones antes de procesarlo?<\/strong><br \/>\nSi guarda conversaciones completas o textos extensos directamente como incrustaciones, la b\u00fasqueda sem\u00e1ntica se vuelve imprecisa. Un solo texto puede contener varios temas. Dividi\u00e9ndolo en secciones m\u00e1s peque\u00f1as, el sistema puede realizar b\u00fasquedas m\u00e1s precisas. Cada secci\u00f3n describe un tema m\u00e1s claro. Esto permite a la base de datos encontrar exactamente las partes de una conversaci\u00f3n que realmente se ajustan a la pregunta actual.<\/li>\n<li><strong>\u00bfQu\u00e9 papel desempe\u00f1a el Ollama en este sistema?<\/strong><br \/>\nOllama sirve de plataforma local para modelos ling\u00fc\u00edsticos. Le permite ejecutar modelos de IA directamente en su propio ordenador. En nuestro sistema, Ollama realiza dos tareas: Crea incrustaciones para textos y genera respuestas a preguntas. La ventaja es que todos los datos permanecen locales. Esto significa que sus conversaciones y su archivo de conocimientos nunca salen de su propio ordenador.<\/li>\n<li><strong>\u00bfPor qu\u00e9 se utiliza Qdrant como base de datos vectorial?<\/strong><br \/>\nQdrant es una moderna base de datos vectorial especialmente desarrollada para aplicaciones de IA. Es r\u00e1pida, f\u00e1cil de installieren y est\u00e1 muy bien documentada. Tambi\u00e9n se puede conectar f\u00e1cilmente a Python y a muchos marcos de trabajo de IA. Qdrant es, por tanto, una soluci\u00f3n especialmente pr\u00e1ctica para los sistemas de conocimiento local. Otras alternativas son Chroma, Weaviate o Pinecone.<\/li>\n<li><strong>\u00bfQu\u00e9 significa el t\u00e9rmino sistema RAG?<\/strong><br \/>\nRAG son las siglas de \u201eRetrieval-Augmented Generation\u201c (generaci\u00f3n mejorada por recuperaci\u00f3n). Se trata de una arquitectura en la que una IA recupera primero la informaci\u00f3n pertinente de una base de datos y luego la utiliza para generar una respuesta. La IA combina as\u00ed sus propios conocimientos con datos externos. Esto le permite dar respuestas muy precisas y, al mismo tiempo, acceder a informaci\u00f3n actual o personal.<\/li>\n<li><strong>\u00bfPuedo integrar tambi\u00e9n otras fuentes de datos en este sistema?<\/strong><br \/>\nDe hecho, \u00e9sta es una de las mayores ventajas de esta arquitectura. El sistema no se limita a los datos de ChatGPT. Tambi\u00e9n puede integrar sus propios art\u00edculos, notas, PDF, trabajos de investigaci\u00f3n u otros documentos. Siempre que el contenido pueda procesarse en forma de texto, puede pasar a formar parte de la base de conocimientos. Con el tiempo, su sistema se convertir\u00e1 en un completo archivo de conocimientos.<\/li>\n<li><strong>\u00bfHasta qu\u00e9 punto se mantiene actualizado un sistema de conocimientos de este tipo?<\/strong><br \/>\nLa actualizaci\u00f3n depende de la frecuencia con la que importes nuevos datos. Por ejemplo, puede procesar regularmente nuevas exportaciones de ChatGPT o crear un script que reconozca autom\u00e1ticamente los nuevos documentos. Muchos sistemas est\u00e1n configurados para actualizarse una vez a la semana o al mes. De este modo, la base de conocimientos se mantiene actualizada en todo momento.<\/li>\n<li><strong>\u00bfQu\u00e9 hardware necesito para un sistema de este tipo?<\/strong><br \/>\nUn ordenador de sobremesa moderno es suficiente para proyectos peque\u00f1os. Si se desea utilizar un modelo ling\u00fc\u00edstico m\u00e1s amplio, una GPU puede resultar \u00fatil. Sin embargo, muchos usuarios tambi\u00e9n ejecutan con \u00e9xito sus sistemas de conocimiento en un potente port\u00e1til o miniservidor. Sobre todo, es importante disponer de suficiente memoria y espacio de almacenamiento para la base de datos.<\/li>\n<li><strong>\u00bfA qu\u00e9 velocidad funciona un sistema as\u00ed en la pr\u00e1ctica?<\/strong><br \/>\nLa velocidad depende de varios factores, como el tama\u00f1o de la base de datos, el hardware y el modelo de lenguaje utilizado. En muchos casos, una consulta s\u00f3lo tarda unos segundos. La b\u00fasqueda vectorial en s\u00ed suele ser extremadamente r\u00e1pida. La mayor parte del tiempo suele emplearse en generar la respuesta a partir del modelo ling\u00fc\u00edstico.<\/li>\n<li><strong>\u00bfEs posible separar varias \u00e1reas de conocimiento?<\/strong><br \/>\nS\u00ed, las bases de datos vectoriales como Qdrant permiten el uso de m\u00faltiples colecciones. Cada colecci\u00f3n puede representar un \u00e1rea tem\u00e1tica distinta. Por ejemplo, se puede crear una colecci\u00f3n para conversaciones ChatGPT, otra para art\u00edculos y otra para notas. Esto permite estructurar claramente las \u00e1reas de conocimiento y realizar b\u00fasquedas espec\u00edficas.<\/li>\n<li><strong>\u00bfHasta qu\u00e9 punto est\u00e1n seguros mis datos en un sistema local de IA?<\/strong><br \/>\nLa gran ventaja de un sistema local es que sus datos no tienen que transferirse a servicios externos. Toda la informaci\u00f3n permanece en su propio ordenador o servidor. Esto es especialmente interesante para los contenidos sensibles. Por supuesto, debes hacer copias de seguridad peri\u00f3dicas y proteger tu sistema contra accesos no autorizados.<\/li>\n<li><strong>\u00bfPuedo integrar este sistema en mis propias aplicaciones?<\/strong><br \/>\nS\u00ed, se puede acceder a la mayor\u00eda de los componentes a trav\u00e9s de interfaces de programaci\u00f3n. Esto le permite integrar su sistema de conocimientos en sus propias herramientas, por ejemplo en una interfaz web, un sistema editorial o una aplicaci\u00f3n de notas. Muchos desarrolladores crean peque\u00f1as aplicaciones que permiten acceder directamente a su base de datos de conocimientos a trav\u00e9s de una interfaz de chat.<\/li>\n<li><strong>\u00bfC\u00f3mo podr\u00eda evolucionar esta tecnolog\u00eda en el futuro?<\/strong><br \/>\nLas IA de conocimiento personal est\u00e1n probablemente s\u00f3lo al principio de su desarrollo. En el futuro, estos sistemas podr\u00edan integrar autom\u00e1ticamente nuevos contenidos, crear res\u00famenes o incluso ofrecer sus propias sugerencias de proyectos. Cuantos m\u00e1s datos reciba un sistema de este tipo, m\u00e1s valioso ser\u00e1. A largo plazo, podr\u00eda convertirse en una especie de memoria digital personal que estructure tus conocimientos y los haga accesibles en cualquier momento.<\/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-983 { --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-983 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">Art\u00edculos de actualidad sobre arte y cultura<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-983\" class=\"dpt-wrapper dpt-mag1 land1 dpt-cropped dpt-flex-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"reichweite ist kein eigentum &#8211; warum sichtbarkeit heute nicht mehr ausreicht\" data-id=\"3994\"  data-category=\"allgemein filemaker &amp; erp gesellschaft kunst &amp; kultur\" data-post_tag=\"datenlogik datenschutz denkmodelle digitales eigentum erp-software\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/es\/2025\/12\/el-alcance-no-es-propiedad-por-que-la-visibilidad-ya-no-es-suficiente-hoy-en-dia\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Alcance no es propiedad - Por qu\u00e9 la visibilidad ya no es suficiente hoy en d\u00eda<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Alcance frente a propiedad\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/reichweite-vs-eigentum-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 75%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/es\/2025\/12\/el-alcance-no-es-propiedad-por-que-la-visibilidad-ya-no-es-suficiente-hoy-en-dia\/\" rel=\"bookmark\">Alcance no es propiedad - Por qu\u00e9 la visibilidad ya no es suficiente hoy en d\u00eda<\/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\/es\/2026\/01\/como-era-siria-antes-de-la-guerra-quien-gobierna-hoy-que-significa-esto-para-los-refugiados-en-alemania\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">\u00bfC\u00f3mo era Siria antes de la guerra? \u00bfQui\u00e9n gobierna hoy? \u00bfQu\u00e9 significa esto para los refugiados en Alemania?<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Siria y Damasco\" 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\/es\/2026\/01\/como-era-siria-antes-de-la-guerra-quien-gobierna-hoy-que-significa-esto-para-los-refugiados-en-alemania\/\" rel=\"bookmark\">\u00bfC\u00f3mo era Siria antes de la guerra? \u00bfQui\u00e9n gobierna hoy? \u00bfQu\u00e9 significa esto para los refugiados en Alemania?<\/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=\"die affinity grafik-suite wird kostenlos: was profi-anwender jetzt wissen m\u00fcssen\" data-id=\"3675\"  data-category=\"apple macos b\u00fccher kunst &amp; kultur tipps &amp; anleitungen\" data-post_tag=\"buch mac prozesse publishing verlag\">\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\/es\/2025\/11\/la-suite-grafica-affinity-pasa-a-ser-gratuita-lo-que-los-usuarios-profesionales-necesitan-saber-ahora\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">La suite gr\u00e1fica Affinity pasa a ser gratuita: Lo que los usuarios profesionales necesitan saber ahora<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Suite gr\u00e1fica Affinity gratuita\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/affinity-grafiksuite-kostenlos-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\/es\/2025\/11\/la-suite-grafica-affinity-pasa-a-ser-gratuita-lo-que-los-usuarios-profesionales-necesitan-saber-ahora\/\" rel=\"bookmark\">La suite gr\u00e1fica Affinity pasa a ser gratuita: Lo que los usuarios profesionales necesitan saber ahora<\/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 &#8211; 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\/es\/2026\/02\/johann-sebastian-bach-orden-actitud-y-fundamento-de-nuestra-musica\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Johann Sebastian Bach: orden, actitud y fundamento de nuestra m\u00fasica<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Retrato 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\/es\/2026\/02\/johann-sebastian-bach-orden-actitud-y-fundamento-de-nuestra-musica\/\" rel=\"bookmark\">Johann Sebastian Bach: orden, actitud y fundamento de nuestra m\u00fasica<\/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>En la primera parte de esta serie de art\u00edculos, vimos que la exportaci\u00f3n de datos de ChatGPT es mucho m\u00e1s que una funci\u00f3n t\u00e9cnica. Tus datos exportados contienen una colecci\u00f3n de pensamientos, ideas, an\u00e1lisis y conversaciones que se han acumulado durante un largo periodo de tiempo. Pero mientras estos datos s\u00f3lo se almacenen como un archivo en tu disco duro, siguen siendo s\u00f3lo eso: un ... <a title=\"Johann Sebastian Bach: orden, actitud y fundamento de nuestra m\u00fasica\" class=\"read-more\" href=\"https:\/\/www.markus-schall.de\/es\/2026\/02\/johann-sebastian-bach-orden-actitud-y-fundamento-de-nuestra-musica\/\" aria-label=\"Leer m\u00e1s sobre Johann Sebastian Bach - Orden, actitud y fundamento de nuestra m\u00fasica\">Vaciar m\u00e1s<\/a><\/p>","protected":false},"author":1,"featured_media":5300,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":200,"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\/es\/wp-json\/wp\/v2\/posts\/5306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/comments?post=5306"}],"version-history":[{"count":36,"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/posts\/5306\/revisions"}],"predecessor-version":[{"id":5753,"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/posts\/5306\/revisions\/5753"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/media\/5300"}],"wp:attachment":[{"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/media?parent=5306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/categories?post=5306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markus-schall.de\/es\/wp-json\/wp\/v2\/tags?post=5306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}