JetBrains baut RAG-Pipeline für semantische Codesuche
Building a RAG Pipeline for Semantic Code Search

In einer mehrteiligen Serie beschreiben JetBrains-Entwickler den Aufbau einer RAG-Pipeline für semantische Codesuche, die LLM-Agenten präzise, zitierbare Fundstellen aus echten Repositories liefert. Teil 1 behandelt Parsing und Chunking: Statt fester Zeilengrenzen kommen sprachspezifische Parser zum Einsatz, die Syntaxknoten zu semantisch sinnvollen Einheiten gruppieren. Die Autoren erklären, warum zu große oder zu kleine Chunks die Suche verschlechtern, wie sie die Chunk-Qualität mit einem LLM-as-a-Judge bewerten und wie die Vektorisierung mit Kosten- und Speicheroptimierung funktioniert.
Die entscheidende Frage verschiebt sich schnell von „Wie genau können wir sein?“ zu „Was bekommen wir pro Byte?“
- keeda
Ich denke, so etwas wäre entscheidend, um die Qualität von Coding-Agents zu verbessern. Ein sehr häufiges Problem (vielleicht das größte), das viele beobachten, ist, dass Agents oft eine Menge doppelten und redundanten Code produzieren; mehrere Abstraktionen, Methoden, Klassen, Datenstrukturen usw., die geringfügige Variationen desselben Zwecks erfüllen ... manchmal sogar innerhalb derselben Datei!
Meine Theorie ist, dass dies auf eine Art „Tunnelblick“ zurückzuführen ist, den diese Modelle haben, während sie eine bestimmte Aufgabe ausführen, weil Ingenieure, die neu in einem Unternehmen sind, dasselbe tun, bis sie die „Lage des Landes“ lernen und herausfinden, dass ähnliche Probleme anderswo gelöst wurden.
In einem früheren Job besaß mein Team das interne Multi-Repo-Codesearch-Tool, das mit Abstand das beliebteste interne Tool war, und später fügte ein anderes Team eine ähnliche semantische Suchfunktion hinzu. Das war sehr spannend, aber ich ging, bevor ich sehen konnte, wie gut es sich im echten Leben bewährt hat.
So würdest du eine Keyword-Suche machen und erkunden, ob du ein größeres Stück Funktionalität brauchst, das erhebliche Arbeit erfordern würde, oder wann immer du auf eine Abstraktion stößt, deren Code nicht in deinem Repo existiert und du mehr darüber erfahren möchtest. Aber wenn du im Flow bist und kleinere Abstraktionen erfindest, wie eine Klasse oder eine Utility-Methode, denkst du nicht unbedingt daran, danach zu suchen. Schlimmer noch, selbst wenn du es tätest, könntest du nicht effektiv danach suchen, weil etwas Ähnliches mit leicht anderer Benennung oder Terminologie oder einem Tippfehler existieren könnte, den eine Keyword-Suche übersehen würde. Vorhersehbar, bei sc […]
- duhhhhh1212
https://www.pangram.com/history/c901e80e-9cb7-46e4-bf10-7348...
Ich will nicht sagen, verschwende nicht deine Zeit, da die erste Hälfte von einem Menschen geschrieben wurde. Fragen an die Autoren: Habt ihr einfach keine Lust mehr zu schreiben gehabt und gesagt „Scheiß drauf, lass das LLM den Rest fertigstellen“? Oder hat einer von euch das LLM benutzt, um die letzte Hälfte zu schreiben, und der andere hat seine eigenen Worte verwendet?
- simianwords
Da haben wir es wieder: Die Branche hat RAG weitgehend aufgegeben. Tatsächlich habe ich kaum einen Fall gesehen, in dem grep nicht genauso gut funktioniert wie RAG.