Подход к автодополнению кода на основе LLM для Python


Подход к автодополнению кода на основе LLM для Python

Волков М.В. (СПбГУ, Санкт-Петербург, Россия)
Божнюк А.С. (СПбГУ, Санкт-Петербург, Россия)
Васина Д.В. (Университет ИТМО, Санкт-Петербург, Россия)
Васильев В.А. (ГУД, Московская. обл., Россия)
Тропин Н.В. (СПбГУ, Санкт-Петербург, Россия)
Никитин М.Б. (Университет ИТМО, Санкт-Петербург, Россия)
Кознов Д.В. (СПбГУ, Санкт-Петербург, Россия)

Аннотация

Автодополнение кода является ключевой функцией интегрированных сред разработки (IDE), повышающей продуктивность разработчиков за счёт подсказок релевантных фрагментов кода. Большие языковые модели (LLM) представляют перспективный способ реализации этой функциональности, однако существующие LLM испытывают трудности при работе с контекстом уровня всего репозитория. В статье предлагается новый подход к автодополнению кода уровня репозитория для Python на основе модели кода IDE. Метод формирует запрос к LLM из двух компонентов: In-File Context, который объединяет типовую информацию и релевантные фрагменты из открытого файла, и Repository Context, извлекающий значимые участки кода из всего проекта. Эксперименты на бенчмарке RepoEval-Updated с использованием двух LLM – CodeGemma-2b и Qwen-2.5-Coder-14b – показали существенный прирост качества автодополнения: метрика Exact Match (EM) увеличилась на 30% для CodeGemma-2b и на 7% для Qwen-2.5-Coder-14b по сравнению с современными подходами No-RAG, Shifted-RAG и GraphCoder. Исследования подтвердили ключевую роль In-File Context и преимущество комбинирования методов поиска релевантного кода, особенно для задач уровня API. Полученные результаты демонстрируют ценность интеграции специфичной для Python семантики кода в системы автодополнения на базе LLM. Обобщаемость метода на модели разных размеров указывает на его широкую применимость. В дальнейшем возможно расширение экспериментов на дополнительные LLM и задействование большего числа возможностей модели кода. Проведённые исследования демонстрируют существенное повышение точности автодополнения кода в сложных проектах на Python при использовании предложенного метода.

Ключевые слова

слова: автодополнение уровня репозитория; большие языковые модели (LLM); технология RAG; среда разработки IDE; модель кода.

Издание

Труды Института системного программирования РАН, том 38, вып. 3, часть 1, 2026, стр. 153-170.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2026-38(3)-9

Для цитирования

Волков М.В., Божнюк А.С., Васина Д.В., Васильев В.А, Тропин Н.В., Никитин М.Б., Кознов Д.В. Подход к автодополнению кода на основе LLM для Python. Труды Института системного программирования РАН, том 38, вып. 3, часть 1, 2026, стр. 153-170. DOI: 10.15514/ISPRAS-2026-38(3)-9.

Полный текст статьи в формате pdf (на английском) Вернуться к содержанию тома