и посмотреть медиа
S0ER - архитектура и кодинг
и посмотреть медиа
Материалы по архитектуре ПО, программированию и карьерному росту в IT.
Материалы по архитектуре ПО, программированию и карьерному росту в IT.
S0ER фокусируется на архитектуре программного обеспечения, программировании и профессиональном развитии. Канал предлагает глубокие разборы, примеры кода и стратегии для продвижения в IT-сфере.
Промпт для исправления ошибок в коде Некоторое время использую 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.
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!