Docs
Cómo PromptAtlas crea preguntas auténticas a partir de personas, funnel y producto. Con el prompt real que Georadar le envía al LLM generador.
En un audit serio no puedes medir con cinco preguntas. Necesitas decenas o cientos, variadas, bien distribuidas entre ángulos de compra (discovery, comparación, recomendación, planificación…), y sobre todo realistas — preguntas que un usuario real escribiría en ChatGPT, no variaciones artificiales de la misma.
PromptAtlas es el módulo que genera eso. No es “tira el LLM a que invente preguntas”: es un sistema con contexto jerárquico, few-shot learning, deduplicación semántica y verificación de calidad.
Qué le das a PromptAtlas
Al arrancar una sesión de generación, tú eliges:
| Input | Qué es | Efecto |
|---|---|---|
| Personas | Una o varias del roster del proyecto | Marcan el tono y el ángulo de las preguntas |
| Funnel stage (opcional) | awareness · consideration · decision | Estilo del prompt según el momento de compra |
| Línea de producto (opcional) | Categoría concreta dentro del proyecto | Enfoca sobre un subset de tu oferta |
| Entidad objetivo (opcional) | Entidad central del prompt | Fuerza que las preguntas giren alrededor de una marca/producto |
| Target count | 1–50 prompts deseados activos | Cuántas preguntas quieres tener al final |
| Temperatura (opcional) | 0–2 | Aleatoriedad del LLM generador |
| Modo | analysis o simulation | Determina el tipo de pregunta que se genera |
| Instrucciones custom (opcional) | Texto libre | ”Evita jerga técnica”, “enfoca en criterios de decisión” |
| Avoid / Emphasize patterns (opcional) | Listas de frases | El generador las evita o las favorece |
Qué hace PromptAtlas por dentro
El pipeline completo, paso a paso:
1. Carga de contexto
PromptAtlas busca en la base de datos:
- Los datos de la persona, funnel, producto y entidad elegidos
- Los prompts que ya existen en el proyecto con ese contexto (para dedup)
- Los últimos 20 prompts descartados en el proyecto (para aprender qué no generar)
2. Carga de ejemplos jerárquica
Georadar tiene una biblioteca de ejemplos reales — prompts que han funcionado históricamente bien. Se cargan en cuatro niveles de especificidad, del más general al más concreto:
| Nivel | Scope | Cuándo aplica |
|---|---|---|
| Global | Sin persona, sin funnel, sin producto | Siempre |
| Persona | Solo persona | Si hay persona seleccionada |
| Persona + funnel | Ambas dimensiones | Si hay funnel |
| Full context | Persona + funnel + producto | Si están los tres |
El generador recibe los ejemplos de todos los niveles que apliquen, con etiquetas que le dicen “estos son ejemplos exactos para tu caso”, “estos son fallbacks más generales”.
3. Llamada al LLM generador
El LLM que genera prompts no es el mismo que responderá después al audit. Normalmente se usa Gemini 2.5 Flash Lite (barato, rápido, preciso para tareas estructuradas). El prompt que Georadar le envía es largo y muy específico:
## MAIN MISSION
You are a real person using ChatGPT to solve questions about {PROJECT.NAME}
in the {INDUSTRY} industry.
You must create **{COUNT} AUTHENTIC QUESTIONS** that describe needs,
comparisons, or instructions that a user would spontaneously write.
**Expected impact:** Generate questions that trigger responses where
relevant brands, providers, and products emerge organically, never forced.
## HUMAN APPROACH
- Speak from the perspective of {PERSONA.NAME} and their everyday challenges.
- Use the natural language of the end user: questions, comparisons,
instructions, ranking requests, example requests, etc.
- Connect each question with the {FUNNEL.NAME} stage and with the
attributes of {PRODUCT_LINE.NAME}.
## CORE PRINCIPLES
1. **Absolute naturalness**: No invented technicisms or artificial "prompting".
2. **Decision-oriented**: Prioritize questions that lead to mentioning
real brands/products or specific purchase criteria.
3. **Explicit context**: Place the question in concrete scenarios, tasks
to do, evaluation criteria, or user needs.
4. **Format variety**: Alternate between open questions, comparative
requests, checklists, step-by-step instructions, classification,
personalized recommendations, etc.
5. **Brand relevance**: When appropriate, invite the response to include
market providers or solutions without explicitly requiring it.
Fragmento. El prompt completo incluye además:
- Contexto: el project, la persona (con sus priorities, goals, pain points, conversation style), el funnel stage y la línea de producto.
- Portfolio de tipos de pregunta: discovery, comparison, technical deep-dive, classification, problem solving, planning.
- Ejemplos jerárquicos: las preguntas que cargó en el paso 2.
- Rejected prompts: las que han sido descartadas antes, con el motivo, para que el generador no las repita.
- Output format: JSON estricto con campos
texteintentionpor prompt. - Quality control: una checklist final que el LLM debe aplicar antes de devolver cada prompt.
El prompt real vive en packages/ai/src/templates/prompt-generation.ts.
4. Embedding y deduplicación en cascada
El LLM devuelve N prompts candidatos. Antes de persistirlos, Georadar hace lo siguiente por cada uno:
- Calcula el embedding del candidato (vector de 1536 dimensiones).
- Hace una búsqueda de similitud contra los prompts ya existentes en el proyecto, en cuatro niveles con thresholds distintos:
| Nivel | Threshold | Significado |
|---|---|---|
| Global | 0.90 | ¿Hay algún prompt en todo el proyecto que diga casi esto? |
| Persona | 0.85 | ¿Hay otro para esta misma persona que repita? |
| Persona + funnel | 0.825 | ¿Hay otro para este ángulo específico? |
| Full context | 0.80 | ¿Hay otro para persona + funnel + producto? |
- Si el candidato cruza el threshold a cualquier nivel, se descarta (se guarda con
status = "discarded"y una razón como"similarity-persona:0.87"). - Si no cruza ningún threshold, se marca
activey entra en el pool.
El umbral es más exigente cuanto más específico el contexto, porque dentro de un mismo ángulo la redundancia cuesta más.
5. Persistencia y SSE
Los prompts activos y descartados se insertan juntos en Postgres (el descartado queda trazable en el historial pero no se ejecutará). La sesión actualiza su progreso (promptsGenerated, promptsDiscarded, totalAttempts) y publica un evento en tiempo real al dashboard vía SSE, para que veas el avance minuto a minuto.
Qué significa esto para ti
Si pides 20 prompts, puedes recibir 12
La deduplicación es real. Si el LLM tiende a repetirse (común con temperaturas bajas o contextos muy específicos), muchos candidatos caen. El sistema ajusta automáticamente cuánto generar:
discardRate = descartes / intentos (histórico; 0.25 por defecto)
predictedYield = clamp(1 - discardRate, 0.25, 0.95)
generateCount = max(deseados + 2, ceil(deseados / predictedYield))
Con un discard rate del 30 %, para pedir 20 prompts, el sistema realmente pide ~29 al LLM, esperando quedarse con 20 únicos. Aún así a veces no llega al target.
Si te falta volumen, varía customInstructions, emphasizePatterns, o cambia de persona/funnel.
Dos modos de generación
Analysis mode (default) genera preguntas para ChatGPT. La persona habla como usuario que busca información: “¿cuáles son las mejores zapatillas para correr en asfalto?”.
Simulation mode genera preguntas de entrevista a la persona. La persona es el sujeto, no quien pregunta: “¿Cuál ha sido tu experiencia comprando zapatillas online?”. Útil si el audit va en simulation y necesitas prompts preparados para hacer hablar a la persona simulada.
Verificación post-generación
Opcionalmente, al terminar una sesión de generación, Georadar ejecuta una verificación que calcula un health score 0–100 del set completo:
- Entropía semántica (0.22): ¿los prompts ocupan espacios vectoriales distintos?
- Entropía de intención (0.17): ¿están bien distribuidas las intenciones declaradas (
discovery,comparison, etc.)? - Balance de funnel (0.17): ¿cubren todas las etapas si se declaran?
- Cobertura (0.22): ¿cuántos clusters semánticos distintos se cubren?
- Diversidad (0.22): spread semántico total.
Un score alto significa que los prompts son un set bien distribuido, no 30 variantes del mismo ángulo.
Siguiente
Con los prompts en estado active en el pool del proyecto, la siguiente fase es Lanzar el audit — cuando esas preguntas se ejecutan contra los LLMs.
