Key points are not available for this paper at this time.
Die Leistung der codebasierten Vervollständigung auf Repository-Ebene hängt von der effektiven Nutzung sowohl allgemeiner als auch repositoriespezifischer Kenntnisse ab. Trotz der beeindruckenden Fähigkeit von LLMs (language model) bei allgemeinen Aufgaben der codebasierten Vervollständigung zeigen sie oft eine weniger zufriedenstellende Leistung bei der Vervollständigung auf Repository-Ebene, da es diesen LLMs an repositoriespezifischem Wissen mangelt. Um dieses Problem anzugehen, schlagen wir GraphCoder vor, ein abrufunterstütztes Vervollständigungsframework, das das allgemeine Codewissen von LLMs und das repositoriespezifische Wissen über einen graphenbasierten Abruf-Generierungsprozess nutzt. Insbesondere erfasst GraphCoder den Kontext des Vervollständigungsziels genauer durch einen Code-Kontext-Graphen (CCG), der die Kontrollflüsse, Daten- und Kontrollabhängigkeiten zwischen Codeanweisungen umfasst, eine strukturiertere Möglichkeit, den Kontext des Vervollständigungsziels zu erfassen als der sequenzbasierte Kontext, der in bestehenden abrufunterstützten Ansätzen verwendet wird; basierend auf CCG verwendet GraphCoder weiter einen grob-finen Abrufprozess, um kontextähnliche Code-Snippets mit dem Vervollständigungsziel aus dem aktuellen Repository zu finden. Experimentelle Ergebnisse zeigen sowohl die Effektivität als auch die Effizienz von GraphCoder: Im Vergleich zu Basisverfahren der abrufunterstützten Methoden erreicht GraphCoder im Durchschnitt eine höhere exakt Übereinstimmung (EM), mit einer Steigerung von +6,06 bei der Codeübereinstimmung und +6,23 bei der Bezeichnerübereinstimmung, während weniger Zeit und Platz benötigt werden.
Liu et al. (Fr,) haben diese Frage untersucht.