{"id":35009,"date":"2023-08-30T10:00:56","date_gmt":"2023-08-30T08:00:56","guid":{"rendered":"https:\/\/www.hiberus.com\/crecemos-contigo\/?p=35009"},"modified":"2023-11-28T09:11:25","modified_gmt":"2023-11-28T08:11:25","slug":"ask-your-own-data-generando-respuestas-sobre-datos-privados-en-entornos-seguros","status":"publish","type":"post","link":"https:\/\/www.hiberus.com\/crecemos-contigo\/ask-your-own-data-generando-respuestas-sobre-datos-privados-en-entornos-seguros\/","title":{"rendered":"Ask your own data: generando respuestas sobre datos privados en entornos seguros"},"content":{"rendered":"<p>Actualmente, la <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/ia-generativa-que-es-y-cuales-son-sus-usos\/\" target=\"_blank\" rel=\"noopener\">IA generativa<\/a> est\u00e1 impresionando al mundo entero con su capacidad para crear im\u00e1genes, c\u00f3digos y di\u00e1logos realistas. Sin duda, <strong>ChatGPT<\/strong>, usado por millones de personas actualmente, ha supuesto un gran avance en este campo. Sin embargo, aunque es muy potente en lo que respecta al conocimiento general, s\u00f3lo conoce la informaci\u00f3n con la que fue entrenada, es decir, los datos que encontramos disponibles en Internet hasta 2021. As\u00ed pues,<strong> no conoce tus datos privados ni las fuentes de datos m\u00e1s recientes<\/strong>.<\/p>\n<p>En el mismo contexto, los <strong>Large Language Models (LLMs)<\/strong> son excelentes para muchas cosas (si no est\u00e1s familiarizado con los LLM, no te preocupes, puedes ver <a href=\"https:\/\/www.youtube.com\/watch?v=hfIUstzHs9A\" target=\"_blank\" rel=\"noopener\">este incre\u00edble v\u00eddeo<\/a> de Kate Soule de IBM). No obstante, como dec\u00edamos antes, no est\u00e1n especialmente entrenados para recuperar informaci\u00f3n actual o privada. Por lo tanto, para mejorarlos en ese aspecto, primero debemos proporcionarles informaci\u00f3n recuperada mediante la <strong>b\u00fasqueda de documentos similares<\/strong> (similarity search). Esto los hace m\u00e1s conscientes y les da una mayor capacidad para proporcionar al modelo informaci\u00f3n actualizada, sin necesidad de volver a entrenar a estos modelos masivos. Esto es precisamente lo que es un LLM mejorado por recuperaci\u00f3n. De hecho, este post esbozar\u00e1 con precisi\u00f3n la creaci\u00f3n de un modelo de este tipo y dilucidar\u00e1 los pasos a seguir en cuanto a su optimizaci\u00f3n.<\/p>\n<p>Por lo tanto, el presente post trata el tema de c\u00f3mo <strong>a\u00f1adir datos privados a los LLMs<\/strong>, y de c\u00f3mo crear un sistema de Retrieval-Augmented Generation (RAG) que utiliza el conocimiento de ChatGPT sobre un corpus de datos espec\u00edfico, actual o privado mediante herramientas de ingenier\u00eda de pron\u00f3stico como <strong>LangChain y LlamaIndex <\/strong>para generar respuestas sobre datos privados. No te pierdas nada; tenemos una BONIFICACI\u00d3N muy chula para ti al final.<\/p>\n<h2>\u00bfQu\u00e9 es LlamaIndex?<\/h2>\n<p>LlamaIndex simplifica las aplicaciones basadas en LLMs. Los LLMs, como <strong>GPT-4, Falcon y LLaMa2<\/strong>, llegan preentrenados en vastos conjuntos de datos p\u00fablicos, lo que desbloquea las impresionantes capacidades de procesamiento del lenguaje natural. Sin embargo, como es obvio, carecen de datos privados espec\u00edficos.<\/p>\n<p>Con LlamaIndex, sin embargo, podemos incorporar sin problemas datos de <strong>API, bases de datos, archivos PDF y mucho m\u00e1s<\/strong> mediante conectores adaptables. Estos datos se optimizan para los LLMs mediante representaciones intermedias. Esto permite realizar, sin esfuerzo, consultas e interacciones en lenguaje natural a trav\u00e9s de motores de consulta, interfaces de chat y agentes de datos potenciados por los LLM. As\u00ed, el LLM puede acceder a una gran cantidad de datos privados y comprenderlos sin necesidad de reentrenar el modelo para obtener nueva informaci\u00f3n.<\/p>\n<p>LlamaIndex ofrece un completo conjunto de herramientas para aplicaciones basadas en lenguaje. Adem\u00e1s, se pueden aprovechar los cargadores de datos y las herramientas de agente <strong>Llama Hub<\/strong>, que permiten crear aplicaciones complejas con diversas funcionalidades.<\/p>\n<h2>\u00bfQu\u00e9 es LangChain?<\/h2>\n<p>LangChain es un marco para desarrollar aplicaciones basadas en modelos ling\u00fc\u00edsticos. Permite aplicaciones que son:<\/p>\n<ul>\n<li><strong>Conscientes sobre los datos<\/strong>: conectan un modelo ling\u00fc\u00edstico a otras fuentes de datos.<\/li>\n<li><strong>Agentic<\/strong>: permiten a un modelo ling\u00fc\u00edstico interactuar con su entorno.<\/li>\n<\/ul>\n<p>Estas son algunas de las principales ventajas de LangChain:<\/p>\n<ol>\n<li><strong>Componentes<\/strong>: herramientas abstractas para trabajar con modelos ling\u00fc\u00edsticos, junto con una colecci\u00f3n de implementaciones para cada herramienta. Estos componentes modulares son f\u00e1ciles de usar y pueden emplearse independientemente del marco LangChain.<\/li>\n<\/ol>\n<ol start=\"2\">\n<li><strong><em>Off-the-shelf chains<\/em><\/strong>: un conjunto estructurado de componentes para realizar tareas espec\u00edficas de nivel superior.<\/li>\n<\/ol>\n<p>La disponibilidad de <strong><em>chains<\/em> <\/strong>predise\u00f1adas facilita la iniciaci\u00f3n. Para aplicaciones complejas y escenarios matizados, los componentes permiten personalizar sin esfuerzo las <em><strong>chains<\/strong> <\/em>existentes o crear otras nuevas.<\/p>\n<p>En este tutorial, utilizaremos LangChain \u00fanicamente para inicializar nuestros modelos LLM y embedder procedentes de Azure OpenAI.<\/p>\n<h2>\u00bfC\u00f3mo funciona RAG?<\/h2>\n<p><span class=\"ui-provider fy b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\"><strong>RAG<\/strong> consiste en integrar la potencia de la recuperaci\u00f3n (o b\u00fasqueda) en un <strong>LLM base<\/strong>. En general, consta de un<strong> recuperador<\/strong>, que obtiene fragmentos de documentos relevantes de un gran corpus de informaci\u00f3n externa, y un <strong>LLM<\/strong>, que produce respuestas a partir de esos fragmentos, como se ilustra en el siguiente diagrama:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-35112 size-full\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/rag-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1480\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/rag-scaled.jpg 2560w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/rag-300x173.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/rag-1024x592.jpg 1024w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/rag-768x444.jpg 768w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/rag-1536x888.jpg 1536w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/rag-2048x1184.jpg 2048w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/rag-360x208.jpg 360w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/p>\n<h3>Instala las librer\u00edas necesarias<\/h3>\n<p>Antes de conducir, hay que ponerse el cintur\u00f3n de seguridad; del mismo modo aqu\u00ed, antes de hacer nada, aseg\u00farate de tener instalado el paquete OpenAI y tambi\u00e9n LlamaIndex, LangChain y PyPDF. Necesitas instalar <strong>PyPDF<\/strong> para habilitar las funciones integradas de <strong>LlamaIndex<\/strong> para leer y convertir archivos <strong>PDF<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35074 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_3.png\" alt=\"\" width=\"602\" height=\"78\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_3.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_3-300x39.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_3-360x47.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<h3><\/h3>\n<h3>Importaciones<\/h3>\n<p>En el siguiente fragmento de c\u00f3digo, importamos el paquete <strong>openai<\/strong> junto con las clases y funciones incorporadas de los paquetes <strong>LlamaIndex<\/strong> y <strong>LangChain<\/strong>. Adem\u00e1s, importamos el paquete <strong>os<\/strong> para definir algunas <em>environment variables <\/em>que configuraremos m\u00e1s adelante.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35075 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_4.png\" alt=\"\" width=\"602\" height=\"294\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_4.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_4-300x147.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_4-360x176.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Utilizaremos <strong>Azure OpenAI Studio<\/strong>, para lo cual necesitamos acceder a la <strong>API de OpenAI<\/strong>. Empecemos por configurar los <strong><em>entornos de las variables <\/em><\/strong>para configurar el acceso a la API OpenAI alojada en Azure. Esto implica incluir la <strong>clave API, versi\u00f3n, tipo y URL base<\/strong> que son esenciales para que el script de Python se comunique efectivamente con la API.<\/p>\n<p>Cabe destacar que la API OpenAI del sitio web puede integrarse de forma similar, requiriendo la configuraci\u00f3n de una \u00fanica variable de entorno, <strong>OPENAI_API_KEY<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35076 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_5.png\" alt=\"\" width=\"602\" height=\"80\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_5.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_5-300x40.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_5-360x48.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<h3><\/h3>\n<h3>Service Context<\/h3>\n<p>En la siguiente funci\u00f3n, despu\u00e9s de establecer varios par\u00e1metros de restricci\u00f3n, incluyendo max_input_size y num_outputs, para tratar eficazmente con las <strong>limitaciones de token de<\/strong> <strong>ventana de contexto<\/strong> del LLM definimos un prompt helper, <strong>PromptHelper<\/strong>. Este ayudante calcula el tama\u00f1o de contexto disponible partiendo del tama\u00f1o de la ventana de contexto del\u00a0LLM y reservando espacio para la plantilla de aviso y la salida.<\/p>\n<p>El prompt helper proporciona una utilidad para reempaquetar trozos de texto (recuperados del \u00edndice) para aprovechar al m\u00e1ximo la ventana de contexto disponible (y reducir as\u00ed el n\u00famero de llamadas LLM necesarias), o truncarlos para que quepan en una sola llamada LLM. De hecho, puedes sentirte libre de ajustar las opciones de configuraci\u00f3n para alinearlas con tus necesidades.<\/p>\n<p>Adem\u00e1s, utilizamos la clase <strong>AzureChatOpenAI<\/strong> para crear nuestro modelo de chat basado en\u00a0<strong>GPT-3.5 Turbo<\/strong>. En particular, <strong>chatgpt_model<\/strong> sirve como nombre de implementaci\u00f3n para GPT-3.5 Turbo en Azure OpenAI Studio. Asimismo, utilizamos la clase <strong>OpenAIEmbeddings<\/strong> para construir nuestro incrustador, aprovechando el potente modelo de incrustaci\u00f3n de OpenAI <strong>text- embedding-ada-002<\/strong>.<\/p>\n<p>Por \u00faltimo, construimos <strong>ServiceContext<\/strong>, que agrupa los recursos m\u00e1s utilizados durante las fases de indexaci\u00f3n y consulta de un proceso LlamaIndex. Lo empleamos para configurar tanto la configuraci\u00f3n <strong>global<\/strong> como la <strong>local.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-35111 size-full\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/service-context.png\" alt=\"\" width=\"600\" height=\"617\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/service-context.png 600w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/service-context-292x300.png 292w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/service-context-360x370.png 360w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><\/h3>\n<h3>Carga de datos<\/h3>\n<p>Como nos encanta conectar la investigaci\u00f3n con la producci\u00f3n, utilizaremos el art\u00edculo Chinchilla de Jordan Hoffmann et al. de DeepMind como nuestros datos privados y haremos algunas preguntas interesantes sobre sus principales conclusiones. Al hablar del art\u00edculo sobre\u00a0Chinchilla, nos viene a la mente el modelo de par\u00e1metros <strong>Chinchilla-70B<\/strong> entrenado como modelo \u00f3ptimo de c\u00e1lculo con <strong>1,4 billones de fichas<\/strong>. Las conclusiones del art\u00edculo sugieren que este tipo de modelos se entrenan de forma \u00f3ptima <strong>escalando de manera equitativa tanto el tama\u00f1o del modelo como los tokens de entrenamiento<\/strong>. Utiliza el mismo presupuesto de c\u00e1lculo que Gopher pero con <strong>4 veces m\u00e1s datos de entrenamiento<\/strong>.<\/p>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35078 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_7.png\" alt=\"\" width=\"602\" height=\"51\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_7.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_7-300x25.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_7-360x30.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/h3>\n<h3><\/h3>\n<h3>Data ingestion<\/h3>\n<p>En la etapa de <strong>ingesti\u00f3n de datos<\/strong>, empezamos creando un directorio llamado <strong>data<\/strong> que contiene s\u00f3lo un archivo <strong>PDF<\/strong>, el archivo PDF del papel Chinchilla. Luego usamos el <strong>SimpleDirectoryReader<\/strong> para leerlo y, posteriormente, convertirlo en un \u00edndice usando el <strong>GPTVectorStoreIndex<\/strong>.<\/p>\n<p>De hecho, para indexar nuestros documentos incrustados, utilizamos LlamaIndex <strong>GPTVectorStoreIndex<\/strong>, que crea <strong>vectores num\u00e9ricos<\/strong> a partir del texto utilizando <strong>palabras incrustadas<\/strong> y recupera los documentos relevantes bas\u00e1ndose en la <strong>similitud de los vectores <\/strong>cuando indexamos los documentos.<\/p>\n<p>La recreaci\u00f3n del \u00edndice es un proceso que <strong>consume mucho tiempo<\/strong>, pero puede evitarse guardando el contexto. El siguiente comando guarda el \u00edndice en el directorio por defecto <strong>.\/storage**.<\/strong><\/p>\n<h3><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35079 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_8.png\" alt=\"\" width=\"602\" height=\"200\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_8.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_8-300x100.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_8-360x120.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/h3>\n<h3><\/h3>\n<h3>Ejecutar una consulta<\/h3>\n<p><strong>Para la configuraci\u00f3n global <\/strong>podemos establecer un contexto de servicio como el \u00ab<strong>por defecto global\u00bb<\/strong> que se aplica a toda la tuber\u00eda de LlamaIndex.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35080 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_9.png\" alt=\"\" width=\"602\" height=\"65\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_9.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_9-300x32.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_9-360x39.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Nuestro enfoque consiste en formular una pregunta general sobre el documento y obtener una respuesta utilizando v<strong>query_engine.query<\/strong>. Adem\u00e1s, formulamos una serie de preguntas de seguimiento relacionadas utilizando <strong>query_engine.chat<\/strong> sin proporcionar contexto adicional. En las pr\u00f3ximas secciones nos explayaremos sobre estas dos opciones. Ahora vamos a iniciar nuestro index. Por favor, aseg\u00farate de que has movido el papel de chinchilla a la carpeta <strong>data<\/strong> antes de ejecutar el siguiente fragmento:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35081 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_10.png\" alt=\"\" width=\"602\" height=\"52\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_10.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_10-300x26.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_10-360x31.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h4>Q&amp;A<\/h4>\n<p>Una vez que nuestros datos privados han sido indexados, podemos empezar a hacer preguntas utilizando <strong>as_query_engine()<\/strong>. Esta funci\u00f3n permite hacer preguntas sobre informaci\u00f3n espec\u00edfica dentro del documento y recibir la respuesta correspondiente con la ayuda del modelo <strong>GPT-3.5 Turbo<\/strong> de OpenAI.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35082 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_11.png\" alt=\"\" width=\"602\" height=\"53\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_11.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_11-300x26.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_11-360x32.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35083 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_12.png\" alt=\"\" width=\"602\" height=\"93\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_12.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_12-300x46.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_12-360x56.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35084 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_13.png\" alt=\"\" width=\"602\" height=\"114\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_13.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_13-300x57.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_13-360x68.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u00a1Genial! Como puede verse, el modelo LLM <strong>ha respondido con precisi\u00f3n a la consulta<\/strong>. Busc\u00f3 en el \u00edndice y encontr\u00f3 la informaci\u00f3n relevante, luego la escribi\u00f3 de una manera similar a la humana. Un punto adicional a destacar es que hemos utilizado\u00a0<strong>display_response()<\/strong> para mostrar la respuesta en un formato HTML bien estructurado.<\/p>\n<p>Otro aspecto desafortunado de ChatGPT es que, cuando le planteamos las mismas preguntas, parece desconocer la actualidad mundial. A continuaci\u00f3n encontrar\u00e1s su divertida respuesta:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35085 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_14.png\" alt=\"\" width=\"602\" height=\"309\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_14.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_14-300x154.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_14-360x185.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35086 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_15.png\" alt=\"\" width=\"602\" height=\"76\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_15.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_15-300x38.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_15-360x45.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>El modelo sabe a qu\u00e9 palabra se refiere <strong>it<\/strong> y no es capaz de responder. Sin embargo, esto ocurrir\u00e1 con frecuencia en el contexto de las preguntas de seguimiento. Abordaremos esta cuesti\u00f3n en la pr\u00f3xima secci\u00f3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35087 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_16.png\" alt=\"\" width=\"602\" height=\"118\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_16.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_16-300x59.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_16-360x71.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>Incluso puede comprobar el <strong>archivo de referencia y la p\u00e1gina<\/strong> de la respuesta como se muestra aqu\u00ed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35090 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_17.png\" alt=\"\" width=\"602\" height=\"101\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_17.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_17-300x50.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_17-360x60.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<h4><\/h4>\n<h4><a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/que-es-un-chatbot\/\" target=\"_blank\" rel=\"noopener\">Chatbot<\/a><\/h4>\n<p>En lugar de Q&amp;A, tambi\u00e9n podemos utilizar LlamaIndex para crear un <strong>Chatbot<\/strong> personal que soporte <strong>follow up<\/strong> de preguntas <strong>sin dar contexto adicional<\/strong>. S\u00f3lo tenemos que inicializar el \u00edndice con la funci\u00f3n <strong>as_chat_engine().<\/strong><\/p>\n<p data-wp-editing=\"1\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35091 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_18.png\" alt=\"\" width=\"602\" height=\"51\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_18.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_18-300x25.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_18-360x30.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35092 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_19.png\" alt=\"\" width=\"602\" height=\"114\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_19.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_19-300x57.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_19-360x68.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<h2><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35093 size-full aligncenter\" style=\"color: #333333; font-family: Rubik; font-size: 17px; font-weight: 400;\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_20.png\" alt=\"\" width=\"602\" height=\"73\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_20.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_20-300x36.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_20-360x44.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/h2>\n<h2><\/h2>\n<h2>Bonus<\/h2>\n<p>Como fan de \ud83e\udd17 Hugging Face y su ecosistema, no puedo concluir este blog sin hablar de \u00e9l de alguna manera. De hecho, nuestro bono consiste en crear una interfaz sencilla utilizando Gradio de \ud83e\udd17 para chatear con nuestro sistema. Para ello, implementamos una funci\u00f3n que reconstruye el contexto de almacenamiento, carga el \u00edndice y lo consulta con un texto de entrada.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35094 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_21.png\" alt=\"\" width=\"602\" height=\"214\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_21.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_21-300x107.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_21-360x128.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35095 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_22.png\" alt=\"\" width=\"602\" height=\"92\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_22.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_22-300x46.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_22-360x55.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-35096 size-full aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_23.png\" alt=\"\" width=\"602\" height=\"321\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_23.png 602w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_23-300x160.png 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/08\/pic_23-360x192.png 360w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>El c\u00f3digo completo est\u00e1 disponible en este repositorio de <strong>GitHub<\/strong>.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Nuestra aventura ha llegado a su fin, pero aqu\u00ed van algunas conclusiones. En este tutorial, hemos visto que <strong>LangChain<\/strong> y <strong>LlamaIndex<\/strong> proporcionan potentes conjuntos de herramientas\u00a0para construir aplicaciones inteligentes basadas en la <strong>RAG<\/strong> que combinan las fortalezas de los grandes modelos ling\u00fc\u00edsticos con bases de conocimiento personalizadas. Permiten crear un\u00a0almac\u00e9n indexado de datos espec\u00edficos del dominio y aprovecharlo durante la inferencia para proporcionar un contexto relevante al LLM con el fin de generar respuestas de alta calidad en un lenguaje similar al humano. Sin embargo, estamos seguros de que s\u00f3lo hemos cubierto algunos aspectos b\u00e1sicos, pero veremos m\u00e1s cosas interesantes sobre RAG en el futuro. \u00a1Estad atentos!<\/p>\n<p>En <a href=\"https:\/\/www.hiberus.com\/\" target=\"_blank\" rel=\"noopener\">Hiberus Tecnolog\u00eda<\/a> creemos que la IA se va a convertir en una herramienta imprescindible en todos los campos y sectores en un futuro pr\u00f3ximo. Por eso hemos creado la <a href=\"https:\/\/www.hiberus.com\/data-ia\/behind-the-ai\">newsletter Behind the AI<\/a> en la que te contamos todas las novedades y hechos relevantes que debes conocer para no perderte nada sobre Inteligencia Artificial.<\/p>\n<p><a href=\"https:\/\/www.hiberus.com\/data-ia\/behind-the-ai\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-32439 size-full\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/06\/banner-horizontal.jpg\" alt=\"behind the AI\" width=\"1920\" height=\"654\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/06\/banner-horizontal.jpg 1920w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/06\/banner-horizontal-300x102.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/06\/banner-horizontal-1024x349.jpg 1024w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/06\/banner-horizontal-768x262.jpg 768w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/06\/banner-horizontal-1536x523.jpg 1536w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2023\/06\/banner-horizontal-360x123.jpg 360w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/a><\/p>\n<p>\u00bfQuieres aprovechar el poder de la IA Generativa para impulsar tu negocio? Contamos con un equipo de <a href=\"https:\/\/www.hiberus.com\/data-ia\/ia\"><strong>expertos en IA Generativa y Data<\/strong><\/a> que han desarrollado <strong>GenIA Ecosystem<\/strong>, un ecosistema de soluciones propias de IA conversacional, generaci\u00f3n de contenido y data adaptadas a las necesidades de cada mercado y cliente. Contacta con nosotros y estaremos encantados de ayudarte.<\/p>\n        <div class=\"row\">\n            <div class=\"block-cta-form\" style=\"background-color: #003664;\">\n                <div class=\"content-cta-form\">\n                    <div class=\"text-cta-form\">\n                        <p class=\"title-cta-form\">\u00bfQuieres m\u00e1s informaci\u00f3n sobre nuestros servicios de IA Generativa?<\/p>\n                        <p>Contacta con nuestro equipo de expertos en IA Generativa<\/p>\n                    <\/div>\n                    <div class=\"form-fields\">\n                        \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f33973-o1\" lang=\"es-ES\" dir=\"ltr\" data-wpcf7-id=\"33973\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/35009#wpcf7-f33973-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Formulario de contacto\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"33973\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"es_ES\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f33973-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<div id=\"responsive-form\" class=\"clearfix\">\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"nombre\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Nombre *\" value=\"\" type=\"text\" name=\"nombre\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"apellido\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Apellido *\" value=\"\" type=\"text\" name=\"apellido\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"correo\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Correo corporativo *\" value=\"\" type=\"email\" name=\"correo\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"telf-contacto\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Tel\u00e9fono *\" value=\"\" type=\"tel\" name=\"telf-contacto\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"compania\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Compa\u00f1ia *\" value=\"\" type=\"text\" name=\"compania\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"mensaje\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Mensaje *\" name=\"mensaje\"><\/textarea><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"politica\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"politica\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">He le\u00eddo y acepto la <a href=\"https:\/\/www.hiberus.com\/politica\" target=\"_blank\"><u>Pol\u00edtica de privacidad<\/u><\/a><\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"marketing\"><span class=\"wpcf7-form-control wpcf7-acceptance optional\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"marketing\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">Me gustar\u00eda recibir comunicaciones de marketing de Hiberus y sobre sus productos, servicios y eventos.<\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Contacta con nosotros\" \/>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div id=\"campos_ocultos\" class=\"hidden\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new1\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new1\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new1\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new2\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new2\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new2\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new3\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new3\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new3\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new4\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new4\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new4\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new_p\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new_p\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new_p\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<!--end responsive-form--><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n","protected":false},"excerpt":{"rendered":"<p>Actualmente, la IA generativa est\u00e1 impresionando al mundo entero con su capacidad para crear im\u00e1genes, c\u00f3digos y di\u00e1logos realistas. Sin duda, ChatGPT,&#8230;<\/p>\n","protected":false},"author":321,"featured_media":35022,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_ayudawp_aiss_exclude":false,"footnotes":""},"categories":[236,137,7],"tags":[198,156],"class_list":{"0":"post-35009","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-data-ia","8":"category-destacados","9":"category-next-tech","10":"tag-data","11":"tag-inteligencia-artificial"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/35009","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/users\/321"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/comments?post=35009"}],"version-history":[{"count":18,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/35009\/revisions"}],"predecessor-version":[{"id":35208,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/35009\/revisions\/35208"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media\/35022"}],"wp:attachment":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media?parent=35009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/categories?post=35009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/tags?post=35009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}