Ir al contenido principal

Tutorial de la herramienta de búsqueda de archivos de Google: Crear aplicaciones RAG con la API Gemini

Aprende a crear una aplicación RAG con Google File Search y Gemini API. Guía paso a paso con código, fragmentación, filtrado de metadatos y citas.
Actualizado 25 nov 2025  · 14 min de lectura

En este tutorial, te guiaré a través del proceso de creación de un asistente de documentación médica con Google File Search. Verás cómo configurarlo, implementar consultas y utilizar funciones avanzadas como el fragmentado personalizado y el filtrado de metadatos. Al final, comprenderás cuándo tiene sentido utilizar RAG gestionado en lugar de crear tu propia pila.

¿Qué es la herramienta de búsqueda de archivos de Google?

Crear aplicaciones RAG suele implicar trabajar con bases de datos vectoriales, procesos de incrustación y mucha infraestructura. La herramienta de búsqueda de archivos de Google, lanzada en noviembre de 2025, elimina esta complejidad con un servicio totalmente gestionado. RAG integrado directamente en API.

La herramienta se encarga de las partes complejas por ti: dividir documentos en fragmentos, generar incrustaciones y gestionar la búsqueda semántica sin necesidad de herramientas externas como Pinecone o ChromaDB. El flujo de trabajo es sencillo: carga los archivos, crea una tienda y comienza a realizar consultas. También obtienes citas integradas que te permiten verificar de dónde provienen las respuestas.

Entender RAG y por qué Google lo simplifica

Gemini File Search se promociona como un sistema RAG gestionado. Comprender RAG te ayuda a utilizar bien la herramienta y a decidir cuándo se adapta a tu caso de uso.

En esencia, la generación aumentada por recuperación (RAG) conecta los modelos lingüísticos con el conocimiento externo. Antes de generar una respuesta, el modelo recupera información relevante de tus documentos, basando las respuestas en tus datos reales en lugar de depender únicamente de los datos de entrenamiento.

El reto DIY RAG

Aunque el concepto de RAG parece sencillo, crear un canal RAG implica gestionar varios componentes:

  • Bases de datos vectoriales: Configurar y mantener servicios como Pinecone, ChromaDBo Weaviate para almacenar incrustaciones.
  • Incorporación de tuberías: Convertir documentos en vectores numéricos y gestionar las actualizaciones cuando cambia el contenido.
  • Estrategias de fragmentación: Divide los documentos en fragmentos que equilibren el contexto y la precisión de la recuperación.
  • Infrastructure: Supervisa el rendimiento, ajusta los parámetros y gestiona el escalado a medida que tus datos crecen.

Cada componente requiere conocimientos especializados y un mantenimiento continuo. Tanto si estás creando un sistema de producción que requiere fiabilidad como un prototipo que necesita velocidad, la sobrecarga de la infraestructura sigue siendo el mismo cuello de botella.

Por qué es importante la gestión de RAG

Los servicios gestionados como Google File Search eliminan este cuello de botella. En lugar de ajustar los sistemas de recuperación, escribes consultas. En lugar de depurar los procesos de integración, validar los resultados. La infraestructura funciona en segundo plano mientras tú te centras en la lógica de la aplicación.

Gemini File Search se encarga de la complejidad técnica mientras tú controlas lo que realmente importa: qué documentos indexar, cómo consultarlos y cómo utilizar los resultados. Este equilibrio funciona bien cuando necesitas calidad de producción sin gastos operativos adicionales. Para obtener más información sobre los conceptos básicos de RAG, te recomiendo que consultes el tutorial de DataCamp sobre RAG agente.

Un sencillo diagrama de flujo de trabajo que muestra las dos fases de Google File Search: (1) Indexación: carga de documentos (PDF, DOCX o TXT) en un almacén de File Search, donde se dividen automáticamente y se convierten en incrustaciones; (2) Consulta: la consulta del usuario se compara con fragmentos de documentos relevantes, que el modelo Gemini utiliza para escribir una respuesta con citas. Marca claramente «Indexar una vez» para la primera fase (azul) y «Consultar repetidamente» para la segunda (verde). Utiliza iconos para los documentos, el almacén, la búsqueda y el modelo Gemini, y flechas para mostrar el flujo desde la carga hasta la generación de la respuesta.

La mejor manera de entender Google File Search es utilizándolo. En la siguiente sección, crearás un asistente de documentación médica completo que muestra todo el flujo de trabajo, desde la carga de documentos hasta las respuestas fundamentadas con citas.

Creación de un asistente de documentación médica con Google File Search

Descargo de responsabilidad: Este tutorial muestra las capacidades de búsqueda de archivos utilizando etiquetas de medicamentos de la FDA con fines exclusivamente educativos. El asistente que crearás no está destinado al uso clínico, a la toma de decisiones sobre la atención al paciente ni al diagnóstico médico. Consulta siempre a profesionales sanitarios cualificados para obtener asesoramiento médico. Los sistemas de IA pueden generar información incorrecta incluso cuando se basan en documentos originales.

En esta sección se explica cómo crear un asistente de documentación médica completo utilizando la búsqueda de archivos. Trabajarás con las etiquetas de medicamentos de la FDA para tres medicamentos comunes, creando un sistema que responda a preguntas sobre interacciones entre medicamentos, efectos secundarios y contraindicaciones. El asistente proporciona respuestas verificables citando pasajes específicos de los documentos originales.

La búsqueda de archivos funciona en dos fases: primero se indexan los documentos y, a continuación, se realizan consultas repetidas. Primero configurarás la infraestructura de indexación y, a continuación, te centrarás por completo en formular preguntas e interpretar respuestas fundamentadas.

Paso 1: Instala la API y configura la autenticación.

Necesitas Python 3.9 o posterior. Instala el SDK de IA generativa de Google y las dependencias:

pip install google-genai python-dotenv

Obtén tu clave API en Google AI Studio. Guárdalo en un archivo .env en el directorio de tu proyecto:

GOOGLE_API_KEY=your_api_key_here

Configura tus importaciones e inicializa el cliente:

from google import genai
from google.genai import types
import time
from dotenv import load_dotenv

load_dotenv()
client = genai.Client()

genai.Client() gestiona la autenticación automáticamente utilizando tu variable de entorno. Utilizarás este objeto cliente para todas las operaciones de búsqueda de archivos.

Paso 2: Crear una tienda de búsqueda de archivos

Crea un almacén para guardar tus documentos indexados:

file_search_store = client.file_search_stores.create(
    config={"display_name": "fda-drug-labels"}
)
print(f"Created store: {file_search_store.name}")

Una tienda de búsqueda de archivos actúa como un contenedor para tus documentos indexados. A diferencia de las subidas de archivos temporales, que caducan tras 48 horas, las tiendas persisten indefinidamente. Esto significa que puedes indexar documentos una sola vez y consultarlos miles de veces sin necesidad de volver a cargarlos ni procesarlos.

El identificador único de cliente ( file_search_store.name ) contiene un identificador único al que harás referencia cuando realices consultas. Parece fileSearchStores/fdadruglabels-abc123. Guarda este valor si necesitas consultar la tienda desde una sesión diferente.

Paso 3: Subir e indexar documentos PDF

Para este tutorial, trabajarás con tres etiquetas de medicamentos aprobados por la FDA. Descarga estos archivos PDF del sitio web de la FDA:

Guárdalos en el directorio de tu proyecto y, a continuación, súbelos a tu tienda de búsqueda de archivos:

pdf_files = ["metformin.pdf", "atorvastatin.pdf", "lisinopril.pdf"]

for pdf_file in pdf_files:
    operation = client.file_search_stores.upload_to_file_search_store(
        file=pdf_file,
        file_search_store_name=file_search_store.name,
        config={"display_name": pdf_file.replace(".pdf", "")},
    )

    # Wait for indexing to complete
    while not operation.done:
        time.sleep(3)
        operation = client.operations.get(operation)

    print(f"{pdf_file} indexed")

Durante la carga, File Search divide cada PDF en fragmentos y convierte los segmentos en incrustaciones utilizando el modelo gemini-embedding-001. Estasincrustaciones e es son representaciones numéricas que capturan el significado semántico, lo que permite al sistema encontrar pasajes relevantes incluso cuando tu pregunta no coincide con la redacción exacta del documento.

El patrón de sondeo (while not operation.done) gestiona la naturaleza asíncrona de la indexación. Los documentos grandes tardan más en procesarse, por lo que la API responde de inmediato y tú compruebas el estado de finalización periódicamente. Para los sistemas de producción, considera añadir una lógica de tiempo de espera para evitar bucles infinitos.

Cada fragmento conserva los metadatos que lo vinculan con su documento de origen y su posición. Estos metadatos cobran importancia cuando accedes a las citas posteriormente.

Paso 4: Consulta de información de un solo documento

Ahora consulta tus documentos indexados:

query1 = "What are the contraindications for metformin?"

response1 = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=query1,
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[file_search_store.name]
                )
            )
        ]
    ),
)

print(response1.text)

Esto imprime la respuesta generada:

Metformin is contraindicated in several conditions:

* Severe renal impairment (eGFR below 30 mL/min/1.73 m2)
* Acute or chronic metabolic acidosis
* Hypersensitivity to metformin

La búsqueda de archivos recupera los fragmentos más similares semánticamente en tus documentos y los proporciona como contexto a gemini-2.5-flash, que genera la respuesta. La configuración del arreglo ` tools ` indica al modelo que utilice la búsqueda de archivos durante la generación. Puedes combinar la búsqueda de archivos con otras herramientas, como la ejecución de código o la búsqueda en Google, en la misma solicitud.

Paso 5: Accede a citas y metadatos de referencia.

Extracto de los documentos en los que se basa la respuesta:

print("Sources used:")
for i, chunk in enumerate(response1.candidates[0].grounding_metadata.grounding_chunks, 1):
    source_name = chunk.retrieved_context.title
    print(f"  [{i}] {source_name}")

Salida:

Sources used:
  [1] metformin
  [2] atorvastatin

Cada fragmento de los metadatos de referencia incluye el título del documento fuente y el pasaje específico del texto en el que se basa la respuesta. Esto crea una ruta de verificación desde la respuesta generada hasta tus documentos originales, lo cual es necesario para aplicaciones médicas, legales o financieras en las que la precisión es importante.

El arreglo grounding_chunks contiene todos los pasajes recuperados, ordenados por relevancia. Aunque la consulta se refiere específicamente a la metformina, la búsqueda de archivos también ha recuperado contenido del documento sobre la atorvastatina, probablemente porque contiene información relacionada con las contraindicaciones. Esto demuestra el enfoque de recuperación semántica: el sistema encuentra contenido relacionado conceptualmente, no solo coincidencias de palabras clave.

Paso 6: Consulta en varios documentos

Prueba una pregunta sobre interacción farmacológica con varios documentos:

query2 = "Can a patient take both atorvastatin and metformin together? Are there any drug interactions?"

response2 = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=query2,
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[file_search_store.name]
                )
            )
        ]
    ),
)

print(response2.text)

El mismo patrón API ahora extrae información de múltiples documentos y la sintetiza. Accede a los fragmentos de texto recuperados:

print("Sources used:")

for i, chunk in enumerate(response2.candidates[0].grounding_metadata.grounding_chunks, 1):
    source_name = chunk.retrieved_context.title
    source_text = chunk.retrieved_context.text[:100] + "..."
    print(f"  [{i}] {source_name}")
    print(f"      {source_text}")

La salida muestra extractos de las etiquetas de ambos medicamentos:

Sources used:
  [1] atorvastatin
      Concomitant use with diabetes medications is generally safe but monitor glucose levels...
  [2] metformin
      Carbonic anhydrase inhibitors may increase the risk of lactic acidosis...

La búsqueda de archivos recupera secciones relevantes de ambos documentos y el modelo las sintetiza en una respuesta coherente. El atributo retrieved_context.text te proporciona el fragmento exacto utilizado, lo que te permite verificar que el modelo no ha alucinado información.

Paso 7: Realizar comparaciones entre documentos

Haz una pregunta analítica que requiera comparar los tres documentos:

query3 = "Which medications have muscle-related side effects?"

response3 = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=query3,
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[file_search_store.name]
                )
            )
        ]
    ),
)

print(response3.text)

# Check which documents were consulted
metadata = response3.candidates[0].grounding_metadata
for i, chunk in enumerate(metadata.grounding_chunks, 1):
    print(f"  [{i}] {chunk.retrieved_context.title}")

El resultado identifica que la atorvastatina tiene efectos secundarios relacionados con los músculos (mialgia, miopatía, rabdomiólisis) y confirma que los demás medicamentos no incluyen dichos efectos. Los metadatos de referencia muestran que File Search consultó los tres documentos para responder a la pregunta comparativa.

Ahora has creado un asistente de documentación médica que funciona. El flujo de trabajo principal sigue siendo el mismo: configura la herramienta de búsqueda de archivos en tu llamada a generate_content(), obtén el texto de respuesta y accede a los metadatos básicos para su verificación. La tienda permanece en los servidores de Google, por lo que puedes consultarla en futuras sesiones sin necesidad de volver a indexarla.

A continuación, explorarás funciones avanzadas como configuraciones personalizadas de fragmentación y filtrado de metadatos que te permiten controlar con mayor precisión el comportamiento de la recuperación.

Funciones avanzadas y personalización de la herramienta de búsqueda de archivos de Google

El flujo de trabajo básico de búsqueda de archivos cubre la mayoría de los casos de uso, pero los sistemas de producción a menudo necesitan un control más preciso sobre el comportamiento de recuperación. En esta sección se muestra cómo personalizar estrategias de fragmentación, filtrar documentos con metadatos, optimizar el rendimiento y gestionar varios almacenes para diferentes casos de uso.

Configuración personalizada de fragmentación

La búsqueda de archivos divide automáticamente los documentos en fragmentos durante la indexación. De forma predeterminada, utiliza una estrategia de fragmentación optimizada para documentos generales, pero puedes personalizar este comportamiento cuando tipos de documentos específicos requieran un tratamiento diferente.

Considera el ejemplo del asistente médico. Las etiquetas de los medicamentos contienen información técnica densa en tablas y párrafos breves. Los fragmentos más pequeños te permiten recuperar información precisa, como dosis específicas o contraindicaciones, sin incluir contexto irrelevante. Los fragmentos más largos funcionan mejor para las secciones narrativas que requieren más contexto para entenderlas correctamente.

Configura los parámetros de fragmentación al cargar documentos:

operation = client.file_search_stores.upload_to_file_search_store(
    file="metformin.pdf",
    file_search_store_name=file_search_store.name,
    config={
        "display_name": "metformin",
        "chunking_config": {
            "white_space_config": {
                "max_tokens_per_chunk": 200,
                "max_overlap_tokens": 20
            }
        }
    }
)

El parámetro « chunking_config » controla cómo File Search divide tus documentos. El parámetro max_tokens_per_chunk establece el tamaño máximo de cada fragmento, mientras que max_overlap_tokens determina cuánto contenido se superpone entre fragmentos consecutivos. Este solapamiento garantiza que la información que abarca los límites de los fragmentos no se pierda durante la recuperación.

La compensación es importante: los fragmentos más cortos permiten una recuperación más precisa, pero pueden perder contexto, mientras que los fragmentos más largos conservan más significado, pero pueden incluir información irrelevante. 

Para documentación técnica con límites de sección claros, utiliza fragmentos más pequeños (150-250 tokens). En documentos narrativos, como trabajos de investigación o informes, los fragmentos más largos (400-600 tokens) preservan el flujo argumental y el contexto. La documentación oficial de File Search proporciona orientación adicional sobre cómo elegir los tamaños de fragmentos para diferentes tipos de documentos.

Filtrado de metadatos

Cuando tu tienda contiene docenas o cientos de documentos, el filtrado de metadatos reduce el alcance de la recuperación antes de que se ejecute la búsqueda semántica. Esto mejora la precisión y reduce el tiempo de procesamiento.

Añade metadatos durante la carga del documento para poder filtrarlo posteriormente:

operation = client.file_search_stores.upload_to_file_search_store(
    file="metformin.pdf",
    file_search_store_name=file_search_store.name,
    config={
        "display_name": "metformin",
        "custom_metadata": [
            {"key": "category", "string_value": "diabetes"},
            {"key": "year", "numeric_value": 2017},
            {"key": "drug_class", "string_value": "biguanide"}
        ]
    }
)

El parámetro custom_metadata acepta un arreglo de pares clave-valor. Utiliza string_value para metadatos de texto como categorías o clases de medicamentos, y numeric_value para años, versiones u otros datos numéricos.

Consulta con filtros de metadatos para buscar solo documentos relevantes:

query = "What are the common side effects?"

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=query,
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[file_search_store.name],
                    metadata_filter="category=diabetes"
                )
            )
        ]
    )
)

El parámetro metadata_filter restringe la recuperación a los documentos que coinciden con los criterios especificados. En este ejemplo, la búsqueda de archivos solo tiene en cuenta los documentos con category=diabetes, ignorando los medicamentos para la presión arterial y el colesterol, aunque existan en la misma tienda.

Esto resulta fundamental cuando los almacenes contienen documentos heterogéneos. Una base de conocimientos médicos puede incluir etiquetas de medicamentos, artículos de investigación y directrices clínicas. El filtrado por tipo de documento garantiza que obtengas información sobre la dosis a partir de las etiquetas, y no de resúmenes de investigaciones.

Puedes combinar el filtrado de metadatos con la capacidad de búsqueda semántica completa. El filtro se ejecuta primero para seleccionar los documentos candidatos y, a continuación, la búsqueda semántica encuentra los pasajes más relevantes dentro de esos documentos.

Optimización del rendimiento

El rendimiento de la búsqueda de archivos depende del tamaño del almacén, la complejidad de la consulta y la elección del modelo. Seguir estas pautas permite que la recuperación sea rápida y los costes sean razonables.

Límites de tamaño de la tienda: Mantén cada almacén por debajo de los 20 GB para obtener una latencia de recuperación óptima. La búsqueda de archivos almacena incrustaciones junto con tus documentos, y las incrustaciones requieren aproximadamente tres veces el tamaño de tus archivos originales. Una colección de archivos PDF de 7 GB genera aproximadamente 21 GB de datos almacenados una vez indexados, lo que supera el límite recomendado.

Cuando te acerques a este límite, crea almacenes separados organizados por categoría, período de tiempo o patrón de acceso. En el caso del asistente médico, puedes crear almacenes separados para las diferentes categorías de medicamentos, en lugar de indexar todos los medicamentos disponibles en un único almacén.

Estructura de costes: File Search cobra 0,15 dólares por cada millón de tokens indexados. Una vez indexado, puedes ejecutar miles de consultas sin costes de indexación adicionales. Este modelo de precios favorece las cargas de trabajo con un uso intensivo de lectura, en las que se consultan los mismos documentos repetidamente.

Selección del modelo: Utiliza gemini-2.5-flash para la mayoría de las consultas. Procesa las solicitudes en 1-2 segundos y cuesta mucho menos que gemini-2.5-pro. Reserva gemini-2.5-pro para consultas que requieran un razonamiento profundo en múltiples fuentes o que impliquen tareas de síntesis extremadamente complejas. La diferencia de coste entre los modelos es más importante que los costes de indexación para aplicaciones de gran volumen.

Controla el tamaño del almacén a medida que añades documentos. Puedes comprobarlo a través de la API, aunque el cálculo del tamaño se realiza en el backend de Google y es posible que no se refleje inmediatamente después de las cargas. Para obtener las especificaciones técnicas completas y los límites, consulta la documentación de la API de archivos de Gemini.

Gestión de varias tiendas

Cada proyecto de la nube de Google admite hasta 10 almacenes de búsqueda de archivos. Las tiendas múltiples te permiten separar los documentos por control de acceso, requisitos de rendimiento u organización lógica.

Crea tiendas especializadas para diferentes casos de uso:

# Create separate stores for different document categories
diabetes_store = client.file_search_stores.create(
    config={"display_name": "diabetes-medications"}
)

cardio_store = client.file_search_stores.create(
    config={"display_name": "cardiovascular-medications"}
)

Consultar varias tiendas en una sola solicitud:

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="What medications treat both diabetes and heart disease?",
    config=types.GenerateContentConfig(
        tools=[
            types.Tool(
                file_search=types.FileSearch(
                    file_search_store_names=[
                        diabetes_store.name,
                        cardio_store.name
                    ]
                )
            )
        ]
    )
)

La búsqueda de archivos recupera información de todos los almacenes especificados y sintetiza los resultados. Los metadatos de referencia identifican de qué tienda procede cada cita, lo que garantiza una trazabilidad completa. 

Los almacenes persisten indefinidamente y deben eliminarse manualmente cuando ya no son necesarios, lo que los hace adecuados para aplicaciones de producción en las que los documentos pueden consultarse en todas las sesiones e implementaciones.

A continuación, verás cómo se compara File Search con otras soluciones RAG y cuándo elegir enfoques gestionados frente a enfoques DIY.

Herramienta de búsqueda de archivos de Google frente a otras herramientas de búsqueda de archivos y RAG

La búsqueda de archivos no es tu única opción para crear aplicaciones RAG. Comprender cómo se compara con otras alternativas te ayuda a elegir la herramienta adecuada. Comparemos el enfoque de Google con la oferta de OpenAI y las versiones personalizadas tradicionales.

Característica

Búsqueda de archivos de Google

Búsqueda de archivos OpenAI

RAG personalizado (LangChain)

Modelo de precios

0,15 $/M tokens (solo índice)

0,10/GB de almacenamiento diario

Costes de infraestructura y desarrollo

Control de fragmentación

Automatizado con configuración básica

Configurable (800 tokens por defecto, 400 de solapamiento)

Control total sobre la estrategia

Tipo de búsqueda

Semántico (solo vector)

Híbrido (vector + palabra clave)

Cualquier método que implementes

Formatos de archivo

Más de 150 tipos (PDF, DOCX, código, etc.)

6 types (TXT, MD, HTML, DOCX, PPTX, PDF)

Depende de los analizadores sintácticos utilizados.

Tiempo de configuración

Actas

Actas

Días o semanas

Citas

Integrado con metadatos de conexión a tierra

Integrado

Debes implementarlo tú mismo.

Ideal para

Alto volumen de consultas, rápida implementación

Consultas con muchas palabras clave, control moderado

Requisitos complejos, personalización total

Búsqueda de archivos de Google frente a búsqueda de archivos de OpenAI

Ambas empresas ofrecen RAG alojado, pero siguen caminos diferentes en cuanto a precios y capacidades.

Precios: Google te cobra una vez durante la indexación (2,50 $ por cada mil consultas más 0,10 $ por GB diario por almacenamiento). Si realizas muchas consultas pero rara vez actualizas documentos, el modelo de Google te permite ahorrar dinero. Si estás reindexando constantemente, las matemáticas se vuelven interesantes.

Control de configuración: Google simplifica las cosas con fragmentación automatizada y configuración limitada. OpenAI te ofrece más control. Puedes configurar el tamaño del fragmento (800 tokens por defecto) y la superposición (400 tokens). OpenAI también utiliza una búsqueda híbrida que combina la coincidencia de vectores y palabras clave, mientras que Google se basa exclusivamente en la búsqueda semántica. Esto es importante cuando tus consultas contienen términos técnicos específicos o códigos de productos.

Formatos de archivo: Google admite más de 150 tipos de archivos, incluidos archivos de código y diversos formatos de documentos. OpenAI admite seis: TXT, MD, HTML, DOCX, PPTX y PDF. Ninguno de los dos maneja bien los datos estructurados como CSV o JSONL. Ahí es donde destacan las construcciones personalizadas.

Integración: Google se integra con los modelos Gemini y los servicios de Google Cloud. OpenAI se conecta a tu familia de modelos y a Azure. Ambos te proporcionan citas y seguimiento de fuentes.

La verdadera división se reduce a simplicidad frente a control. Google lo integra todo en una sola llamada a la API. OpenAI te permite ajustar la recuperación a costa de una mayor complejidad. Aquí no hay un único ganador. Depende de si deseas rapidez o personalización para tu proyecto.

Funciones personalizadas de RAG

Crear tu propio sistema RAG con herramientas como LangChain te permite acceder a funciones que los servicios alojados no ofrecen. DataCamp's RAG con LangChain de DataCamp explica este enfoque con detalle.

Las construcciones personalizadas permiten técnicas avanzadas:

  • División semántica que detecta cuándo cambian los temas en lugar de cortar a longitudes fijas.
  • Fragmentación sensible a tokens que respeta con precisión las ventanas de contexto del modelo
  • Recuperación híbrida mezcla de búsqueda por palabras clave BM25 con vectores densos
  • Las transformaciones de consultas como HyDE que generan respuestas hipotéticas para mejorar la búsqueda
  • RAG gráfico que representa documentos como redes de entidades y relaciones

Tutorial de DataCamp sobre cómo mejorar el rendimiento de RAG explora estas técnicas con ejemplos que muestran mejoras cuantificables en la calidad. La contrapartida es la complejidad operativa: estás supervisando el rendimiento de la base de datos, ajustando los modelos de integración y gestionando las actualizaciones en múltiples servicios.

Cuándo utilizar cada enfoque

Elige herramientas alojadas como File Search cuando:

  • Creación de prototipos o pruebas de concepto en los que la velocidad es importante
  • Tu caso de uso se ajusta a los patrones estándar (preguntas y respuestas sobre documentos, bases de conocimiento, búsqueda de documentación).
  • Tu equipo carece de una profunda experiencia en RAG.
  • Quieres costes predecibles y gastos generales operativos mínimos.

Crea personalizados cuando:

  • Necesitas métodos avanzados de fragmentación o recuperación especializada.
  • Trabajar con datos estructurados o formatos de archivo poco habituales
  • Construcción RAG que combinan múltiples estrategias
  • La optimización de los costes a gran escala justifica la inversión en ingeniería.
  • El cumplimiento normativo requiere infraestructuras o modelos específicos.

La mayoría de los proyectos comienzan con soluciones alojadas y solo se pasan a versiones personalizadas cuando los requisitos lo exigen. Las técnicas de RAG personalizado (fragmentación inteligente, búsqueda híbrida, optimización de consultas) siguen influyendo en la forma en que utilizas las herramientas alojadas. Comprender el panorama completo te ayuda a tomar mejores decisiones a medida que tus necesidades evolucionan.

Conclusión

Has creado un sistema RAG completo utilizando la herramienta Google File Search Tool, desde la indexación de etiquetas de medicamentos de la FDA hasta la realización de consultas con citas. El asistente médico muestra cómo los servicios gestionados se encargan de la infraestructura mientras tú te centras en la lógica de la aplicación.

La búsqueda de archivos funciona bien cuando necesitas un RAG fiable sin tener que gestionar bases de datos vectoriales ni integrar procesos. El almacenamiento gratuito y las incrustaciones de consultas hacen que los costes sean predecibles. Los almacenes persistentes eliminan la sobrecarga de reindexación, lo que te permite escalar las consultas sin escalar el mantenimiento de la infraestructura.

Antes de implementar en producción, añade las medidas de seguridad críticas que el tutorial ha omitido por motivos de brevedad. Implementa el manejo de errores con tiempos de espera para las operaciones de carga y bloques try-catch alrededor de las llamadas a la API. Ten en cuenta las implicaciones en materia de privacidad de los datos cuando subas documentos a los servidores de Google, especialmente si se trata de contenido confidencial. Añadir una validación para verificar que existen metadatos de referencia antes de acceder a las citas. Realiza pruebas exhaustivas con expertos en la materia para detectar los casos en los que el modelo genera respuestas plausibles pero incorrectas a pesar de estar bien fundamentadas.

Para los siguientes pasos, intenta ampliar tu asistente con el filtrado de metadatos para organizar los documentos por categorías. Experimenta con diferentes tamaños de fragmentos para adaptarlos a tus tipos de documentos. Las técnicas que has aprendido aquí se pueden aplicar tanto si estás creando bots de asistencia, como si estás desarrollando bots de búsqueda de documentación o asistentes de conocimiento.

Preguntas frecuentes

¿Es necesario volver a indexar cuando cambia un documento?

Sí. Para actualizar o sustituir un archivo, es necesario volver a subirlo para que las incrustaciones reflejen el nuevo contenido.

¿Puedo controlar el acceso a documentos específicos?

Aún no a un nivel detallado. Puedes utilizar filtros de metadatos para limitar los documentos que se consultan, pero actualmente no se admiten permisos a nivel de usuario.

¿Cuáles son los límites de tamaño de los archivos y del almacenamiento?

Los archivos individuales pueden tener un tamaño máximo de unos 100 MB, y los niveles de almacenamiento alcanzan aproximadamente 1 TB. Mantener los almacenes por debajo de los 20 GB suele garantizar una recuperación más rápida.

¿Qué fiabilidad tienen las citas?

La búsqueda de archivos adjunta metadatos básicos que muestran qué fragmentos del documento han servido para dar una respuesta. Estas citas mejoran la transparencia, pero aún así deben revisarse para garantizar su exactitud.

¿La búsqueda de archivos utiliza palabras clave o recuperación vectorial?

Se basa en la búsqueda semántica (basada en vectores). Si necesitas una coincidencia exacta de palabras clave, necesitarás una configuración de recuperación personalizada o híbrida.


Bex Tuychiev's photo
Author
Bex Tuychiev
LinkedIn

Soy un creador de contenidos de ciencia de datos con más de 2 años de experiencia y uno de los mayores seguidores en Medium. Me gusta escribir artículos detallados sobre IA y ML con un estilo un poco sarcastıc, porque hay que hacer algo para que sean un poco menos aburridos. He publicado más de 130 artículos y un curso DataCamp, y estoy preparando otro. Mi contenido ha sido visto por más de 5 millones de ojos, 20.000 de los cuales se convirtieron en seguidores tanto en Medium como en LinkedIn. 

Temas

Los mejores cursos de DataCamp

Curso

Retrieval Augmented Generation (RAG) with LangChain

3 h
11.9K
Learn cutting-edge methods for integrating external data with LLMs using Retrieval Augmented Generation (RAG) with LangChain.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

10 maneras de utilizar ChatGPT para las finanzas

Descubre cómo los modelos lingüísticos de IA como ChatGPT pueden revolucionar tus operaciones financieras, desde la generación de informes hasta la traducción de jerga financiera.
Matt Crabtree's photo

Matt Crabtree

13 min

Tutorial

RAG Con Llama 3.1 8B, Ollama y Langchain: Tutorial

Aprende a crear una aplicación RAG con Llama 3.1 8B utilizando Ollama y Langchain, configurando el entorno, procesando documentos, creando incrustaciones e integrando un recuperador.
Ryan Ong's photo

Ryan Ong

Tutorial

RankGPT como Agente de Re-Ranking para RAG (Tutorial)

RankGPT es un método que utiliza LLMs como ChatGPT para reordenar los documentos recuperados en sistemas RAG, mejorando la calidad del resultado al priorizar la información más relevante.
Ryan Ong's photo

Ryan Ong

Tutorial

Tutorial de DeepSeek-Coder-V2: Ejemplos, instalación, puntos de referencia

DeepSeek-Coder-V2 es un modelo de lenguaje de código de código abierto que rivaliza con el rendimiento de GPT-4, Gemini 1.5 Pro, Claude 3 Opus, Llama 3 70B o Codestral.
Dimitri Didmanidze's photo

Dimitri Didmanidze

Tutorial

Tutorial sobre cómo crear aplicaciones LLM con LangChain

Explore el potencial sin explotar de los grandes modelos lingüísticos con LangChain, un marco Python de código abierto para crear aplicaciones avanzadas de IA.
Moez Ali's photo

Moez Ali

Ver másVer más