Prompt Enrichment
El enriquecimiento de prompts añade datos del usuario, documentos recuperados, resultados de herramientas o ejemplos a una solicitud antes de que llegue a un modelo de IA, para que las respuestas se ajusten al usuario.
El enriquecimiento de prompts consiste en añadir información automáticamente a la solicitud de un usuario antes de que llegue a un modelo de IA. El código de la aplicación se sitúa entre el usuario y el modelo, y completa lo que el usuario no ha escrito: los datos de su cuenta, los documentos que responden a la pregunta, datos actualizados de herramientas, ejemplos resueltos o una versión más detallada de la propia solicitud. Un cliente que pregunta «¿Por qué ya no se detecta mi cámara?» escribe siete palabras, y el modelo de lenguaje grande (LLM) recibe esas siete palabras, además del dispositivo del cliente, la versión del software y el artículo de ayuda sobre ese problema concreto. El término engloba varias técnicas; la más conocida es la generación aumentada por recuperación (RAG).
Qué aporta el enriquecimiento#
- Datos de usuario y sesión: Campos del perfil, plan, idioma, ubicación, fecha actual o página que está viendo el usuario, obtenidos de los propios registros de la aplicación.
- Conocimiento recuperado: Pasajes encontrados al buscar texto relacionado con la solicitud en una colección de documentos o un grafo de conocimiento.
- Resultados de herramientas: Valores obtenidos para esta solicitud, como el estado de un pedido consultado mediante una API, una fila de una base de datos o el resultado de otro modelo.
- Ejemplos seleccionados: Ejemplos con pocos ejemplos que se eligen para cada solicitud por su parecido con la entrada, en lugar de usar el mismo conjunto fijo para todas las solicitudes.
- Consultas reescritas: Un modelo amplía una solicitud escueta antes de utilizarla. En HyDE, Luyu Gao y sus colegas hacen que un LLM redacte una respuesta hipotética y luego usan la incrustación de ese documento para recuperar documentos reales; este método superó al mismo recuperador no supervisado cuando solo se le proporcionaba la pregunta.
El siguiente ejemplo enriquece una pregunta de asistencia con datos de la cuenta y el artículo de ayuda más pertinente, recuperado mediante similitud TF-IDF con scikit-learn:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# Context the user never typed: their account record and the help center's articles
account = {"plan": "Pro", "device": "USB webcam", "app_version": "2.3"}
articles = [
"Version 2.4 fixes USB webcams that are not detected after a system update.",
"Pro plans include ten concurrent video streams per workspace.",
"Invoices are available on the billing page as soon as a payment succeeds.",
]
question = "Why is my camera not detected anymore?"
# Retrieve the article most similar to the question
vectorizer = TfidfVectorizer().fit([*articles, question])
scores = cosine_similarity(vectorizer.transform([question]), vectorizer.transform(articles))[0]
best = articles[scores.argmax()]
# Assemble the enriched prompt the model actually receives
profile = ", ".join(f"{key}: {value}" for key, value in account.items())
prompt = f"Customer profile: {profile}\nRelevant article: {best}\nQuestion: {question}"
print(prompt)Imprime:
Customer profile: plan: Pro, device: USB webcam, app_version: 2.3
Relevant article: Version 2.4 fixes USB webcams that are not detected after a system update.
Question: Why is my camera not detected anymore?La pregunta del usuario no menciona una cámara web, una versión ni una actualización, pero el prompt enriquecido contiene todo lo necesario para responder «actualización de la versión 2.3 a la 2.4». Los sistemas de producción suelen recuperar con incrustaciones densas de una base de datos vectorial o mediante búsqueda híbrida, pero el paso de ensamblaje es el mismo.
El enriquecimiento en la práctica#
En 2023, GitHub explicó cómo la técnica de pestañas adyacentes de Copilot busca en los archivos que tiene abiertos el desarrollador fragmentos similares al código que rodea al cursor y los añade al prompt, lo que aumentó un 5 % la frecuencia relativa con la que los usuarios aceptaban las sugerencias de Copilot. Los chatbots de atención al cliente enriquecen cada turno con los registros de cuentas y pedidos, y los agentes de IA enriquecen cada paso con los resultados de las llamadas anteriores a sus herramientas.
Los sistemas de visión enriquecen los prompts con lo que ha encontrado un detector. En Ultralytics Platform Agents, un bloque LLM envía al modelo de visión y lenguaje seleccionado cada imagen junto con los resultados de los bloques anteriores, como las detecciones de YOLO26, de modo que un prompt redactado una sola vez se enriquece con nuevos resultados de detección de objetos para cada imagen que procesa el flujo de trabajo.
El enriquecimiento tiene costes. Cada pasaje añadido utiliza tokens, lo que aumenta el precio y la latencia de inferencia; además, un contexto irrelevante o excesivo reduce la precisión, un efecto conocido como deterioro del contexto. Las páginas web y los documentos recuperados también pueden contener ataques de inyección de prompts, y añadir datos personales a un prompt plantea problemas de privacidad de los datos, ya que se envían a quien ejecuta el modelo.
Enriquecimiento de prompts y términos relacionados#
- Generación aumentada por recuperación (RAG): La forma de enriquecimiento que busca en una colección de documentos externa. El enriquecimiento también abarca datos que no requieren búsquedas, como el plan de un usuario o la fecha actual.
- Ingeniería de prompts: Una persona diseña la plantilla del prompt. El enriquecimiento rellena esa plantilla con datos específicos de la solicitud durante la ejecución.
- Ingeniería de contexto: Gestiona todo lo que forma parte del contexto de un modelo en una aplicación, incluido qué añadir, comprimir o descartar en cada paso. El enriquecimiento es la parte que añade información.
- Fundamentación: Vincular la salida de un modelo con fuentes verificables. El enriquecimiento proporciona esas fuentes en el prompt.
- Compresión de prompts: Acorta un prompt eliminando tokens con poca información y suele aplicarse después del enriquecimiento cuando el contexto añadido es largo.










