ChatPaper.aiChatPaper

CodexGraph: Verbindung großer Sprachmodelle und Code-Repositories über Code-Graph-Datenbanken

CodexGraph: Bridging Large Language Models and Code Repositories via Code Graph Databases

August 7, 2024
Autoren: Xiangyan Liu, Bo Lan, Zhiyuan Hu, Yang Liu, Zhicheng Zhang, Wenmeng Zhou, Fei Wang, Michael Shieh
cs.AI

Zusammenfassung

Große Sprachmodelle (LLMs) zeichnen sich bei eigenständigen Code-Aufgaben wie HumanEval und MBPP aus, haben jedoch Schwierigkeiten beim Umgang mit gesamten Code-Repositories. Diese Herausforderung hat die Forschung zur Verbesserung der Interaktion von LLMs mit Code-Basen im Repository-Maßstab angeregt. Aktuelle Lösungen setzen auf ähnlichkeitsbasierte Abfrage oder manuelle Tools und APIs, von denen jede bemerkenswerte Nachteile aufweist. Ähnlichkeitsbasierte Abfrage weist oft eine geringe Rückrufquote bei komplexen Aufgaben auf, während manuelle Tools und APIs in der Regel auf bestimmte Aufgaben spezialisiert sind und Expertenwissen erfordern, was ihre Verallgemeinerbarkeit über verschiedene Code-Aufgaben und reale Anwendungen hinweg einschränkt. Um diese Einschränkungen zu mildern, stellen wir \framework vor, ein System, das LLM-Agenten mit Graphdatenbank-Schnittstellen integriert, die aus Code-Repositories extrahiert wurden. Durch die Nutzung der strukturellen Eigenschaften von Graphdatenbanken und der Flexibilität der Graphabfragesprache ermöglicht \framework dem LLM-Agenten, Abfragen zu erstellen und auszuführen, was präzise, code-struktur-bewusste Kontextabfrage und Code-Navigation ermöglicht. Wir bewerten \framework anhand von drei Benchmarks: CrossCodeEval, SWE-bench und EvoCodeBench. Darüber hinaus entwickeln wir fünf Coding-Anwendungen für den realen Einsatz. Mit einem einheitlichen Graphdatenbankschema zeigt \framework eine wettbewerbsfähige Leistung und Potenzial sowohl in akademischen als auch in realen Umgebungen und zeigt damit seine Vielseitigkeit und Wirksamkeit in der Softwareentwicklung. Unsere Anwendungs-Demo: https://github.com/modelscope/modelscope-agent/tree/master/apps/codexgraph_agent.
English
Large Language Models (LLMs) excel in stand-alone code tasks like HumanEval and MBPP, but struggle with handling entire code repositories. This challenge has prompted research on enhancing LLM-codebase interaction at a repository scale. Current solutions rely on similarity-based retrieval or manual tools and APIs, each with notable drawbacks. Similarity-based retrieval often has low recall in complex tasks, while manual tools and APIs are typically task-specific and require expert knowledge, reducing their generalizability across diverse code tasks and real-world applications. To mitigate these limitations, we introduce \framework, a system that integrates LLM agents with graph database interfaces extracted from code repositories. By leveraging the structural properties of graph databases and the flexibility of the graph query language, \framework enables the LLM agent to construct and execute queries, allowing for precise, code structure-aware context retrieval and code navigation. We assess \framework using three benchmarks: CrossCodeEval, SWE-bench, and EvoCodeBench. Additionally, we develop five real-world coding applications. With a unified graph database schema, \framework demonstrates competitive performance and potential in both academic and real-world environments, showcasing its versatility and efficacy in software engineering. Our application demo: https://github.com/modelscope/modelscope-agent/tree/master/apps/codexgraph_agent.

Summary

AI-Generated Summary

PDF182November 28, 2024