Ваш LLM пишет API, которых не существует. Рафф не может сказать. Это может. По данным измеренных исследований, использование устаревших API в коде, сгенерированном LLM, составляет 25–38% для 7 моделей. Это не проблема опечатки — это проблема проверки. Ваш линтер проверяет ваш ко...
Ваш LLM пишет API, которых не существует. Рафф не может сказать. Это может.
По данным измеренных исследований, использование устаревших API в коде, сгенерированном LLM, составляет 25–38% для 7 моделей. Это не проблема опечатки — это проблема проверки. Ваш линтер проверяет ваш код на соответствие фиксированному списку правил. Он не может ответить на два вопроса, которые действительно имеют значение, когда код написан с помощью модели:
Существует ли этот API на самом деле? Модель может придумать запросы.post_json — вполне правдоподобно, но полностью вымышленно. Ни в одном списке правил его нет, поэтому Рафф хранит молчание.
Этот настоящий API уже устарел? Устаревание — это свойство установленной библиотеки, а не вашего исходного текста. Механизму статических правил потребуется постоянно обновляемая база данных об устареваниях каждой библиотеки.
Я создал небольшой интерфейс командной строки, который отвечает обоим требованиям — проверяя на практике.
апираж
apimirage анализирует ваш файл с помощью ast, собирает все вызовы, сделанные через импортированное имя, затем проверяет каждый из них на подлинный импорт importlib и Inspect.signature. Ничего не выполняется — импорт используется только для проверки существования.
Ноль зависимостей. Только стандартная библиотека Python.
pip установить апимираж
Сканировать файл:
$ apimirage app.py
app.py:12: [призрак-api] Requests.post_j