Preview

Труды Института системного программирования РАН

Расширенный поиск

Автодополнение кода на основе LLM для языка программирования Python

https://doi.org/10.15514/ISPRAS-2026-38(3)-9

Аннотация

Автодополнение кода является ключевой функцией интегрированных сред разработки (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 при использовании предложенного метода.

Об авторах

Михаил Валериевич ВОЛКОВ
Санкт-Петербургский государственный университет
Россия

Кандидат физико-математических наук, закончил физический факультет СПбГУ и аспирантуру Стокгольмского Университета. Занимался исследованиями в области квантовой механики. В данный момент профессиональные и научные интересы лежат в области разработки IDE, кодовых моделей и вывода типов для динамически типизированных языков.



Александр Сергеевич БОЖНЮК
Санкт-Петербургский государственный Университет
Россия

Программист в компании 2ГИС. Закончил математико-механический факультет СПбГУ по направлению «Программная инженерия», а также магистратуру на факультете Математики и Компьютерных Наук по направлению «Разработка ПО и науки о данных». В сферу научных и профессиональных интересов входит разработка инструментов статического анализа и рефакторингов кода, теория компиляции, теория виртуальных машин, внедрение LLM в бизнес-процессы.



Дарья Владимировна ВАСИНА
Университет ИТМО
Россия

Ведущий инженер Санкт-Петербургской лаборатории средств разработки облачного ПО. Окончила факультет компьютерных технологий и управления Университета ИТМО по направлению «Информатика и вычислительная техника». Специализируется на создании инструментов для разработки программного обеспечения с интеграцией технологий искусственного интеллекта.



Владимир Анатольевич ВАСИЛЬЕВ
Государственный университет «Дубна»
Россия

Магистр техники и технологий, закончил факультет системного анализа и управления государственного университета «Дубна» и аспирантуру УНЦ ОИЯИ. Более 15 лет занимается профессиональной разработкой в российских и международных коммерческих и научных организациях. Специализируется на проектировании и разработке комплексных программных продуктов и высоконагруженных систем, в том числе инструментов IDE.



Николай Владимирович ТРОПИН
Санкт-Петербургский государственный университет
Россия

Ведущий инженер команды Python IDE, закончил математико-механический факультет СПбГУ. Работает в области создания инструментов разработки с 2013 года.



Максим Борисович НИКИТИН
Университет ИТМО
Россия

Инженер в области машинного обучения, компания Яндекс. Окончил Санкт-Петербургский государственный университет по направлению «Математика, алгоритмы и анализ данных». В настоящее время обучается в Университете ИТМО по программе «Искусственный интеллект». В сферу его научных и профессиональных интересов входят искусственный интеллект, машинное обучение, обработка естественного языка и обучение с подкреплением.



Дмитрий Владимирович КОЗНОВ
Санкт-Петербургский государственный университет
Россия

Доктор технических наук, профессор кафедры системного программирования Санкт-Петербургского государственного университета. Сфера научных интересов: программная инженерия, модельно-ориентированная разработка программного обеспечения, программные данные, машинное обучение.



Список литературы

1. Amann S., Proksch S., Nadi S., Mezini M. A study of visual studio usage in practice. In 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1, 2016, pp. 124‑134.

2. Semenkin A., Bibaev V., Sokolov Y., Krylov K., Kalina A., Khannanova A., Savenkov D., Rovdo D., Davidenko I., Karnaukhov K., Vakhrushev M., Kostyukov M., Podvitskii M., Surkov P., Golubev Y., Povarov N., Bryksin T. Full line code completion: Bringing AI to desktop. arXiv preprint arXiv:2405.08704, 2024.

3. Korada L. GitHub Copilot: The disrupting AI companion transforming the developer role and application lifecycle management. Journal of Artificial Intelligence & Cloud Computing, vol. 3, pp. 1‑4, 2024.

4. Biswas S. Tabnine AI tool and comparison with similar tools, 2023.

5. Ramamoorthy L. AI for software engineering – enhancing developer experience with Codeium and Copilot. International Journal of Science and Research (IJSR), vol. 14, 2025.

6. Chen M. et al. Evaluating large language models trained on code. arXiv preprint arXiv:2107.03374, 2021.

7. Zhang F., Chen B., Zhang Y., Liu J., Zan D., Mao Y., Lou J., Chen W. RepoCoder: Repository-level code completion through iterative retrieval and generation, arXiv preprint arXiv:2303.12570, 2023.

8. Liu T., Xu C. RepoBench: Benchmarking repository-level code auto‑completion systems, 2023.

9. Yu H., Shen B., Ran D., Zhang J., Zhang Q., Ma Y., Liang G., Li Y., Wang Q., Xie T. CoderEval: A benchmark of pragmatic code generation with generative pre‑trained models. In Proceedings of the IEEE/ACM 46th International Conference on Software Engineering (ICSE’24), 2024, Art. 37.

10. Ding Y. et al. CrossCodeEval: A diverse and multilingual benchmark for cross‑file code completion, arXiv preprint arXiv:2310.11248, 2023.

11. Liu W., Yu A., Zan D., Shen B., Zhang W., Zhao H., Jin Z., Wang Q. GraphCoder: Enhancing repository-level code completion via code context graph-based retrieval and language model, 2024.

12. Vasiliev R., Koznov D., Chernishev G., Khvorov A., Luciv D., Povarov N. TraceSim: a method for calculating stack trace similarity, pp. 25‑30, 2020.

13. Achiam J. et al. GPT‑4 technical report, 2023.

14. Husein R., Aburajouh H. Large language models for code completion: A systematic literature review. Computer Standards & Interfaces, 2024.

15. CodeGemma Team. CodeGemma: Open code models based on Gemma. arXiv preprint arXiv:2406.11409, 2024.

16. Hui B. et al. Qwen2.5‑Coder technical report. arXiv preprint arXiv:2409.12186, 2024.

17. Lewis P. et al. Retrieval‑augmented generation for knowledge‑intensive NLP tasks. In Proceedings of the 34th International Conference on Neural Information Processing Systems (NIPS’20), 2020, pp. 9459‑9474.

18. Lu S. et al. ReACC: A retrieval-augmented code completion framework, 2022, pp. 6227‑6240.

19. Kurbatova Z., Golubev Y., Kovalenko V., Bryksin T. The IntelliJ Platform: A framework for building plugins and mining software data, 2021, pp. 14‑17.

20. Vaswani A. et al. Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (NIPS’17), 2017, pp. 6000‑6010.

21. Scherbakov D., Hubig N., Jansari V., Bakumenko A., Lenert L. The emergence of large language models as a tool in literature reviews: an LLM‑automated systematic review. arXiv preprint arXiv:2409.04600, 2024.

22. Qiu J. et al. LLM‑based agentic systems in medicine and healthcare. Nature Machine Intelligence, vol. 6, 2024.

23. Lemieux C., Inala J.P., Lahiri S.K., Sen S. CodaMosa: Escaping coverage plateaus in test generation with pre‑trained large language models. In Proceedings of the 45th International Conference on Software Engineering (ICSE’23), 2023, pp. 919‑931.

24. Chow Y., Grazia L., Pradel M. PyTy: Repairing static type errors in Python, 2024, pp. 1‑13.

25. Bavarian M. et al. Efficient training of language models to fill in the middle. arXiv preprint arXiv:2207.14255, 2022.

26. Su Z., Devanbu P. On the localness of software. In Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering, 2014, pp. 269‑280.

27. Ding Y. et al. CoCoMic: Code completion by jointly modeling in‑file and cross‑file context. arXiv preprint arXiv:2212.10007, 2022.

28. Shrivastava D. et al. RepoFusion: Training code models to understand your repository. arXiv preprint arXiv:2306.10998, 2023.

29. Khandelwal U. et al. Generalization through memorization: Nearest neighbor language models, 2019.

30. Wang Y., Wang Y., Guo D., Chen J., Zhang R., Ma Y., Zheng Z. RLCoder: Reinforcement Learning for Repository-Level Code Completion. In 47th IEEE/ACM International Conference on Software Engineering (ICSE’25), 2025, pp. 1140–1152.

31. Phan H.N., Phan H.N., Nguyen T.N., Bui N.D.Q. RepoHyper: Better context retrieval is all you need for repository‑level code completion. arXiv preprint arXiv:2403.06095, 2024.

32. Robertson S., Walker S., Hancock‑Beaulieu M., Gatford M., Payne A., Okapi at TREC‑4, 1995.

33. Levenshtein V.I. Binary codes capable of correcting deletions, insertions and reversals. Soviet Physics Doklady, vol. 10, pp. 707‑710, 1966.

34. Terekhov A.N., Romanovskii K.Y., Koznov D.V., Dolgov P.S., Ivanov A.N. RTST++: Methodology and a CASE tool for the development of information systems and software for real‑time systems. Programming and Computer Software, vol. 25, no. 5, pp. 276‑281, 1999.

35. Koznov D.V., Peregudov A.F., Bugajchenko D.Y., Chernyatchik R.I., Kazakova A.S., Pavlinov A.A. Vizual’naya sreda proektirovaniya sistem televizionnogo veshchaniya. Sistemnoe programmirovanie, vol. 2, no. 1, pp. 142‑168, 2006.


Рецензия

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


ВОЛКОВ М.В., БОЖНЮК А.С., ВАСИНА Д.В., ВАСИЛЬЕВ В.А., ТРОПИН Н.В., НИКИТИН М.Б., КОЗНОВ Д.В. Автодополнение кода на основе LLM для языка программирования Python. Труды Института системного программирования РАН. 2026;38(3):153-170. https://doi.org/10.15514/ISPRAS-2026-38(3)-9

For citation:


VOLKOV M.V., BOZHNYUK A.S., VASINA D.V., VASILYEV V.A., TROPIN N.V., NIKITIN M.B., KOZNOV D.V. An Approach to LLM-based Code Completion for Python. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2026;38(3):153-170. (In Russ.) https://doi.org/10.15514/ISPRAS-2026-38(3)-9



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


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