idea_world_labDEV JOURNAL
Sonntag, 28. Juni 2026

Alternative F: BM25 + embedding + reranker + validator

Ablauf

raw chunkText
  -> BM25 top 80
  -> embedding top 80
  -> Kandidaten-Union
  -> reranker vergleicht raw chunk und jede JSONL-Kandidaten direkt
  -> gibt top JSONL zurück
  -> Qwen Direct-Evidence-Validator prüft direkte Beweise

Rollenverteilung

BM25:

Finde die genaue Zeichenkette/API-Token-Kandidaten.

code embedding:

Ergänzt Kandidaten, deren Ausdruck unterschiedlich, deren Bedeutung jedoch nahe beieinander liegt.

reranker:

BM25 und Embedding bringen die Kandidaten, die mit dem Roh‑Chunk verglichen und erneut sortiert werden.

Qwen Direktbeweis‑Validator:

JSONL innerhalb prüfen, ob ein direkter String‑/Muster‑Beweis für das aktuelle Chunk vorhanden ist.  
JSONL ohne Beweis wird verworfen.

Erwartete Sortierung im Basis‑Chunk

Kandidaten, die höher platziert werden sollten:

first_2d_game / coding_the_player
same page / clamp and AnimatedSprite2D explanation

Zu senkende Kandidaten:

first_3d_game / player_movement_code
unrelated api_mapping
unrelated label_prototypes

PoC‑Simulation

Angenommen, dass das Basis‑Chunk in den endgültigen Empfehlungsvorgang eingefügt wird.

raw chunkText
  -> BM25 top 80
  -> voyage-code-3 embedding top 80
  -> Kandidat-Union
  -> reranker
  -> Qwen direct-evidence validator

1. Schritt: BM25‑Kandidaten

BM25 wird die Kandidaten liefern:

A. first_2d_game / coding_the_player
   reason: Input.is_action_pressed, move_left, move_right, AnimatedSprite2D.play/stop

B. first_2d_game / clamp section
   reason: position.clamp, Vector2.ZERO, screen_size

C. first_3d_game / player_movement_code
   reason: Input.is_action_pressed, move_left, move_right, normalized

2. Schritt: embedding Kandidaten

embedding wird die Kandidaten übernehmen:

D. first_2d_game / movement explanation
   reason: 2D movement, keyboard input, animation

E. first_2d_game / screen bounds explanation
   reason: keep player inside screen

F. first_3d_game / movement
   reason: player movement semantic similarity

3. Schritt: Kandidaten‑Union

Nach dem Union werden Duplikate zusammengeführt.

A/D -> first_2d_game / coding_the_player
B/E -> first_2d_game / clamp/screen bounds
C/F -> first_3d_game / player_movement

4. Schritt: Reranker-Neusortierung

Der Reranker betrachtet den Roh‑Chunk zusammen mit den Kandidaten.

Erwartetes Reranking:

Rerank Kandidat Grund
1 first_2d_game / coding_the_player Eingabeverarbeitung, Velocity, AnimatedSprite2D play/stop passen direkt
2 first_2d_game / clamp/screen bounds position.clamp, Vector2.ZERO, screen_size passen direkt
3 first_3d_game / player_movement Eingabe/Bewegung ist ähnlich, aber im 3D‑Kontext und AnimatedSprite2D/screen_size fehlen

5. Schritt: Qwen Direct‑Evidence‑Validator

Beim Qwen‑Validator wird wie folgt gefragt.

Betrachte den SOURCE_CODE und das abgerufene JSONL,  
Gibt es im JSONL Zeichenketten/API‑Aufrufe/Pattern, die direkt mit dem SOURCE_CODE übereinstimmen?  
Entscheide zunächst mit Ja oder Nein.

Kein Markdown-Fragment zum Übersetzen bereitgestellt.

first_2d_game / coding_the_player:
  validator = ja
  direkter Beweis = Input.is_action_pressed, AnimatedSprite2D.play, AnimatedSprite2D.stop

first_2d_game / clamp/screen bounds:
  validator = ja
  direkter Beweis = position.clamp, Vector2.ZERO, screen_size

first_3d_game / player_movement:
  validator = nein oder geringe Relevanz
  Grund = Bewegungsinput ist ähnlich, aber es ist ein 3D‑Dokument und es gibt keinen direkten Beweis für AnimatedSprite2D/screen_size

Protokolle, die im PoC zu prüfen sind

Diese Alternative hat viele Schritte, daher muss das Folgende auf einem Bildschirm betrachtet werden.

1. raw chunkText  
2. BM25‑Kandidaten und passende Begriffe  
3. Embedding‑Kandidaten und Ähnlichkeit  
4. Union‑Ergebnis  
5. Reranker‑Punktzahl und Rangänderung  
6. Qwen‑Validator Ja/Nein  
7. Endgültiges akzeptieren/ablehnen JSONL

Sichtbare Schlussfolgerung:

BM25 und Embedding sammeln die Kandidaten breit.  
Der Reranker korrigiert die Reihenfolge ähnlicher Kandidaten.  
Der Qwen-Validator verwirft endgültig JSONL ohne direkte Begründung.

Vorteile

  • Die Qualität ist mit hoher Wahrscheinlichkeit am besten.
  • BM25‑False‑Positives können reduziert werden.
  • Auch Embedding‑False‑Positives lassen sich verringern.
  • Die Bedingungen für rohe Chunks bleiben erhalten.
  • Die Abhängigkeit von Hard‑Coding ist gering.
  • Mit dem Qwen‑Validator können unbegründete JSONL‑Einträge am Ende entfernt werden.

Nachteile

  • Es entstehen Kosten.
  • Es gibt eine Latenz.
  • Wenn zu viele Kandidaten eingefügt werden, wird es langsam.
  • Da der Reranker kein Beweisprüfer ist, wird ein abschließender Validator benötigt.

Bewertung

Qualität hat höchste Priorität – endgültiger Empfehlungsvorschlag

Die endgültige Empfehlung der Originalnotiz ist dieser Struktur am nächsten.