Alternative E: Erstellung eines Qwen‑Abfrageprofils
Ablauf
-> Anfrage an Qwen zur Erstellung von JSON für die Suche
-> Suche mit BM25/Vector mittels des erzeugten JSON
-> Rückgabe von JSONL‑KandidatenBeispielausgabe
Wenn Qwen gut ausgewählt wird, kann man ein Suchprofil wie folgt erstellen.
{
"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": []
}Vorteile
- Der Hardcoding kann reduziert werden.
- Die Absicht kann aus komplexen Chunks zusammengefasst werden.
- Suchbegriffe können für Menschen lesbarer gemacht werden.
- Die Kontextinferenz von Godot kann Qwen überlassen werden.
Nachteile
- Es ist langsam.
- Es verursacht Kosten.
- Bereits in der Vor-Suchphase können Halluzinationen auftreten.
- Qwen kann Hinweise erzeugen, die nicht existieren.
- Falsche Migrationsabsichten können entstehen und das
api_mappingfehlerhaft importieren.
Fehlbeispiel
Im Referenz‑Chunk gibt es AnimatedSprite2D, aber wenn Qwen es wie folgt falsch zusammenfasst, ist das gefährlich.
{
"migration_intent": "Godot 3 to Godot 4 migration",
"important_terms": ["AnimatedSprite", "AnimatedSprite2D"]
}In diesem Fall handelt es sich um korrekten Godot‑4‑Code, aber das Migrations‑Mapping könnte falsch übernommen werden.
PoC‑Simulation
Der Basis‑Chunk wird zunächst an Qwen übergeben, damit ein Such‑Profil erstellt wird.
Eingabe:
SOURCE_CODE:
func _process(delta):
...
$AnimatedSprite2D.play()
position = position.clamp(Vector2.ZERO, screen_size)Erfolgsprofil:
{
"search_intent": "Godot 4 2D player movement tutorial",
"important_literals": [
"Input.is_action_pressed",
"Vector2.ZERO",
"AnimatedSprite2D",
"position.clamp",
"screen_size"
],
"migration_signals": []
}Wenn Sie mit diesem Profil suchen, sind die erwarteten Kandidaten wie folgt.
docs_chunks:
first_2d_game / coding_the_player
first_2d_game / clamp and screen bounds section
api_mapping:
Fast keine oder niedrig
label_prototypes:
Fast keine oder niedrigFehlerprofil:
{
"search_intent": "Godot 3 to Godot 4 migration",
"important_literals": [
"AnimatedSprite",
"AnimatedSprite2D",
"KinematicBody2D"
],
"migration_signals": ["AnimatedSprite to AnimatedSprite2D"]
}Warum ein fehlerhaftes Profil gefährlich ist:
In SOURCE_CODE gibt es kein AnimatedSprite.
In SOURCE_CODE gibt es keinen KinematicBody2D.
SOURCE_CODE kann ein gültiger Godot‑4‑Code sein.
Wenn Qwen jedoch eine Migrationsabsicht erstellt, kann es api_mapping/label_prototypes falsch durchsuchen.Logs, die im PoC zu prüfen sind
Da die Qwen‑Query‑Profile‑Methode LLM vor der Suche einbezieht, sind die folgenden Protokolle unbedingt erforderlich.
1. raw chunkText
2. Von Qwen erstelltes query profile JSON
3. Ob die `important_literals` im Profil tatsächlich im `SOURCE_CODE` vorhanden sind
4. Ob die `migration_signals` im Profil tatsächlich im `SOURCE_CODE` vorhanden sind
5. Durch das Profil gefundene Kandidaten
6. Unterschied zu den Kandidaten, die mit raw chunkText gesucht wurdenSichtbare Schlussfolgerung:
Wenn das Qwen‑Profil gut erscheint, sieht die Suchanfrage besser aus.
Aber wenn man nicht vorhandene Hinweise erzeugt, wird das Ergebnis bereits in der Vor‑Suchphase verschmutzt.
Deshalb ist es sicherer, Qwen nach der Suche als Validator zu verwenden als davor.Bewertung
Gut für Suchqualitäts‑Experimente
Vorsichtig als primäre ProduktionssucheDie Beurteilung der Originalnotiz ist, dass es sicherer ist, Qwen nach der Suche als direkten Evidenz‑Validator zu verwenden, anstatt ihn als Query‑Generator vor der Suche einzusetzen.