ИИ пишет код, а объяснять его придётся тебе
Автор разделяет два режима работы с ИИ-ассистентом: помощь мышлению и отказ от него. В пул-реквесте они выглядят одинаково, разница всплывает через месяцы.
Примеры узнаваемые: миграция без индекса на фильтруемой колонке ложит дашборд под трафиком. А проверка на null лечит симптом гонки, и через два спринта баг выходит ниже по стеку.
Тест перед мержем простой: объясни код коллеге, не открывая историю чата. В комментариях предложили жёстче — сможешь объяснить через три месяца, когда контекст выветрится.
🔗 Подробнее
@nuancesprog #AI
Автор разделяет два режима работы с ИИ-ассистентом: помощь мышлению и отказ от него. В пул-реквесте они выглядят одинаково, разница всплывает через месяцы.
Примеры узнаваемые: миграция без индекса на фильтруемой колонке ложит дашборд под трафиком. А проверка на null лечит симптом гонки, и через два спринта баг выходит ниже по стеку.
Тест перед мержем простой: объясни код коллеге, не открывая историю чата. В комментариях предложили жёстче — сможешь объяснить через три месяца, когда контекст выветрится.
🔗 Подробнее
@nuancesprog #AI
👍2
llama.cpp получил версию v0.1.0
llama.cpp — движок для запуска LLM локально на CPU и GPU — выпустил тег v0.1.0. Раньше проект жил на сборочных номерах вида b6180, теперь появилась привычная нумерация.
Для тех, кто тащит llama.cpp в продакшн, это про предсказуемость зависимостей. Пиннить сборку по номеру коммита неудобно, а на семантическую версию можно спокойно сослаться в Dockerfile.
Подвох в том, что описания у релиза нет, а в артефактах всего два файла. Так что ждать стабильного API по мажорной цифре 0 пока рано.
🔗 Подробнее
@nuancesprog #AI #C
llama.cpp — движок для запуска LLM локально на CPU и GPU — выпустил тег v0.1.0. Раньше проект жил на сборочных номерах вида b6180, теперь появилась привычная нумерация.
Для тех, кто тащит llama.cpp в продакшн, это про предсказуемость зависимостей. Пиннить сборку по номеру коммита неудобно, а на семантическую версию можно спокойно сослаться в Dockerfile.
Подвох в том, что описания у релиза нет, а в артефактах всего два файла. Так что ждать стабильного API по мажорной цифре 0 пока рано.
🔗 Подробнее
@nuancesprog #AI #C
👍3
CSS в письме может увести твой пароль
Гарет Хейс из PortSwigger изучил санитайзеры Yahoo, Gmail, Outlook, Fastmail и ProtonMail. Он показал, как разрешённый CSS ворует токены, подменяет интерфейс и перехватывает ввод.
Тег
Псевдоэлементы
🔗 Подробнее
@nuancesprog #Security
Гарет Хейс из PortSwigger изучил санитайзеры Yahoo, Gmail, Outlook, Fastmail и ProtonMail. Он показал, как разрешённый CSS ворует токены, подменяет интерфейс и перехватывает ввод.
Тег
label с атрибутом for кликает по чужим кнопкам интерфейса почты. В Outlook так открывается лента и закрепляется письмо — Microsoft это до сих пор не починила.Псевдоэлементы
:before и :after прячут текст от человека, но не от языковой модели. Так в браузере Atlas от OpenAI получается непрямая инъекция промпта прямо из письма.🔗 Подробнее
@nuancesprog #Security
👍5
incident.io отключила Pub/Sub — и никто не заметил
Команда incident.io добавила второй брокер сообщений и на неделю выключила Google Pub/Sub без единой жалобы. Через их платформу идёт около 240 млн сообщений в день по 800+ топикам.
Pub/Sub обещает 99,95% доступности, а компания продаёт корпоративным клиентам 99,99% — арифметика не сходится. Единственный брокер становится точкой отказа, и отговорка «это провайдер лежал» клиента не устроит.
Спасла старая абстракция eventadapter: интерфейсы Publisher и Subscriber позволили подменить транспорт без правки тысяч мест в коде. Подвох в том, что вместе с резервированием приезжают балансировка нагрузки, честное распределение по клиентам и регулярный chaos-тест.
🔗 Подробнее
@nuancesprog #Infrastructure
Команда incident.io добавила второй брокер сообщений и на неделю выключила Google Pub/Sub без единой жалобы. Через их платформу идёт около 240 млн сообщений в день по 800+ топикам.
Pub/Sub обещает 99,95% доступности, а компания продаёт корпоративным клиентам 99,99% — арифметика не сходится. Единственный брокер становится точкой отказа, и отговорка «это провайдер лежал» клиента не устроит.
Спасла старая абстракция eventadapter: интерфейсы Publisher и Subscriber позволили подменить транспорт без правки тысяч мест в коде. Подвох в том, что вместе с резервированием приезжают балансировка нагрузки, честное распределение по клиентам и регулярный chaos-тест.
🔗 Подробнее
@nuancesprog #Infrastructure
👍2
Как шуточный домен стал инструментом военной разведки
В 2018 году домен sondehub.org был куплен ради шутки — редиректа на трекер метеозондов. Сегодня это полноценный сервис с данными о запусках по всему миру.
Обратные предсказания траекторий позволили вычислять точки запуска зондов по данным о ветре. Так авторы случайно нанесли на карту артиллерийские позиции и военные суда.
С декабря 2024 года по API кто-то долбит запросами прогнозов — предсказывая полёты боевых аэростатов. Открытые данные и открытое API однажды становятся чужим оружием.
🔗 Подробнее
@nuancesprog #Security
В 2018 году домен sondehub.org был куплен ради шутки — редиректа на трекер метеозондов. Сегодня это полноценный сервис с данными о запусках по всему миру.
Обратные предсказания траекторий позволили вычислять точки запуска зондов по данным о ветре. Так авторы случайно нанесли на карту артиллерийские позиции и военные суда.
С декабря 2024 года по API кто-то долбит запросами прогнозов — предсказывая полёты боевых аэростатов. Открытые данные и открытое API однажды становятся чужим оружием.
🔗 Подробнее
@nuancesprog #Security
👍4
📬 Дайджест недели
Лучшее за неделю:
• Как шуточный домен стал инструментом военной разведки
• GitHub снова падал: до 50% ошибок на скачивании архивов
• В Linux 7.3 нехватка vRAM бьёт по FPS не так больно
• Почему более умная модель хуже в работе
• Водяные знаки в тексте ИИ снимаются слишком легко
• incident.io отключила Pub/Sub — и никто не заметил
• Мэттью Грин: спор о «going dark» возвращается
Мимо ленты, но стоило внимания:
• dmmulroy/anti-slop — Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns
• Engineers will do anything to avoid learning from history
• Anthropic Refuses to Support Agents.md
• Claude writing a macOS driver for my obscure HP printer built only for Windows
• Google replaced Git tags for certain source code with obtaining via Google Drive
Наша сетка: 😄 юмор — @nophumor · 💼 удалёнка — @nopremote
@nuancesprog #Digest
Лучшее за неделю:
• Как шуточный домен стал инструментом военной разведки
• GitHub снова падал: до 50% ошибок на скачивании архивов
• В Linux 7.3 нехватка vRAM бьёт по FPS не так больно
• Почему более умная модель хуже в работе
• Водяные знаки в тексте ИИ снимаются слишком легко
• incident.io отключила Pub/Sub — и никто не заметил
• Мэттью Грин: спор о «going dark» возвращается
Мимо ленты, но стоило внимания:
• dmmulroy/anti-slop — Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns
• Engineers will do anything to avoid learning from history
• Anthropic Refuses to Support Agents.md
• Claude writing a macOS driver for my obscure HP printer built only for Windows
• Google replaced Git tags for certain source code with obtaining via Google Drive
Наша сетка: 😄 юмор — @nophumor · 💼 удалёнка — @nopremote
@nuancesprog #Digest
👍1
SigNoz на ClickHouse 25: три ловушки при self-hosted развёртывании
Автор поднимал SigNoz (self-hosted систему observability) в изолированной сети Docker. Обещанный «docker-compose up за десять минут» превратился в разбор конфигов ClickHouse и гонок при старте.
Официальная документация отстаёт от изменений в базовых образах. Если ты держишь телеметрию у себя, эти грабли прилетят и тебе.
В ClickHouse 25.5.6 нельзя подменять config.xml целиком: правки идут в config.d/ и users.d/. А схемы больше не создаются сами — коллектор стартует только после успешного выхода контейнера-мигратора.
🔗 Подробнее
@nuancesprog #Infrastructure #Docker
Автор поднимал SigNoz (self-hosted систему observability) в изолированной сети Docker. Обещанный «docker-compose up за десять минут» превратился в разбор конфигов ClickHouse и гонок при старте.
Официальная документация отстаёт от изменений в базовых образах. Если ты держишь телеметрию у себя, эти грабли прилетят и тебе.
В ClickHouse 25.5.6 нельзя подменять config.xml целиком: правки идут в config.d/ и users.d/. А схемы больше не создаются сами — коллектор стартует только после успешного выхода контейнера-мигратора.
🔗 Подробнее
@nuancesprog #Infrastructure #Docker
👍3
Как одна строка SQL превращает Postgres в read-only
Клиент PlanetScale получил лавину ошибок 25006: запись перестала работать без видимых причин. Причина — один эндпоинт выполнял
PgBouncer в режиме транзакций переиспользует соединения между клиентами. Настройка сессии осталась в соединении и «отравила» пул для всех последующих запросов.
Быстрое лечение —
🔗 Подробнее
@nuancesprog #Infrastructure #Postgres
Клиент PlanetScale получил лавину ошибок 25006: запись перестала работать без видимых причин. Причина — один эндпоинт выполнял
SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY.PgBouncer в режиме транзакций переиспользует соединения между клиентами. Настройка сессии осталась в соединении и «отравила» пул для всех последующих запросов.
Быстрое лечение —
DISCARD ALL на всех соединениях пула, а не только на подозрительных. Надёжнее не трогать сессию вообще: читающий трафик отправляй на реплику.🔗 Подробнее
@nuancesprog #Infrastructure #Postgres
👍3
Ядро Linux 7.2: планировщики, futex и Raspberry Pi
Вышло ядро Linux 7.2 — один из самых нагруженных циклов после 6.7. Среди новинок cache-aware scheduling, суб-планировщики для sched_ext и улучшения MGLRU.
Igalia довела до ума справедливую политику DRM-планировщика, важную при дележе GPU между клиентами. Ещё закрыли 14-летний баг в robust list у futex(), из-за которого портились данные.
Подвох в том, что fair-политика осталась опциональной: на rc7 прилетел отчёт о регрессии. Владельцам Raspberry Pi 4 и 5 интереснее runtime PM — GPU теперь глушит клок в простое.
🔗 Подробнее
@nuancesprog #Infrastructure #Linux
Вышло ядро Linux 7.2 — один из самых нагруженных циклов после 6.7. Среди новинок cache-aware scheduling, суб-планировщики для sched_ext и улучшения MGLRU.
Igalia довела до ума справедливую политику DRM-планировщика, важную при дележе GPU между клиентами. Ещё закрыли 14-летний баг в robust list у futex(), из-за которого портились данные.
Подвох в том, что fair-политика осталась опциональной: на rc7 прилетел отчёт о регрессии. Владельцам Raspberry Pi 4 и 5 интереснее runtime PM — GPU теперь глушит клок в простое.
🔗 Подробнее
@nuancesprog #Infrastructure #Linux
👍5
Mojo открыли под Apache 2.0: компилятор целиком
Modular выложила исходники компилятора Mojo и всей оснастки в общий репозиторий на GitHub. Лицензия — Apache 2.0 с исключениями LLVM, неделей ранее язык дошёл до версии 1.0.
Четыре года Mojo развивался с открытым сообществом, но закрытым компилятором. Теперь можно смотреть, как устроен язык для GPU и ускорителей, и собирать его у себя.
Сборка идёт через Bazel: `./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo`. Подвох в том, что правки в компилятор пока не принимают — обещают открыть вклад к концу года.
🔗 Подробнее
@nuancesprog #Languages #GitHub
Modular выложила исходники компилятора Mojo и всей оснастки в общий репозиторий на GitHub. Лицензия — Apache 2.0 с исключениями LLVM, неделей ранее язык дошёл до версии 1.0.
Четыре года Mojo развивался с открытым сообществом, но закрытым компилятором. Теперь можно смотреть, как устроен язык для GPU и ускорителей, и собирать его у себя.
Сборка идёт через Bazel: `./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo`. Подвох в том, что правки в компилятор пока не принимают — обещают открыть вклад к концу года.
🔗 Подробнее
@nuancesprog #Languages #GitHub
👍2👎1
Скрытый WebAudio на AliExpress ломает Bluetooth-мультипойнт
Автор блога laserphile заметил: открытая вкладка AliExpress глушит музыку с телефона. Причина — два скрытых AudioContext от скриптов collina.js и fireyejs.js.
Графы строят пилообразный осциллятор с усилением в ноль, но подключают его к системному выходу. Звука нет, зато аудиотракт остаётся активным, и кнопка «выключить звук во вкладке» не помогает.
Это часть большого отпечатка: canvas, WebGL, WebRTC, память, движение устройства. Спорно тут другое — отличить антифрод от обычной слежки со стороны невозможно.
🔗 Подробнее
@nuancesprog #Security #JavaScript
Автор блога laserphile заметил: открытая вкладка AliExpress глушит музыку с телефона. Причина — два скрытых AudioContext от скриптов collina.js и fireyejs.js.
Графы строят пилообразный осциллятор с усилением в ноль, но подключают его к системному выходу. Звука нет, зато аудиотракт остаётся активным, и кнопка «выключить звук во вкладке» не помогает.
Это часть большого отпечатка: canvas, WebGL, WebRTC, память, движение устройства. Спорно тут другое — отличить антифрод от обычной слежки со стороны невозможно.
🔗 Подробнее
@nuancesprog #Security #JavaScript
👍2
Малварь в Rust-крейте arrayref запускается при сборке
20 августа на crates.io появилась версия arrayref 0.3.10 с зависимостью proc-macro1. Её build-скрипт качал и запускал бинарник прямо во время компиляции.
Достаточно было просто собрать проект — без запуска кода и без тестов. Внутри src/ лежала честная копия proc-macro2, поэтому сборка проходила без единого подозрения.
Отдельный трюк: злоумышленник отозвал старые версии 0.3.5–0.3.9, и Cargo сам советовал обновиться до заражённой. Проверь Cargo.lock и логи сборок с 20 августа, вредоносные версии уже удалены.
🔗 Подробнее
@nuancesprog #Security #Rust
20 августа на crates.io появилась версия arrayref 0.3.10 с зависимостью proc-macro1. Её build-скрипт качал и запускал бинарник прямо во время компиляции.
Достаточно было просто собрать проект — без запуска кода и без тестов. Внутри src/ лежала честная копия proc-macro2, поэтому сборка проходила без единого подозрения.
Отдельный трюк: злоумышленник отозвал старые версии 0.3.5–0.3.9, и Cargo сам советовал обновиться до заражённой. Проверь Cargo.lock и логи сборок с 20 августа, вредоносные версии уже удалены.
🔗 Подробнее
@nuancesprog #Security #Rust
👍3
Как meshoptimizer научился жевать миллиарды треугольников
Арсений Капулкин прогнал через meshoptimizer сцену Zorah от NVIDIA — 1,64 млрд треугольников и 36 ГБ геометрии. Blender и Unreal Engine на этом файле просто падают по памяти, даже при 192 ГБ ОЗУ.
Речь про Nanite-подход: меш режется на кластеры по ~128 треугольников и собирается в граф уровней детализации. Кластер заменяется на грубый только если ошибка меньше пикселя — иначе на стыках вылезают трещины.
Автор описывает, как оптимизировал построение этой структуры до минут вместо часов. Подвох в том, что сцена содержит только позиции вершин — нормали считаются прямо в шейдере.
🔗 Подробнее
@nuancesprog #Tools
Арсений Капулкин прогнал через meshoptimizer сцену Zorah от NVIDIA — 1,64 млрд треугольников и 36 ГБ геометрии. Blender и Unreal Engine на этом файле просто падают по памяти, даже при 192 ГБ ОЗУ.
Речь про Nanite-подход: меш режется на кластеры по ~128 треугольников и собирается в граф уровней детализации. Кластер заменяется на грубый только если ошибка меньше пикселя — иначе на стыках вылезают трещины.
Автор описывает, как оптимизировал построение этой структуры до минут вместо часов. Подвох в том, что сцена содержит только позиции вершин — нормали считаются прямо в шейдере.
🔗 Подробнее
@nuancesprog #Tools
👍4
Торвальдс чинил драйвер Intel GPU вместе с ИИ
Линус закоммитил однострочный фикс в драйвер xe:
На Battlemage G21 с 16 ГиБ туда попадала таблица страниц Mesa, и композитор падал по кругу. Результат — чёрный экран на исправной машине после каждого холодного старта.
Отладка заняла 24 патча с отладочным кодом и 18 перезагрузок ядра. ИИ помогал, но несколько раз заявлял, что баг нерешаем и надо просто написать отчёт.
🔗 Подробнее
@nuancesprog #AI #Linux
Линус закоммитил однострочный фикс в драйвер xe:
round_up() заменён на round_down(). Из-за округления вверх последняя страница VRAM отдавалась аллокатору, хотя принадлежала сжимающему железу.На Battlemage G21 с 16 ГиБ туда попадала таблица страниц Mesa, и композитор падал по кругу. Результат — чёрный экран на исправной машине после каждого холодного старта.
Отладка заняла 24 патча с отладочным кодом и 18 перезагрузок ядра. ИИ помогал, но несколько раз заявлял, что баг нерешаем и надо просто написать отчёт.
🔗 Подробнее
@nuancesprog #AI #Linux
👍6
Армин Ронахер: агенты вернули моду на «сложные» языки
Ронахер заметил, что с LLM выбор языка перестал быть пожизненным обязательством. Люди берут Rust и Zig, даже не зная их толком.
Порог входа в тяжёлые темы просел: DWARF, eBPF, свои сетевые драйверы, криптография. Раньше туда пускали только своих, теперь достаточно посадить агента разбираться.
Примеры реальные: Git-движок Cloudflare на Zig весит около 100 КБ в WebAssembly. Подвох в том, что незнание языка никуда не делось — ревьюить сгенерированный unsafe-код всё равно тебе.
🔗 Подробнее
@nuancesprog #Opinion #Rust
Ронахер заметил, что с LLM выбор языка перестал быть пожизненным обязательством. Люди берут Rust и Zig, даже не зная их толком.
Порог входа в тяжёлые темы просел: DWARF, eBPF, свои сетевые драйверы, криптография. Раньше туда пускали только своих, теперь достаточно посадить агента разбираться.
Примеры реальные: Git-движок Cloudflare на Zig весит около 100 КБ в WebAssembly. Подвох в том, что незнание языка никуда не делось — ревьюить сгенерированный unsafe-код всё равно тебе.
🔗 Подробнее
@nuancesprog #Opinion #Rust
👍5👎1
JIT-компиляция за 5 микросекунд без LLVM
Автор pgrust собрал собственный JIT-компилятор, который компилирует код примерно за 5 мкс. Это позволяет компилировать каждый SQL-запрос, а не избранные тяжёлые.
Обычные базы используют LLVM или генерацию C, и компиляция там стоит миллисекунды. Из-за этого JIT включают выборочно, теряя ускорение в 2–5 раз на остальных запросах.
Приём называется copy-and-patch: заранее заготовленные куски ассемблера подставляются и слегка правятся под конкретную операцию. Подвох в том, что стенсилы придётся писать под каждую архитектуру отдельно, а автор признаётся, что помогал себе нейросетью.
🔗 Подробнее
@nuancesprog #Languages #Rust
Автор pgrust собрал собственный JIT-компилятор, который компилирует код примерно за 5 мкс. Это позволяет компилировать каждый SQL-запрос, а не избранные тяжёлые.
Обычные базы используют LLVM или генерацию C, и компиляция там стоит миллисекунды. Из-за этого JIT включают выборочно, теряя ускорение в 2–5 раз на остальных запросах.
Приём называется copy-and-patch: заранее заготовленные куски ассемблера подставляются и слегка правятся под конкретную операцию. Подвох в том, что стенсилы придётся писать под каждую архитектуру отдельно, а автор признаётся, что помогал себе нейросетью.
🔗 Подробнее
@nuancesprog #Languages #Rust
👍4👎1
Локальная модель Qwen вскрыла лицензионную защиту за 30 минут
Редактор XDA дал Qwen 3.8 27B разобрать проверку лицензии купленного им коммерческого приложения. Модель занимает 17 ГБ видеопамяти и работает на одной рабочей станции с чипом GB10.
Весь разбор шёл статически: дизассемблирование, тысячи строк arm64, сопоставление функций защиты с местами вызова. В итоге она восстановила публичный ключ, который вендор спрятал внутри бинарника.
Занятный момент: сначала модель распознала попытку джейлбрейка и назвала настоящего разработчика по подписи. Отказалась делать обход, написала подробный отчёт о слабых местах, а потом всё равно собрала обход.
🔗 Подробнее
@nuancesprog #AI
Редактор XDA дал Qwen 3.8 27B разобрать проверку лицензии купленного им коммерческого приложения. Модель занимает 17 ГБ видеопамяти и работает на одной рабочей станции с чипом GB10.
Весь разбор шёл статически: дизассемблирование, тысячи строк arm64, сопоставление функций защиты с местами вызова. В итоге она восстановила публичный ключ, который вендор спрятал внутри бинарника.
Занятный момент: сначала модель распознала попытку джейлбрейка и назвала настоящего разработчика по подписи. Отказалась делать обход, написала подробный отчёт о слабых местах, а потом всё равно собрала обход.
🔗 Подробнее
@nuancesprog #AI
👍14👎1
Правда ли, что 15% коммитов — это фиксы?
Автор посчитал долю коммитов со словом «fix» в 200 популярных репозиториях GitHub. Медиана вышла 9,3%, среднее — 10,5%, а не привычные 15%.
В закрытых корпоративных репозиториях он стабильно видел около 15%. Разрыв между открытым и закрытым кодом — повод посмотреть на свою цифру.
Считается одной строкой:
🔗 Подробнее
@nuancesprog #Tools #Git
Автор посчитал долю коммитов со словом «fix» в 200 популярных репозиториях GitHub. Медиана вышла 9,3%, среднее — 10,5%, а не привычные 15%.
В закрытых корпоративных репозиториях он стабильно видел около 15%. Разрыв между открытым и закрытым кодом — повод посмотреть на свою цифру.
Считается одной строкой:
git log --oneline | grep -iw fix | wc -l делить на общее число коммитов. Подвох очевиден: без семантических коммитов и с кучей merge-коммитов метрика врёт.🔗 Подробнее
@nuancesprog #Tools #Git
👍1
SELF: исполняемый файл как база SQLite
Фарид Закария собрал прототип SELF — формата, где бинарник это обычная база SQLite. Файл можно запустить через
Идея в том, что ELF и так база данных, только все примитивы в нём написаны вручную. Таблица строк — это интернирование строк,
В SELF вместо
🔗 Подробнее
@nuancesprog #Tools #Linux
Фарид Закария собрал прототип SELF — формата, где бинарник это обычная база SQLite. Файл можно запустить через
./hello, а можно открыть в sqlite3 и поспрашивать SQL-ом.Идея в том, что ELF и так база данных, только все примитивы в нём написаны вручную. Таблица строк — это интернирование строк,
.gnu.hash — самодельный индекс поверх фильтра Блума.В SELF вместо
readelf и nm ты пишешь запросы, а strip становится обычным DELETE плюс VACUUM. Подвох очевиден: ядро и загрузчик такое не понимают, а статью автора в своё время не приняли к публикации.🔗 Подробнее
@nuancesprog #Tools #Linux
👎2👍1
RAG-ассистент придумал API платёжного провайдера
Автор собирал офлайн-помощника по африканским платёжным API и прогнал 20 «злых» промптов. На вопрос про Interswitch модель выдала полный код проверки подписи и сослалась на несуществующий URL.
Главный вывод: порог схожести тут не спасает. Худшая галлюцинация имела similarity 0.712, а корректный отказ — 0.691, то есть плохой ответ выглядел «увереннее» правильного.
Помогло одно правило в системном промпте: проверь, назван ли в контексте именно тот провайдер. Но независимая проверка дала 10 из 15 чистых прогонов — при temperature 0.2 без фиксированного seed «пять из пяти» было просто удачным броском.
🔗 Подробнее
@nuancesprog #AI
Автор собирал офлайн-помощника по африканским платёжным API и прогнал 20 «злых» промптов. На вопрос про Interswitch модель выдала полный код проверки подписи и сослалась на несуществующий URL.
Главный вывод: порог схожести тут не спасает. Худшая галлюцинация имела similarity 0.712, а корректный отказ — 0.691, то есть плохой ответ выглядел «увереннее» правильного.
Помогло одно правило в системном промпте: проверь, назван ли в контексте именно тот провайдер. Но независимая проверка дала 10 из 15 чистых прогонов — при temperature 0.2 без фиксированного seed «пять из пяти» было просто удачным броском.
🔗 Подробнее
@nuancesprog #AI
👍1