Вам досталась чужая обработка на полторы тысячи строк. Её писали несколько лет, автор уволился, документации нет. Чтобы понять, что она делает, надо прочитать её целиком.
Эта обработка читает её за вас и отвечает на три вопроса: что этот код делает, что в нём не так и с чего начинать чинить. Полторы тысячи строк разбираются за четыре-пять минут - против часа чтения глазами.
Всё считается на вашей машине. Ни одной строки вашего кода в интернет не уходит.
Как это устроено, и почему именно так
Внутри две части, и они делают разную работу.
Движок ищет. Это обычный анализатор без всякого ИИ: лексер, парсер, таблица типов переменных, 37 правил. На одном и том же коде он всегда даёт один и тот же ответ. Находка, её правило, уровень, номер строки и способ починки приходят от него и проверяемы.
Локальная модель объясняет уже найденное человеческими словами: что именно не так в этом конкретном месте и чем это кончится на рабочих данных. Её ответы помечены отдельным бейджем.
Разделение сделано не для красоты. Мы замерили, как локальные модели ищут дефекты сами: на 18 фрагментах с заранее известными дефектами они нашли ноль и семнадцать раз ответили, что код корректен. Модель, которой дали искать, будет успокаивать вас на любом коде. Модель, которой дали объяснять готовую находку, не может выдумать дефект: находка пришла снаружи.
Что вы получаете на выходе
Три отчёта на трёх закладках.
1. Отчёт по логике. Что обработка делает, как устроен поток данных и с чего начинать чтение, если вам её сопровождать. Это то, ради чего обычно тратят полдня на чтение чужого кода.
2. Отчёт по коду. Каждая находка отдельной карточкой: уровень (Blocker, Critical, Major, Minor, Info), правило, модуль, номер строки, процедура. Внутри карточки три блока - объяснение модели на вашем коде, фрагмент кода вокруг находки с подсветкой строки, и способ починки.
3. Рекомендации и оценка. Индекс качества от 0 до 100, светофор, технический долг в минутах и план: что чинить в первую очередь, с номерами строк и готовым способом.
Способ починки печатает движок, а не модель
Это отдельное решение, и оно стоит объяснения, потому что выглядит как ограничение, а на деле защита.
Мы дали модели задачу предложить исправленный код и получили ноль годных вариантов из девяти. Она изобретала методы, которых в платформе нет: ЗавершитьТранзакцию, КонецИсключения, Запрос.Параметры.Добавить. На прогоне по чужому коду дважды предложила откатывать транзакцию в теле Попытки вместо фиксации - совет выглядит грамотно и откатывает каждую транзакцию.
Поэтому способ починки берётся из реестра правил и печатается дословно, с подписью "способ из реестра правил, не ответ модели". Модель пишет только диагноз.
Насколько можно доверять объяснениям
Проверяли механически, а не на глаз. Модель объясняет конкретный код, значит каждое имя, которое она называет, обязано быть в этом коде.
Прогон по ста внешним обработкам, которые писали разные люди годами, сто тысяч строк:
| Модулей разобрано | 159 |
| Находок | 1 135 |
| Падений движка | 0 |
| Номеров строк за пределами файла | 0 |
| Имён названо моделью | 71 |
| Из них реально есть в коде | 67 (94 %) |
| Выдумано с нуля | 0 |
Оставшиеся четыре имени - искажения формы: модель просклоняла идентификатор под фразу. Смысл верный, написание нет.
Читайте объяснения как объяснения, а не как приговор. Находки от движка проверяемы, объяснения от модели помечены и могут ошибаться. Мы это разделение держим намеренно и не смешиваем в одном абзаце.
Что нужно, чтобы это заработало
- Windows, 1С:Предприятие 8.3 (проверено на 8.3.20 и 8.3.27)
- около 5 ГБ свободного места
- Ollama - бесплатная, ставится сама скриптом из комплекта
- видеокарта не обязательна, но с ней ответ в разы быстрее
В комплекте лежит setup-ollama.bat. Он проверяет место на диске, ставит Ollama, поднимает сервис, качает модель и проверяет связку боем: задаёт модели контрольный вопрос и ждёт ответа. Пока модель не ответила, он не напишет, что всё готово.
Модель качается один раз, 4,7 ГБ, бесплатно. Подписок и токенов нет.
Про скорость и железо
Модель весит 4,7 ГБ, и это главный вопрос к железу: целиком она помещается в карту от 6 ГБ видеопамяти.
Прогон, который вы видите на скриншотах: движок отработал за секунды и нашёл шесть находок, модель объяснила пять из них - столько стоит по умолчанию, - и написала отчёт по логике. Одно объяснение это отдельный вызов модели, от 14 до 45 секунд. Рекомендации считаются мгновенно: их пишет не модель, а реестр правил. Весь разбор занял 5 минут 11 секунд.
Минуты, а не секунды - это цена локальной модели, которая не выдумывает. Если нужно быстрее, уменьшите в настройках число объясняемых находок: на объяснения уходит три четверти всего времени, остальное считается почти мгновенно.
Без видеокарты тоже работает, просто медленнее: считает процессор. На карте поменьше модель считается частично на процессоре - работает, но время растёт.
Хотите быстрее и готовы к менее точным объяснениям - в настройках можно указать модель поменьше, обработка запустится с любой установленной. Она честно предупредит в строке состояния: мелкие модели на замере выдумывали дефекты на заведомо чистом коде, поэтому штатной оставлена семёрка.
Если в отделе есть одна машина с приличной картой, она обслужит всех: адрес сервиса задаётся в настройках, ставить модель каждому не нужно.
Как пользоваться
Открываете обработку, на закладке "Код" два поля: модуль объекта и модуль формы. Вставляете текст из конфигуратора, жмёте "Проанализировать".
Модули разбираются по отдельности, и это важно: номера строк в находках совпадают с тем, что вы видите у себя в конфигураторе. Если склеить два модуля в один текст, нумерация второго уедет на длину первого, и указание на строку потеряет смысл.
Заполнять можно и одно поле, если разбираете только один модуль.
Строка над закладками сама показывает состояние сервиса и то, какая модель выбрана - нажимать для этого ничего не надо.
Чего эта обработка не делает
- не ищет дефекты моделью и не выдаёт её догадки за находки;
- не правит ваш код - только читает вставленный текст;
- не подключается к вашей базе и не читает данные;
- не отправляет ничего в интернет;
- не разбирает
.epfсама: модули вставляются текстом.
Встроенная справка
На пятой закладке лежат ответы на частые вопросы: уходит ли код наружу, нужна ли видеокарта, почему модель не ищет сама, можно ли доверять объяснениям, что делать, если Ollama не поднялась. Отдельно открывать ничего не надо.
Что в комплекте
AnalizKodaAI.epf- сама обработкаsetup-ollama.bat- установка и проверка одним запускомREADME.txt- что нужно, как пользоваться, что делать, если не работает
Модель в комплект не входит и входить не может: она весит 4,7 ГБ и качается напрямую из реестра Ollama. Лицензия Apache 2.0, коммерческое использование разрешено.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.22.159
Вступайте в нашу телеграмм-группу Инфостарт