</>AppInitDev DevelopersCentro de aprendizaje Android
IA • Android · TUTORIAL PRÁCTICO

RAG en Android: responder preguntas usando documentos propios

Construye un flujo de recuperación de fragmentos y respuesta fundamentada sin inventar fuentes.

◎
Objetivo del tutorial

Comprender una arquitectura RAG y desarrollar un prototipo de recuperación local verificable.

CONTEXTO

Por qué es importante

RAG significa generación aumentada mediante recuperación. En vez de pedir a un modelo que responda de memoria, recuperas fragmentos relevantes de documentos autorizados y los incorporas como contexto. Es imprescindible mostrar las fuentes y admitir cuando no existe evidencia suficiente.

ANTES DE EMPEZAR

Requisitos

  • Documentos de prueba sin información sensible; por ejemplo, archivos de ayuda de una app.
  • Conocimientos básicos de Kotlin y un proveedor de generación de texto opcional para la fase final.

Trabaja en un proyecto de pruebas. Revisa las versiones y condiciones específicas de la documentación oficial, ya que las APIs y las políticas evolucionan.

PASO A PASO

Implementación

01

Convierte los documentos a texto y conserva metadatos…

Convierte los documentos a texto y conserva metadatos: archivo, sección, versión y permiso de acceso.

02

Divide el texto en fragmentos cortos que mantengan…

Divide el texto en fragmentos cortos que mantengan el sentido. Evita cortar encabezados o definiciones en mitad de la explicación.

03

Comienza con un buscador sencillo por coincidencia de…

Comienza con un buscador sencillo por coincidencia de palabras. Para grandes colecciones evalúa embeddings y un índice vectorial mantenido fuera del dispositivo.

04

Selecciona pocos fragmentos relevantes y construye un contexto…

Selecciona pocos fragmentos relevantes y construye un contexto con referencias. Indica al modelo que no responda cuando el material no cubra la pregunta.

05

En la interfaz, muestra respuesta y documentos consultados…

En la interfaz, muestra respuesta y documentos consultados. Nunca conviertas el texto de documentos recuperados en comandos privilegiados.

06

Evalúa con preguntas respondibles, preguntas sin respuesta y…

Evalúa con preguntas respondibles, preguntas sin respuesta y documentos contradictorios. Mide exactitud de fuentes, no solo fluidez del texto.

EJEMPLO EXPLICADO

Fragmento de referencia

KOTLIN
data class Fragmento(val fuente: String, val texto: String)

fun buscar(query: String, corpus: List<Fragmento>) =
    corpus.filter { f ->
        query.lowercase().split(' ').any { palabra ->
            palabra.length > 3 && f.texto.contains(palabra, true)
        }
    }.take(3)
// Es una recuperación léxica de demostración; no es un motor vectorial.

Ejemplo educativo: cuando se indique, añade las importaciones, dependencias, claves de prueba o clases de tu proyecto. No se presenta como proyecto Android completo y compilado.

EJERCICIO

Ponlo a prueba

Crea tres fragmentos sobre permisos Android. Realiza una pregunta incluida en el corpus y otra no cubierta; comprueba que el prototipo identifique correctamente la ausencia de evidencia.

RESULTADOS

Lista de comprobación

  • La implementación cumple el objetivo: comprender una arquitectura rag y desarrollar un prototipo de recuperación local verificable.
  • El comportamiento se verificó con datos de prueba y se documentaron los casos de fallo.
  • Los recursos, dependencias y políticas se comprobaron contra las referencias oficiales.
  • No se registran datos sensibles ni se da por probada una mejora sin evidencia.
DEPURACIÓN

Errores habituales

  • No atribuir al documento frases que no contiene.
  • No indexar documentos privados sin controles de autorización.
  • No confundir la búsqueda léxica del ejemplo con un sistema RAG de producción.
PREGUNTAS FRECUENTES

¿RAG requiere entrenar un modelo?

No. Normalmente utiliza recuperación de documentos y un modelo generativo existente.

DOCUMENTACIÓN OFICIAL Y TÉCNICA

Referencias para ampliar

Consulta las versiones, limitaciones y requisitos vigentes antes de integrar los ejemplos en producción.

SIGUE APRENDIENDO

Tutoriales relacionados

← Más tutoriales de Inteligencia artificial con KotlinIr a AppInitDev ↗