idea_world_labDEV JOURNAL
domingo, 28 de junio de 2026

Alternativa E: Creación del perfil de consulta Qwen

Flujo

-> Solicitar a Qwen la generación de JSON para búsqueda  
  -> Buscar con BM25/vector usando el JSON generado  
  -> Devolver candidatos JSONL

Ejemplo de salida

Si Qwen se selecciona bien, puedes crear un perfil de búsqueda como el siguiente.

{
  "search_intent": "Godot 4 2D player movement tutorial",
  "important_literals": [
    "Input.is_action_pressed",
    "Vector2.ZERO",
    "AnimatedSprite2D",
    "position.clamp",
    "screen_size"
  ],
  "likely_doc_topics": [
    "first 2D game",
    "coding the player",
    "player movement",
    "clamp position to screen",
    "play and stop AnimatedSprite2D"
  ],
  "migration_signals": []
}

Ventajas

  • Se puede reducir la codificación rígida.
  • Se puede resumir la intención en fragmentos complejos.
  • Se pueden crear términos de búsqueda más legibles para las personas.
  • Se puede delegar la inferencia de contexto de Godot a Qwen.

Desventajas

  • Es lento.
  • Tiene costo.
  • Desde la etapa previa a la búsqueda pueden introducirse alucinaciones.
  • Puede generar pistas que no existen en Qwen.
  • Puede crear una intención de migración incorrecta y arrastrar mal el api_mapping.

Ejemplo de fallo

En el fragmento de referencia está AnimatedSprite2D, pero si Qwen lo resume incorrectamente como a continuación, es peligroso.

{
  "migration_intent": "Godot 3 to Godot 4 migration",
  "important_terms": ["AnimatedSprite", "AnimatedSprite2D"]
}

En este caso es un código normal de Godot 4, pero se puede arrastrar incorrectamente el mapeo de migración.

Simulación PoC

Se pasa el chunk de referencia a Qwen primero para que cree un perfil de búsqueda.

Entrada:

SOURCE_CODE:
func _process(delta):
  ...
  $AnimatedSprite2D.play()
  position = position.clamp(Vector2.ZERO, screen_size)

Perfil de éxito:

{
  "search_intent": "Godot 4 2D player movement tutorial",
  "important_literals": [
    "Input.is_action_pressed",
    "Vector2.ZERO",
    "AnimatedSprite2D",
    "position.clamp",
    "screen_size"
  ],
  "migration_signals": []
}

Los candidatos esperados al buscar con este perfil son los siguientes.

docs_chunks:
  first_2d_game / coding_the_player
  first_2d_game / clamp and screen bounds section

api_mapping:
  Casi nada o bajo

label_prototypes:
  Casi nada o bajo

Perfil de fallas:

{
  "search_intent": "Godot 3 to Godot 4 migration",
  "important_literals": [
    "AnimatedSprite",
    "AnimatedSprite2D",
    "KinematicBody2D"
  ],
  "migration_signals": ["AnimatedSprite to AnimatedSprite2D"]
}

Razones por las que el perfil de falla es peligroso:

El código fuente no contiene AnimatedSprite.  
El código fuente no contiene KinematicBody2D.  
El código fuente podría ser un código válido de Godot 4.  
Sin embargo, cuando Qwen crea una intención de migración, puede buscar incorrectamente api_mapping/label_prototypes.

Registro a verificar en PoC

El método de perfil de consulta Qwen implica que el LLM intervenga antes de la búsqueda, por lo que es necesario el siguiente registro.

1. raw chunkText  
2. JSON de perfil de consulta creado por Qwen  
3. si los important_literals en el perfil existen realmente en el SOURCE_CODE  
4. si los migration_signals en el perfil existen realmente en el SOURCE_CODE  
5. candidatos buscados con el perfil  
6. diferencia con los candidatos buscados con raw chunkText

Conclusión visible:

Si el perfil de Qwen se muestra bien, la consulta de búsqueda se ve mejor.  
Sin embargo, si se generan pistas inexistentes, los resultados se contaminan en la etapa previa a la búsqueda.  
Por eso, es más seguro usar Qwen como validador después de la búsqueda que antes.

Juicio

Es bueno para experimentos de calidad de búsqueda  
Se debe ser cauteloso como motor de búsqueda de primera fase en producción

La evaluación de la nota original es que es más seguro usar Qwen como validador de evidencia directa después de la búsqueda que como generador de consultas antes de la búsqueda.