Найти в Дзене
Отвечает 24/7 и помогает с рутиной: как в Mindbox сделали ассистента поддержки на базе ИИ
Отвечает 24/7 и помогает с рутиной: как в Mindbox сделали ассистента поддержки на базе ИИ Mindbox рассказал, как они построили ИИ-ассистента поддержки на базе Retrieval-Augmented Generation (RAG), чтобы автоматизировать рутинные обращения. Бот закрывает 15–20% запросов, обеспечивает быстрое решение и CSAT около 90%, снизив нагрузку на команду. 🧠 RAG-подход: нейросеть ищет данные в базе знаний Mindbox и формирует ответы на их основе. 🗂 Тематические кластеры базы знаний: «Маркетинг», «Инструкции», «Разработка» упрощают поиск релевантных материалов. 🔄 Пять шагов обработки запроса: уточнение,...
2 месяца назад
Нечёткий поиск при пересечении множеств с помощью хэширования по сигнатуре в SQL
Нечёткий поиск при пересечении множеств с помощью хэширования по сигнатуре в SQL Статья рассказывает о реализации эффективного алгоритма нечёткого поиска между двумя множествами строк на базе хэширования по сигнатуре и интеграции этого решения в SQL Server с применением SQLCLR. 👉 Алгоритм основан на 32-битных сигнатурных хэшах с правилом двух ошибок, что обеспечивает детерминированный поиск строк с одной ошибкой по расстоянию Левенштейна. 👉 Для ускорения используется алгоритм HEngine, который дробит хэши на части (chunk) и сокращает объём сравниваемых данных до линейного роста при поиске похожих пар...
2 месяца назад
Пост-квантовая крипография в .NET 10
Пост-квантовая крипография в .NET 10 О чём статья: как .NET 10 добавляет поддержку пост‑квантовых алгоритмов (ML‑KEM, ML‑DSA, SLH‑DSA, Composite ML‑DSA) и зачем для них пришлось переработать криптографический API в BCL. 👉 В .NET 10 появились четыре PQC‑алгоритма: ML‑KEM для KEM и ML‑DSA, SLH‑DSA, Composite ML‑DSA для цифровых подписей вместо RSA/ECC. ⚡️ Новый дизайн криптографии отказывается от общего базового класса AsymmetricAlgorithm: каждый PQC‑тип напрямую наследуется от object, а экземпляр всегда представляет конкретный ключ/пару ключей...
2 месяца назад
StructPadding: обнуление паддингов в структурах .NET
StructPadding: обнуление паддингов в структурах .NET Автор представил библиотеку для автоматического обнуления байтов паддинга в структурах .NET. Это решает проблему недетерминированного поведения при двоичном сравнении и хешировании структур, когда в паддингах остаётся мусор из памяти. ⚡️ Библиотека использует рефлексию для определения оффсетов паддингов и генерирует динамические методы через IL для их обнуления в рантайме 🟢 Особенно полезна при работе с массивами структур: позволяет корректно...
2 месяца назад
Увы, ваш синтаксис подсвечен безграмотно
Увы, ваш синтаксис подсвечен безграмотно Как выбрать и настроить цветовую схему подсветки синтаксиса так, чтобы код реально легче читать, а не ловить «кровь из глаз». Статья разбирает принципы осмысленной подсветки и на живых примерах показывает, чего делать не надо в IDE. 👉 Автор предлагает минималистичный подход: использовать столько цветов, сколько вы реально можете запомнить (у него в теме Alabaster всего четыре базовых цвета для строк, констант, комментариев и верхнеуровневых определений)...
2 месяца назад
Как фильтры Блума в 16 раз ускорили API
Как фильтры Блума в 16 раз ускорили API В статье подробно рассказывается, как команда снизила задержки P95 конечной точки API с 5 до 0,3 секунды, применив фильтр Блума для эффективной фильтрации больших объемов данных в Postgres. 👉 Проблема заключалась в медленной фильтрации миллионов алертов в базе данных с десериализацией JSONB, что вызывало задержки до 5 секунд и более. 👉 Фильтр Блума — вероятностная структура данных, позволяющая быстро проверять принадлежность элемента множеству с незначительным числом ложноположительных результатов...
2 месяца назад
Высоконагруженный reverse-proxy на YARP
Высоконагруженный reverse-proxy на YARP Статья рассказывает, как построить высоконагруженный обратный прокси-сервер с помощью YARP (.NET), рассматривая архитектурные решения и практические детали реализации. 👉 Использование YARP для создания масштабируемого и производительного reverse-proxy на платформе .NET 🟢 Особенности настройки и оптимизации работы прокси для поддержки высокой...
2 месяца назад
Beyond SOLID in Modern C#: Smart Enums, Discriminated Unions & ROP
Beyond SOLID in Modern C#: Smart Enums, Discriminated Unions & ROP Автор объясняет, почему классические принципы SOLID устарели для сложных .NET-систем и показывает, как новые фичи C# (12/13) и функциональные паттерны делают код безопаснее, выразительнее и тестируемее. 🟢 Почему SOLID уже не решает современные задачи: структуры становятся хрупкими, а классический ООП приводит к повторяющимся ошибкам и ненужной сложности. 👉 Smart Enums — доступные способы избавиться от «примитивной одержимости» и напрямую описывать бизнес-правила в типах...
2 месяца назад
Highlights from Git 2.52
Highlights from Git 2.52 GitHub разбирает самые заметные фичи свежего релиза Git 2.52 и показывает, как они помогают работать с большими репозиториями быстрее и безопаснее. В тексте — практические примеры: от ускоренного blame по директориям до новых стратегий обслуживания репо и подготовки к Git 3.0. 👉 Новый git last-modified считает «последний коммит по файлу» для целых деревьев в разы быстрее, чем связка ls-tree + log, и основан на внутреннем инструменте GitHub blame-tree. 🛠 В git maintenance...
2 месяца назад
Время дорого стоит
Время дорого стоит О том, как в Контуре встроили в корпоративный портал умный подбор слотов для встреч, чтобы автоматически находить общее свободное время участников и переговорок и не тратить часы на ручное сверивание календарей. 👉 Как устроен внутренний портал Стафф и почему было важно встроить рекомендацию слотов прямо в существующий календарь, а не плодить отдельный сервис. ⚡️ Алгоритм поиска общих свободных интервалов для всех участников: выборка событий по e‑mail, объединение занятых интервалов и поиск свободных с асимптотикой \( \theta(n \log n) \)...
2 месяца назад
Почему архитектурный долг опаснее технического
Почему архитектурный долг опаснее технического? Как корпоративный архитектор объясняет разницу между техническим и архитектурным долгом и показывает, как ошибки на уровне приложений, бизнеса и стратегии превращаются в системные риски для компании. Статья полезна тем, кто уже вышел за рамки «починить код» и хочет управлять архитектурой всего ландшафта. 🟢 Архитектурный долг шире кода: это лишние системы, дублирующие потоки данных, размытые зоны ответственности и организационные решения, которые делают любое изменение долгим, дорогим и непредсказуемым...
2 месяца назад
Гарантированная доставка данных в .NET с Polly
Гарантированная доставка данных в .NET с Polly Как на практике внедрить Polly для гарантированной доставки данных в .NET и повысить отказоустойчивость интеграций с внешними сервисами, на примере работы с ЕРИР. Разбор реально боевого кейса МТС с ретраями, MediatR и устойчивостью к сетевым сбоям. 🟢 Показан реальный кейс ОРД «МедиаСкаут», который обязан надёжно и вовремя отправлять данные в ЕРИР под риском штрафов, поэтому ретраи — не «опция», а бизнес‑критичная необходимость. 👉 Автор выносит конфигурацию...
2 месяца назад