и посмотреть медиа
S0ER - architecture and coding
и посмотреть медиа
Materials on software architecture, programming and career growth in IT.
Materials on software architecture, programming and career growth in IT.
S0ER focuses on software architecture, programming and professional development. The channel offers in-depth analyses, code examples and strategies for advancement in the IT field.
Промпт для исправления ошибок в коде Некоторое время использую QWEN3-Coder-480b-А35b-Instruct и QWEN Coder. Модель в чем-то хороша, в чем-то не очень. Хочу рассказать о своем опыте борьбы с неверным поведением модели. Когда ИИ генерирует программный код, он может допускать ошибки, как и обычный разработчик. Синтаксические проблемы исправляются довольно просто, но встречаются и более сложные случаи, связанные с семантикой. Хочу разобрать конкретный пример, который демонстрирует, насколько по-разному может работать ИИ в зависимости от формулировки промпта. Сообщение от интерпретатора выглядит так: Failed to run `config` for agentsoer.nvim vim/loader.lua:0: ...soer/projects/agentsoer.nvim/lua/agentsoer/engine/ai.lua:43: '' expected near 'function' # stacktrace: - vim/loader.lua:0 - lua/agentsoer/commands.lua:5 - lua/agentsoer/init.lua:4 - ~/.config/nvim/lua/plugins/init.lua:34 _in_ **config** - ~/.config/nvim/init.lua:17 На первый взгляд кажется, что это стандартная синтаксическая ошибка, но в действительности наша проблема связана с семантикой. Рассмотрим фрагмент кода, на который указывает интерпретатор: 42 local function handle_tool_call(tool_call) 43 if tool_call.function.name == "list_directory" then 44 local success, params = pcall(vim.fn.json_decode, tool_call.function.arguments) 45 if success then Особенность в том, что "function" здесь представляет собой имя поля в таблице, а не ключевое слово Lua для объявления функций. Это требование продиктовано не локальными особенностями, а спецификацией OpenAI API. Следовательно, ИИ должен не только диагностировать суть недочёта, но и предложить корректное решение. Например, вместо замены имени поля следует использовать обращение через квадратные скобки: ['function'].name.
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!