<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>RAG on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/rag/</link>
        <description>Recent content in RAG on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Tue, 12 May 2026 22:15:34 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/rag/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Términos de informática en lenguaje simple: qué significan TTS, STT, API, RAG y Agent</title>
        <link>https://www.knightli.com/es/2026/05/12/computer-terms-in-plain-language/</link>
        <pubDate>Tue, 12 May 2026 22:15:34 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/12/computer-terms-in-plain-language/</guid>
        <description>&lt;p&gt;En informática hay muchos términos que, al escucharlos por primera vez, parecen muy avanzados. Pero cuando se traducen a lenguaje simple, a menudo describen acciones cotidianas.&lt;/p&gt;
&lt;p&gt;Por ejemplo, cuando una IA puede hablar, se llama &lt;code&gt;TTS&lt;/code&gt;; cuando puede escucharte, se llama &lt;code&gt;STT&lt;/code&gt;. Suena como un sistema complejo, pero separado en partes es simplemente &amp;ldquo;leer texto en voz alta&amp;rdquo; y &amp;ldquo;transcribir voz a texto&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Enlace de referencia: &lt;a class=&#34;link&#34; href=&#34;https://www.zhihu.com/question/267978646/answer/2035405228460201515&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.zhihu.com/question/267978646/answer/2035405228460201515&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Este artículo recorre varios términos comunes desde ese ángulo: conservar los términos, pero explicarlos en palabras simples.&lt;/p&gt;
&lt;h2 id=&#34;tts-y-stt-convertir-entre-texto-y-voz&#34;&gt;TTS y STT: convertir entre texto y voz
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;TTS&lt;/code&gt; significa &lt;code&gt;Text-to-Speech&lt;/code&gt;, es decir, convertir texto en voz. Escribes un texto y el sistema lo convierte en audio reproducible. La navegación por voz, la lectura de libros electrónicos, los bots de atención al cliente y los asistentes de voz usan esta capacidad.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;STT&lt;/code&gt; significa &lt;code&gt;Speech-to-Text&lt;/code&gt;, es decir, convertir voz en texto. Cuando le hablas al móvil, el sistema primero reconoce la voz como texto y luego entrega ese texto al programa siguiente. Dictado por voz, transcripción de reuniones, subtítulos automáticos y altavoces inteligentes dependen de STT.&lt;/p&gt;
&lt;p&gt;Muchos productos de IA por voz funcionan así:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;STT&lt;/code&gt;: convierte lo que dijiste en texto.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LLM&lt;/code&gt;: genera una respuesta a partir del texto.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TTS&lt;/code&gt;: lee la respuesta en voz alta.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Por eso parece una conversación natural, aunque por debajo varios módulos se pasan el trabajo.&lt;/p&gt;
&lt;h2 id=&#34;ocr-copiar-texto-desde-imágenes&#34;&gt;OCR: copiar texto desde imágenes
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;OCR&lt;/code&gt; significa &lt;code&gt;Optical Character Recognition&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, consiste en sacar texto de una imagen. Fotografiar una factura, escanear una página de un libro o leer el nombre y número de un documento de identidad son tareas de OCR.&lt;/p&gt;
&lt;p&gt;Antes, OCR se parecía más a &amp;ldquo;adivinar la forma de los caracteres&amp;rdquo;. Hoy usa deep learning y tolera mejor fondos complejos, texto inclinado, escritura manual e imágenes borrosas. Pero la pregunta central sigue siendo directa: ¿qué texto hay en la imagen?&lt;/p&gt;
&lt;h2 id=&#34;nlp-y-llm-hacer-que-las-máquinas-procesen-lenguaje-humano&#34;&gt;NLP y LLM: hacer que las máquinas procesen lenguaje humano
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;NLP&lt;/code&gt; significa &lt;code&gt;Natural Language Processing&lt;/code&gt;. Trata con lenguaje humano: tokenización, traducción, resumen, análisis de sentimiento, preguntas y respuestas, clasificación.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LLM&lt;/code&gt; significa &lt;code&gt;Large Language Model&lt;/code&gt;. Puede entender y generar texto, así que hoy muchas tareas de NLP las realizan LLMs.&lt;/p&gt;
&lt;p&gt;Versión simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NLP&lt;/code&gt;: hacer que las máquinas procesen lo que las personas dicen y escriben.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LLM&lt;/code&gt;: un modelo de texto grande capaz de manejar muchas tareas de lenguaje.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando pides a una IA resumir un artículo, escribir un correo, mejorar un título o explicar código, estás en este campo general.&lt;/p&gt;
&lt;h2 id=&#34;api-y-sdk-una-es-una-interfaz-el-otro-es-un-kit&#34;&gt;API y SDK: una es una interfaz, el otro es un kit
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;API&lt;/code&gt; significa &lt;code&gt;Application Programming Interface&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, alguien abre una entrada para que puedas llamar una capacidad. Una API del clima recibe una ciudad y devuelve el tiempo; una API de pagos recibe un pedido y devuelve el resultado del pago.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SDK&lt;/code&gt; significa &lt;code&gt;Software Development Kit&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, el equipo oficial empaqueta código común, tipos, ejemplos y herramientas para que llames la API más fácilmente. Una API es como el mostrador de un restaurante; un SDK es como una app para pedir. Puedes hablar directamente con el mostrador o usar la app para hacerlo con menos fricción.&lt;/p&gt;
&lt;h2 id=&#34;crud-crear-leer-actualizar-y-borrar&#34;&gt;CRUD: crear, leer, actualizar y borrar
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CRUD&lt;/code&gt; significa &lt;code&gt;Create&lt;/code&gt;, &lt;code&gt;Read&lt;/code&gt;, &lt;code&gt;Update&lt;/code&gt;, &lt;code&gt;Delete&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple: añadir, ver, modificar y eliminar.&lt;/p&gt;
&lt;p&gt;Muchos sistemas administrativos, paneles de gestión y operaciones de base de datos giran alrededor de CRUD. Gestión de usuarios, artículos, pedidos o inventario parecen negocios distintos, pero por debajo suelen ser formularios más crear/leer/actualizar/borrar.&lt;/p&gt;
&lt;p&gt;Por eso los programadores dicen &amp;ldquo;otra vez CRUD&amp;rdquo;. No necesariamente lo dicen con desprecio; simplemente aparece en todas partes.&lt;/p&gt;
&lt;h2 id=&#34;cache-guardar-una-copia-para-no-recalcular-cada-vez&#34;&gt;Cache: guardar una copia para no recalcular cada vez
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Cache&lt;/code&gt; significa caché.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, dejar cerca lo que se usa con frecuencia para tomarlo directamente la próxima vez, sin buscarlo, calcularlo o pedirlo de nuevo.&lt;/p&gt;
&lt;p&gt;Una página web puede cachear imágenes y scripts; una consulta lenta puede guardar resultados populares en Redis; una inferencia cara de modelo puede cachear respuestas a preguntas repetidas.&lt;/p&gt;
&lt;p&gt;La parte difícil de la caché no es &amp;ldquo;guardar una copia&amp;rdquo;, sino &amp;ldquo;saber cuándo actualizarla&amp;rdquo;. Si los datos cambian y la caché no, aparece información antigua. Ese es el origen de muchos problemas de caché.&lt;/p&gt;
&lt;h2 id=&#34;queue-poner-tareas-en-fila-y-procesarlas-poco-a-poco&#34;&gt;Queue: poner tareas en fila y procesarlas poco a poco
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Queue&lt;/code&gt; significa cola.&lt;/p&gt;
&lt;p&gt;En lenguaje simple: hay demasiadas cosas por hacer, así que se ponen en fila y se procesan una por una.&lt;/p&gt;
&lt;p&gt;Por ejemplo, cuando un usuario sube un video, la transcodificación no siempre termina de inmediato. El sistema puede poner la tarea en una cola y dejar que un servicio en segundo plano la procese. Enviar SMS, correos, generar informes y manejar callbacks de pedidos también suele usar colas.&lt;/p&gt;
&lt;p&gt;Las colas evitan que todas las tareas lentas bloqueen la petición actual. El usuario recibe respuesta primero y el trabajo pesado ocurre después.&lt;/p&gt;
&lt;h2 id=&#34;index-una-tabla-de-contenidos-para-la-base-de-datos&#34;&gt;Index: una tabla de contenidos para la base de datos
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Index&lt;/code&gt; significa índice.&lt;/p&gt;
&lt;p&gt;Un índice de base de datos es como el índice de un libro. Sin índice, quizá tengas que leer desde la primera página hasta la última; con índice, llegas más rápido al contenido.&lt;/p&gt;
&lt;p&gt;Pero no siempre conviene tener más índices. Las consultas pueden ser más rápidas, pero las escrituras y actualizaciones pueden volverse más lentas, porque el índice también debe mantenerse cuando cambian los datos.&lt;/p&gt;
&lt;p&gt;Por eso en optimización de bases de datos se suele mirar primero el índice de una consulta lenta. Pero al crear uno hay que considerar condiciones de búsqueda, campos de orden, volumen de datos y frecuencia de escritura.&lt;/p&gt;
&lt;h2 id=&#34;rpc-rest-y-webhook-cómo-hablan-los-sistemas&#34;&gt;RPC, REST y Webhook: cómo hablan los sistemas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;RPC&lt;/code&gt; significa &lt;code&gt;Remote Procedure Call&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, es llamar una función que vive en otra máquina como si fuera una función local.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;REST&lt;/code&gt; es común en Web API. Usa URLs y métodos HTTP para expresar operaciones sobre recursos, por ejemplo &lt;code&gt;GET /users&lt;/code&gt; para consultar usuarios y &lt;code&gt;POST /orders&lt;/code&gt; para crear pedidos.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Webhook&lt;/code&gt; es una notificación en sentido contrario. En vez de preguntar todo el tiempo &amp;ldquo;¿ya está?&amp;rdquo;, el otro sistema llama tu URL cuando ocurre algo.&lt;/p&gt;
&lt;p&gt;Forma simple de recordarlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;RPC&lt;/code&gt;: llamar una función remota.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;REST&lt;/code&gt;: gestionar recursos con HTTP.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Webhook&lt;/code&gt;: recibir aviso cuando algo sucede.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cdn-y-load-balancing-acercar-contenido-y-repartir-carga&#34;&gt;CDN y Load Balancing: acercar contenido y repartir carga
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CDN&lt;/code&gt; significa &lt;code&gt;Content Delivery Network&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, colocar recursos estáticos en nodos más cercanos al usuario. Al acceder a imágenes, videos, CSS o JS, no siempre hace falta ir al servidor de origen.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Load Balancing&lt;/code&gt; significa balanceo de carga.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, si hay demasiado tráfico, no obligar a un solo servidor a cargar con todo; repartir las peticiones entre varias máquinas.&lt;/p&gt;
&lt;p&gt;Uno trata de estar más cerca del usuario; el otro evita agotar una máquina. Los sitios grandes suelen usar ambos.&lt;/p&gt;
&lt;h2 id=&#34;docker-container-y-kubernetes-empaquetar-ejecutar-y-orquestar&#34;&gt;Docker, Container y Kubernetes: empaquetar, ejecutar y orquestar
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Docker&lt;/code&gt; es una herramienta común de contenedores, y &lt;code&gt;Container&lt;/code&gt; significa contenedor.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, empaquetar el programa junto con el entorno que necesita para que pueda ejecutarse de forma similar en otra máquina. Así se reduce el problema de &amp;ldquo;en mi ordenador funciona, en el servidor no&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Kubernetes&lt;/code&gt;, a menudo escrito &lt;code&gt;K8s&lt;/code&gt;, es un sistema de orquestación de contenedores.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, cuando hay muchos contenedores, decide dónde corren, cómo reiniciarlos si fallan, cómo repartir tráfico y cómo actualizar versiones.&lt;/p&gt;
&lt;p&gt;Si solo tienes un servicio pequeño, Docker puede bastar. Si tienes muchos servicios, máquinas y réplicas, K8s empieza a tener más sentido.&lt;/p&gt;
&lt;h2 id=&#34;cicd-construir-y-desplegar-automáticamente&#34;&gt;CI/CD: construir y desplegar automáticamente
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CI&lt;/code&gt; significa &lt;code&gt;Continuous Integration&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, cuando se envía código, el sistema lo descarga, ejecuta pruebas y lo construye automáticamente para detectar problemas pronto.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;CD&lt;/code&gt; puede significar &lt;code&gt;Continuous Delivery&lt;/code&gt; o &lt;code&gt;Continuous Deployment&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, cuando la build pasa, el código se envía de forma más estable y automática a pruebas o producción.&lt;/p&gt;
&lt;p&gt;No resuelve &amp;ldquo;cómo escribir código&amp;rdquo;, sino &amp;ldquo;cómo publicar lo escrito con menos errores&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;serialization-empaquetar-objetos-en-un-formato-transmisible&#34;&gt;Serialization: empaquetar objetos en un formato transmisible
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Serialization&lt;/code&gt; significa serialización.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, convertir objetos del programa en un formato que se pueda guardar o transmitir, como JSON, XML o Protobuf.&lt;/p&gt;
&lt;p&gt;Lo contrario, &lt;code&gt;Deserialization&lt;/code&gt;, convierte esos formatos de vuelta en objetos que el programa puede usar.&lt;/p&gt;
&lt;p&gt;Cuando frontend y backend intercambian JSON, o dos servicios usan Protobuf, hay serialización de por medio.&lt;/p&gt;
&lt;h2 id=&#34;token-embedding-y-vector-db-convertir-texto-en-formas-que-el-modelo-puede-procesar&#34;&gt;Token, Embedding y Vector DB: convertir texto en formas que el modelo puede procesar
&lt;/h2&gt;&lt;p&gt;En modelos grandes, &lt;code&gt;Token&lt;/code&gt; suele ser la unidad básica en la que se divide el texto. No siempre equivale a un carácter chino o a una palabra inglesa; es más bien la granularidad interna con la que el modelo procesa texto.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Embedding&lt;/code&gt; significa vector de incrustación.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, convierte texto, imágenes u otros contenidos en una secuencia de números para que el modelo pueda comparar similitudes.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Vector DB&lt;/code&gt; significa base de datos vectorial.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, guarda esos vectores y permite encontrar rápido contenido con significado parecido.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si preguntas &amp;ldquo;cómo resetear el router&amp;rdquo;, el sistema puede buscar en la base vectorial contenidos como &amp;ldquo;restaurar configuración de fábrica&amp;rdquo;, &amp;ldquo;olvidé la contraseña Wi-Fi&amp;rdquo; o &amp;ldquo;fallo al entrar al panel&amp;rdquo;, y pasarlos al modelo como referencia.&lt;/p&gt;
&lt;h2 id=&#34;rag-buscar-primero-responder-después&#34;&gt;RAG: buscar primero, responder después
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;RAG&lt;/code&gt; significa &lt;code&gt;Retrieval-Augmented Generation&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, antes de responder, el modelo busca información relevante en una base de conocimiento y luego responde usando esos materiales.&lt;/p&gt;
&lt;p&gt;Esto reduce el problema de que los modelos grandes inventen cosas desde la memoria. Al conectar documentos internos, bases de conocimiento, manuales de producto o fragmentos de código, el modelo puede usar materiales actuales proporcionados por ti.&lt;/p&gt;
&lt;p&gt;Un flujo típico es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El usuario hace una pregunta.&lt;/li&gt;
&lt;li&gt;El sistema convierte la pregunta en un &lt;code&gt;Embedding&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Busca documentos relacionados en una &lt;code&gt;Vector DB&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Envía fragmentos de documentos y la pregunta a un &lt;code&gt;LLM&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;El modelo genera la respuesta.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Así que RAG suena avanzado, pero en esencia es: primero consulta materiales, luego organiza la respuesta.&lt;/p&gt;
&lt;h2 id=&#34;agent-un-flujo-automatizado-que-descompone-tareas&#34;&gt;Agent: un flujo automatizado que descompone tareas
&lt;/h2&gt;&lt;p&gt;En el contexto de IA, &lt;code&gt;Agent&lt;/code&gt; suele traducirse como agente inteligente.&lt;/p&gt;
&lt;p&gt;En lenguaje simple, no solo responde una frase; puede dividir un objetivo en pasos, llamar herramientas, observar resultados y decidir la siguiente acción.&lt;/p&gt;
&lt;p&gt;Por ejemplo, si le pides &amp;ldquo;analiza por qué fallan las pruebas en este repositorio&amp;rdquo;, un modelo de chat común quizá solo dé consejos. Un Agent puede leer archivos, ejecutar pruebas, revisar errores, modificar código y volver a ejecutar pruebas.&lt;/p&gt;
&lt;p&gt;Por supuesto, Agent no significa fiabilidad garantizada. Es básicamente &amp;ldquo;modelo + llamadas a herramientas + bucle de estado&amp;rdquo;. Que funcione bien depende de permisos, límites de la tarea, manejo de errores y confirmación humana.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Muchos términos informáticos parecen avanzados porque vienen envueltos en siglas, diagramas de arquitectura y marketing de producto. Al desmontarlos, muchos describen acciones muy simples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;TTS&lt;/code&gt;: leer texto en voz alta.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;STT&lt;/code&gt;: transcribir voz.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;OCR&lt;/code&gt;: copiar texto desde imágenes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;API&lt;/code&gt;: abrir una entrada de llamada.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SDK&lt;/code&gt;: empaquetar herramientas de llamada.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CRUD&lt;/code&gt;: crear, leer, actualizar y borrar.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Cache&lt;/code&gt;: guardar una copia de resultados comunes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Queue&lt;/code&gt;: poner tareas en fila para procesarlas después.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Index&lt;/code&gt;: poner una tabla de contenidos a los datos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CDN&lt;/code&gt;: acercar contenido al usuario.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Load Balancing&lt;/code&gt;: repartir peticiones.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Docker&lt;/code&gt;: empaquetar el entorno de ejecución.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CI/CD&lt;/code&gt;: automatizar pruebas y despliegue.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Embedding&lt;/code&gt;: convertir contenido en vectores numéricos.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RAG&lt;/code&gt;: buscar primero, responder después.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Agent&lt;/code&gt;: dejar que el modelo use herramientas paso a paso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Conviene conservar los términos porque ayudan a buscar, comunicarse y leer documentación. Pero no hace falta dejarse intimidar. Primero tradúcelos a lenguaje simple; luego vuelve a los detalles técnicos. Muchos conceptos se vuelven mucho más claros.&lt;/p&gt;
&lt;h2 id=&#34;referencia&#34;&gt;Referencia
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Respuesta de Zhihu: &lt;a class=&#34;link&#34; href=&#34;https://www.zhihu.com/question/267978646/answer/2035405228460201515&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.zhihu.com/question/267978646/answer/2035405228460201515&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Gemini Embedding 2: texto, imagen, video y audio en un mismo espacio vectorial</title>
        <link>https://www.knightli.com/es/2026/05/04/gemini-embedding-2-multimodal-rag/</link>
        <pubDate>Mon, 04 May 2026 06:01:10 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/05/04/gemini-embedding-2-multimodal-rag/</guid>
        <description>&lt;p&gt;Google Developers Blog presento el uso de Gemini Embedding 2 para desarrollo. El modelo ya esta en GA a traves de Gemini API y Gemini Enterprise Agent Platform. Lo importante no es solo que sea &amp;ldquo;un nuevo modelo de embedding&amp;rdquo;, sino que puede mapear texto, imagenes, video, audio y documentos al mismo espacio semantico.&lt;/p&gt;
&lt;p&gt;Esto amplia los limites de los sistemas de recuperacion. Antes, muchos flujos RAG necesitaban convertir imagenes, videos o audio en texto o metadatos y crear indices separados. Gemini Embedding 2 puede procesar directamente entradas multimodales, haciendo que agents, busqueda y sistemas de clasificacion trabajen mas facilmente con materiales reales de negocio.&lt;/p&gt;
&lt;p&gt;Enlace original: &lt;a class=&#34;link&#34; href=&#34;https://developers.googleblog.com/building-with-gemini-embedding-2/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Building with Gemini Embedding 2: Agentic multimodal RAG and beyond&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;capacidades-del-modelo&#34;&gt;Capacidades del modelo
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 admite mas de 100 idiomas. Una sola solicitud puede procesar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hasta 8,192 tokens de texto.&lt;/li&gt;
&lt;li&gt;Hasta 6 imagenes.&lt;/li&gt;
&lt;li&gt;Hasta 120 segundos de video.&lt;/li&gt;
&lt;li&gt;Hasta 180 segundos de audio.&lt;/li&gt;
&lt;li&gt;Hasta 6 paginas PDF.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La clave es el &amp;ldquo;espacio semantico unificado&amp;rdquo;. Los desarrolladores pueden poner contenidos de distintas modalidades en una misma representacion vectorial y aplicar la misma logica de recuperacion, clustering o reranking.&lt;/p&gt;
&lt;p&gt;Por ejemplo, una descripcion de texto y una imagen pueden ir en la misma solicitud de embedding:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;19
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;google.genai&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;types&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;genai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;dog.png&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;rb&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;as&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;image_bytes&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embed_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;gemini-embedding-2&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s2&#34;&gt;&amp;#34;An image of a dog&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;types&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Part&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;from_bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;image_bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;n&#34;&gt;mime_type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;image/png&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si quieres obtener un embedding separado para cada entrada, en vez de agregarlas en un unico vector, puedes usar Batch API. El articulo tambien menciona que Agent Platform sigue avanzando en este soporte por lotes.&lt;/p&gt;
&lt;h2 id=&#34;que-significa-para-rag&#34;&gt;Que significa para RAG
&lt;/h2&gt;&lt;p&gt;El embedding multimodal es muy util para RAG agentico. Un AI agent puede necesitar revisar al mismo tiempo repositorios de codigo, PDF, capturas, graficos, transcripciones de reuniones y fotos de producto. Si todos los materiales entran en el mismo espacio semantico, la recuperacion no necesita una entrada distinta para cada formato.&lt;/p&gt;
&lt;p&gt;Google recomienda usar task prefix segun la tarea para acercar el embedding al objetivo de recuperacion. Por ejemplo, preguntas y respuestas, fact checking, recuperacion de codigo y resultados de busqueda pueden usar prefijos distintos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for your task&amp;#39;s query:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;task: question answering | query: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: fact checking | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: code retrieval | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#34;task: search result | query: {content}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for document of an asymmetric retrieval task:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;title&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;title: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; | text: &lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este prefijo encaja con recuperacion asimetrica: las consultas suelen ser cortas y los documentos largos. Preparar query y document con formatos de tarea distintos puede mejorar el emparejamiento entre consulta corta y documento largo.&lt;/p&gt;
&lt;p&gt;El articulo da dos resultados reales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Harvey mejoro un 3% el Recall@20 precision frente a la generacion anterior de embedding en benchmarks legales.&lt;/li&gt;
&lt;li&gt;Supermemory mejoro un 40% el Recall@1 en precision de busqueda y lo usa en memoria, indexacion, busqueda y Q&amp;amp;A.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos numeros no significan que todos los escenarios mejoren igual, pero muestran que el embedding multimodal ya no es solo una demostracion, sino que produce efecto en productos reales de busqueda.&lt;/p&gt;
&lt;h2 id=&#34;busqueda-visual&#34;&gt;Busqueda visual
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 tambien encaja con busqueda por imagen, busqueda mixta imagen-texto e identificacion de productos. El articulo menciona que Nuuly, una empresa de alquiler de ropa, lo uso para emparejar fotos de ropa sin etiquetar en almacen: Match@20 subio de 60% a casi 87%, y el exito total de identificacion paso de 74% a mas de 90%.&lt;/p&gt;
&lt;p&gt;La clave de estos escenarios no es generar contenido, sino entender &amp;ldquo;a que inventario, documento o registro de producto se parece mas esta imagen&amp;rdquo;. Si tu negocio tiene muchas imagenes, clips de video o documentos escaneados, el embedding multimodal es mas natural que un indice puramente textual.&lt;/p&gt;
&lt;h2 id=&#34;reranking-de-recuperacion&#34;&gt;Reranking de recuperacion
&lt;/h2&gt;&lt;p&gt;El embedding tambien puede usarse para rerank. Una practica comun es recuperar primero un grupo de candidatos y luego calcular la similitud entre cada candidato y la consulta del usuario, subiendo los resultados mas relevantes:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 1. Define a function to calculate the dot product (cosine similarity)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;dot_product&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ndarray&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ndarray&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;@&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;array&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 2. Retrieve your embeddings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# (Assuming &amp;#39;summaries&amp;#39; is your list of search results)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;search_res&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;summaries&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;embedded_query&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_embeddings&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 3. Calculate similarity scores&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;sim_value&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dot_product&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;search_res&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;embedded_query&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 4. Select the most relevant result&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;best_match_index&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;np&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argmax&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sim_value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El articulo tambien menciona otra idea: pedir primero al modelo que genere una respuesta hipotetica con su conocimiento interno, hacer embedding de esa respuesta y compararla con los candidatos. Esto ayuda a elegir resultados semanticamente mas cercanos, especialmente en RAG de preguntas y respuestas.&lt;/p&gt;
&lt;h2 id=&#34;clustering-clasificacion-y-deteccion-de-anomalias&#34;&gt;Clustering, clasificacion y deteccion de anomalias
&lt;/h2&gt;&lt;p&gt;Ademas de recuperacion, los embeddings sirven para clustering, clasificacion y deteccion de anomalias. A diferencia de la recuperacion de preguntas y respuestas, estas son tareas simetricas: query y document pueden usar el mismo prefijo de tarea.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Generate embedding for query &amp;amp; document of your task.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;prepare_query_and_document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: clustering | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: sentence similarity | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# return f&amp;#39;task: classification | query: {content}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Estas tareas pueden aplicarse a clasificacion de opinion publica, moderacion de contenido, agrupacion de activos similares y deteccion de muestras anomalas. Tambien pueden ayudar a un agent a ordenar mucho contexto antes de entrar en razonamiento posterior.&lt;/p&gt;
&lt;h2 id=&#34;almacenamiento-y-coste&#34;&gt;Almacenamiento y coste
&lt;/h2&gt;&lt;p&gt;Gemini Embedding 2 devuelve por defecto vectores de 3,072 dimensiones. Usa Matryoshka Representation Learning, por lo que puedes truncar el vector a una dimension menor con &lt;code&gt;output_dimensionality&lt;/code&gt;. Google recomienda 1,536 o 768 dimensiones cuando la eficiencia es prioritaria:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;result&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;embed_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;model&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gemini-embedding-2&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;What is the meaning of life?&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;output_dimensionality&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;768&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los vectores pueden almacenarse en Agent Platform Vector Search, Pinecone, Weaviate, Qdrant, ChromaDB y sistemas similares. En coste, el articulo menciona que Batch API ofrece mayor throughput y puede llegar al 50% del precio por defecto de embeddings.&lt;/p&gt;
&lt;h2 id=&#34;como-usarlo-como-desarrollador&#34;&gt;Como usarlo como desarrollador
&lt;/h2&gt;&lt;p&gt;Si ya tienes RAG textual, puedes empezar con dos mejoras incrementales:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Poner PDF, capturas, descripciones de imagen y documentos de texto en un mismo indice, y comprobar si la recuperacion se vuelve mas estable.&lt;/li&gt;
&lt;li&gt;Agregar task prefix para distintas tareas, como Q&amp;amp;A, fact checking, recuperacion de codigo y busqueda de productos. No proceses todo con el mismo formato de embedding.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si estas creando un producto nuevo, considera primero estas direcciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Base de conocimiento empresarial: recuperar documentos, graficos, capturas de presentaciones y material de reuniones al mismo tiempo.&lt;/li&gt;
&lt;li&gt;Busqueda visual: encontrar productos, activos, disenos y archivos usando imagen, texto o entradas mixtas.&lt;/li&gt;
&lt;li&gt;Toolchain de Agent: permitir que coding agents, research agents o agentes de soporte recuperen materiales de negocio en varios formatos.&lt;/li&gt;
&lt;li&gt;Gobernanza de contenido: clasificar, agrupar y detectar anomalias en texto, imagenes y clips de video.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El valor de Gemini Embedding 2 esta en convertir materiales multimodales en un mismo conjunto de activos recuperables. Para desarrolladores, reduce la capa intermedia de &amp;ldquo;convertir primero a texto y luego buscar&amp;rdquo;, y acerca los sistemas RAG a la forma real de los datos del mundo.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
