Я намагався попросити LLM допомогти з перевіркою коду, але це не вийшло добре.
Я хочу, щоб LLM міг помітити потенційні помилки в коді або навіть надати пропозиції щодо оптимізації.
Жоден із LLM, який я тестував, не зміг вирішити досить простий випадок (gpt-4, o1, claude, qwen…)
Ось приклад коду в PHP:
echo $data->status?->id == 4 ? "член1" : "non-member1";
echo !empty($data->status->id) && $data->status->id == 5 ? "член2" : "non-member2";
tldr: LLM повинен сказати мені, що другий зразок безпечніший, але він робить навпаки
Я спробував:
# перша спроба
яка різниця між цими зразками коду?
перший зразок: {{sample1}}
другий зразок: {{sample2}}
# перша відповідь (яка, до речі, є хибною)
Перший зразок безпечніший, оскільки він обробляє випадок, коли $data->status може бути нульовим.
Другий зразок не обробляє випадок, коли $data->status може бути нульовим, і видає помилку в такому випадку сценарій.
# моя відповідь (тоді LLM погоджується)
здається, ви помиляєтеся щодо другого прикладу, ви сказали «Видає помилку, якщо $data->status є нульовим»."
але функція 'empty' PHP також перевіряє, чи встановлено дані, чи не так?
# друга спроба
Я маю цей код зразки.
визначте концепцію та використовувані функції.
покажіть мені різницю між зразками.
перший зразок: {{sample1}}
другий зразок: {{sample2}}
# відповідь є більш складною, але загалом така сама неправильна відповідь, як і раніше