Вопрос проверяет понимание особенностей применения Retrieval-Augmented Generation (RAG) к legacy-кодовой базе в сравнении с обычными документами.
Retrieval-Augmented Generation (RAG) — это подход, при котором языковая модель дополняется поиском релевантной информации из внешнего источника. При работе с legacy-кодовой базой возникают дополнительные сложности по сравнению со стандартными документами, так как код имеет свою структуру, синтаксис и семантику.
Для эффективного RAG по legacy-коду нужно:
# Пример чанка для RAG с метаданными
{
"id": "func_123",
"file": "src/legacy/module.py",
"type": "function",
"name": "calculate_total",
"dependencies": ["get_discount", "apply_tax"],
"content": "def calculate_total(items):\n total = sum(item.price for item in items)\n discount = get_discount(total)\n return apply_tax(total - discount)"
}Применение RAG к legacy-коду требует более тщательной подготовки данных: структурированного чанкинга, обогащения метаданными и использования специализированных моделей. Это позволяет получать релевантные ответы, учитывающие контекст и зависимости, что особенно полезно при рефакторинге, поиске багов или документировании старого кода.