ChatPaper.aiChatPaper

CodexGraph: Conectando Modelos de Lenguaje Grandes y Repositorios de Código a través de Bases de Datos de Grafos de Código

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

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

Resumen

Los Modelos de Lenguaje de Gran Escala (LLMs) destacan en tareas de código independientes como HumanEval y MBPP, pero tienen dificultades para manejar repositorios de código completos. Este desafío ha impulsado la investigación sobre cómo mejorar la interacción LLM-repositorio de código a escala de repositorio. Las soluciones actuales se basan en recuperación basada en similitud o herramientas manuales y APIs, cada una con inconvenientes notables. La recuperación basada en similitud a menudo tiene baja recuperación en tareas complejas, mientras que las herramientas manuales y APIs suelen ser específicas de la tarea y requieren conocimientos expertos, lo que reduce su generalización en diversas tareas de código y aplicaciones del mundo real. Para mitigar estas limitaciones, presentamos \framework, un sistema que integra agentes LLM con interfaces de bases de datos de grafos extraídas de repositorios de código. Al aprovechar las propiedades estructurales de las bases de datos de grafos y la flexibilidad del lenguaje de consulta de grafos, \framework permite que el agente LLM construya y ejecute consultas, lo que permite una recuperación precisa consciente de la estructura del código y navegación de código. Evaluamos \framework utilizando tres bancos de pruebas: CrossCodeEval, SWE-bench y EvoCodeBench. Además, desarrollamos cinco aplicaciones de codificación del mundo real. Con un esquema unificado de base de datos de grafos, \framework demuestra un rendimiento competitivo y potencial tanto en entornos académicos como en entornos del mundo real, mostrando su versatilidad y eficacia en ingeniería de software. Nuestra demo de la aplicación: 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.
PDF182November 28, 2024