CodexGraph: Collegare i Modelli Linguistici di Grande Scala e i Repository di Codice attraverso Database di Grafi del Codice
CodexGraph: Bridging Large Language Models and Code Repositories via Code Graph Databases
August 7, 2024
Autori: Xiangyan Liu, Bo Lan, Zhiyuan Hu, Yang Liu, Zhicheng Zhang, Wenmeng Zhou, Fei Wang, Michael Shieh
cs.AI
Abstract
I Large Language Model (LLM) eccellono in compiti di codice autonomi come HumanEval e MBPP, ma faticano a gestire interi repository di codice. Questa sfida ha stimolato la ricerca su come migliorare l'interazione tra LLM e codebase su scala di repository. Le soluzioni attuali si basano su recupero basato sulla similarità o su strumenti e API manuali, ciascuno con notevoli limiti. Il recupero basato sulla similarità spesso ha una bassa richiamo in compiti complessi, mentre gli strumenti e le API manuali sono tipicamente specifici per il compito e richiedono conoscenze specialistiche, riducendo la loro generalizzabilità attraverso diversi compiti di codice e applicazioni reali. Per mitigare queste limitazioni, introduciamo \framework, un sistema che integra agenti LLM con interfacce di database grafici estratti da repository di codice. Sfruttando le proprietà strutturali dei database grafici e la flessibilità del linguaggio di query grafiche, \framework consente all'agente LLM di costruire ed eseguire query, permettendo un recupero contestuale preciso e consapevole della struttura del codice, nonché la navigazione del codice. Valutiamo \framework utilizzando tre benchmark: CrossCodeEval, SWE-bench e EvoCodeBench. Inoltre, sviluppiamo cinque applicazioni di codifica del mondo reale. Con uno schema unificato di database grafici, \framework dimostra prestazioni competitive e potenziale sia in ambienti accademici che reali, mostrando la sua versatilità ed efficacia nell'ingegneria del software. La nostra demo dell'applicazione è disponibile qui: 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.