惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
C
Cybersecurity and Infrastructure Security Agency CISA
N
News and Events Feed by Topic
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
Scott Helme
Scott Helme
P
Palo Alto Networks Blog
S
Schneier on Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
量子位
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
NISL@THU
NISL@THU
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
AWS News Blog
AWS News Blog
爱范儿
爱范儿
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
Security Archives - TechRepublic
Security Archives - TechRepublic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Secure Thoughts
Cloudbric
Cloudbric
aimingoo的专栏
aimingoo的专栏
L
Lohrmann on Cybersecurity
TaoSecurity Blog
TaoSecurity Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hacker News: Ask HN
Hacker News: Ask HN
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
G
GRAHAM CLULEY
P
Proofpoint News Feed
V
V2EX
Martin Fowler
Martin Fowler
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
SecWiki News
SecWiki News
罗磊的独立博客
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
小众软件
小众软件
The Last Watchdog
The Last Watchdog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
ПростоГраф: как я сделал глубокий форк LightRAG под свои (и, возможно, ваши) нужды
Front-Den · 2026-06-16 · via Все публикации подряд на Хабре

Простой

8 мин

129

С чего всё началось (можете пропустить, тут немного жизы)

С приходом LLM у меня возникло желание использовать их с пользой для компании. Куча маркетинговых видеона ютубе — как ИИ заменил сотрудников, стал всё знать и прочий шум, который только набирает обороты, — меня очень вдохновили. И я, вооружившись LM Studio, закинув всю документацию в контекст и задав вопрос, быстро приземлился на землю.

TTFT (время до генерации первого токена) на домашней видеокарте 4070 Super, входном контексте в 120к токенов и 8B‑модели — 4 минуты. TPS (скорость генерации) — 3,5 т/с. Качество ужасное: нюансов доменной области компании ИИ не понимает. Итог: не годится.

Далее я узнал про такой подход, как RAG. Подумал: серебряная пуля. Стал изучать эту тему — и оказалось, что там настолько обширный цветник из подходов к чанкингу, парсингу, ретриву, да и в целом паттернов RAG (native, graph, CAG), куча метрик (recall, precision и ещё сотня наберётся), что я вот до сих пор, уже год с лишним, изучаю это. И могу точно сказать, что ни одна готовая система или фреймворк не закроет на 100% конкретно Ваш случай. И честно, ПростоГраф тоже. Но об этом далее.

Что такое LightRAG?

LightRAG — это open‑source RAG‑фреймворк от команды HKUDS, который отвечает на вопросы по твоим документам. Его особенность в том, что он совмещает обычный векторный поиск с графом знаний: при индексации вытаскивает из текста сущности и связи между ними. За счёт этого он лучше отвечает на вопросы, где важны отношения между объектами, а не просто похожие куски текста, где можно упустить важные тонкости.

Официальный репозиторий LightRAG

Почему LightRAG?

Причин много, основные:

  • Open‑source

  • Достаточно эффективный поисковый движок под капотом

  • Готовый парсер (включая мощный Docling) и чанкер

  • Простота в управлении системой в целом

  • Готовый WebUI

ПростоГраф, что это? И зачем он вообще поя™вился?

Как я уже сказал это форк, глубокий форк, но не самого поискового движка, его я не трогал.

Работает? НЕ ТРОГАЙ!

Я оснастил его мощной обвязкой, чтобы сотрудники из разных отделов компании могли использовать его как рабочий инструмент, а не MVP. Позволяя очень тонко управлять контекстом, промптами, ролями и отделами. Что позволяет загрузить один раз документацию, немного донастроив всё через удобный WebUI, дать учетку Вашему бухгалтеру или инженеру технической поддержки и тем самым здорово упростив им жизнь. У них будет лишь простая веб страничка перед глазами, к который уже все так привыкли в обычном формате общения с LLM.

Страница авторизации /webui/#/login

Страница авторизации /webui/#/login

Страница рядового юзера /webui/#/chat

Страница рядового юзера /webui/#/chat

Что есть в ПростоГраф, чего нет в LightRAG?

  • Управление отделами, пользователями и их учетными данными.

  • Выбор — какие документы физически доступны разным отделам. Не нужная для отдела продаж спецификация API даже не дойдет до ретрива, не потратит токены.

  • Кастомизация системных промптов для каждого отдела. Стиль ответов для отдела продаж и отдела тестирования — разный.

  • Возможность выборочно некоторые документы целиком подавать в контекст для генерации. Важно для процедурных инструкций, где нужно строго выполнить инструкцию по пунктам, а не верить в чанки.

  • Возможность каждому документу добавить свою метаинформацию. Не меняет документ, но позволяет до настроить поведение LLM при ответе.

  • Сбор обратной связи от пользователей под каждым ответом.

  • Просмотр всех чатов и оценок на странице администратора, фактически в бою собираем реальный eval сет.

  • Передача в LLM истории сообщений, фиксированное кол‑во последних пар вопрос‑ответ, чтобы LLM видела историю и не ломалась на Multi‑Turn кейсах.

  • Сохранение истории чатов у пользователя (а‑ля боковое меню).

  • Просмотр исходных документов сразу в чате.

  • Управление провайдерами LLM, эмбеддингов, реранкеров — сразу в WebUI.

  • Настройка чанкинга (размер/перекрытие) в WebUI.

  • Полностью русский интерфейс, грамотно переведены десятки крупных, подкапотных промптов ядра. Переведены почти все сообщения пайплайна. Да, в LightRAG был русский, но очень в ограниченном объеме. Система заточена под реальный РУ‑сегмент.

  • Безопасность тоже забыта не полностью, — персистентный JWT‑секрет, защита /login от перебора, предупреждение о дефолтном пароле, отзыв доступа в реальном времени (роль/отдел перечитываются из БД на каждый запрос), ACL учитывается даже в кэше ответов.

  • Ну и главное(шутка:)) — кастомизация страницы входа. Подсказка гуманитарию куда он попал и что делать.

В общем

Я использовал эту систему пару месяцев, ловил и исправлял баги, добавлял функционал и по сути это сейчас готовое решение из коробки. Я выложил проект на Гитхаб.
Берите, пользуйтесь, возможно, через ИИ вы допилите что‑то под себя, а возможно и этот функционал сразу покроет все Ваши потребности. Пишите замечания, баги, предложения, — если проект Вам понравится, доделаем его вместе:)

Как установить и запустить?

git clone https://github.com/Denis-ya-32/prostograf.git

cd prostograf

cp .env.example .env # ключи можно вписать сюда или позже в веб-интерфейсе

docker compose up -d --build # первая сборка ~2-4 мин (дольше при первой загрузке базовых образов)

На самом деле — раз уж я стараюсь подавать всё максимально просто — дайте нейронке ссылку на гит и промпт «Скачай и запусти ПростоГраф», и она справится. Возможно, придётся немного посисадминить: настроить реверс‑прокси наружу, чтобы пользоваться могли люди из разных уголков необъятной, но и с этим она спокойно справится. Статья не о сетевом администрировании.

Дальше

  1. Заходим в WebUI, на страницу авторизации:
    http://localhost:9621/webui/#/login

  2. Авторизуемся под admin/admin и нажимаем «Войти».

И всё:) Вы в админке!

Интерфейс будет очень знаком тем, кто работал с LightRAG. Но он существенно переработан.

Интерфейс будет очень знаком тем, кто работал с LightRAG. Но он существенно переработан.

Родной UI LightRAG если кому интересно

Родной UI LightRAG если кому интересно

Давайте теперь посмотрим, как подготовить систему к работе и заодно на весь тот функционал, что я описывал выше

  1. Сразу идем в «Отделы и пользователи» и меняем пароль администратора.

  2. Идем в «Настройки» > «Провайдеры LLM» и выбираем провайдера, модель и ключ для LLM и эмбеддингов.

    3. Опционально можете включить реранкер (рекомендую), но и без него качество Вас может полностью устроить.

    4. Размер чанка менять не нужно. Это значение по умолчанию из LightRAG. Если очень хочется, тестируйте. Нажимаем «Сохранить и применить». Сервер быстро (10–30с) перезагрузится.

    5. Дальше там же, в настройках идем на вкладку «Тестирование» и кликаем «Проверить провайдеров». Если названия моделей, настройки и ключи правильные, — увидите 200 код.

Основные настройки все. Просто правда?

Дальше идем на вкладку документы и кликаем «Загрузить», ну там уж очень очевидно, не буду останавливаться, после выбора документов у Вас начнется автоматом извлечение сущностей для построения графа и параллельно векторное представление чанков.

Процесс не быстрый. ~100k токенов на v4-flash = около часа. Но оно того стоит:)

Процесс не быстрый. ~100k токенов на v4-flash = около часа. Но оно того стоит:)

Если в процессе будут ошибки, система покажет, повторное нажатие «Сканировать/Повторить», в крайнем случае удаление и повторная загрузка, решают все проблемы. Я пока иного не наблюдал, если что пофиксим, главное, сообщайте о таком:)

Когда документы будут загружены, можем зайти на вкладку «Граф знаний» и помедитировать на цветные кружочки с ребрами.

Ну и после медитации, идем в «Чат» и задаем вопрос, медитируем снова

А теперь к более полезной практике

Задача:

  1. Создать два отдела, — бухгалтерия и техническая поддержка.

  2. Прикрепить юзеров Иванова А.А и Петрова В.В к бухгалтерии.

  3. Прикрепить юзера Герасимов Б.Б к отделу техпод.

  4. Загрузить документы «Глоссарий системы», «Зарплатные ведомости», «Спецификация API» в систему.

  5. Бухгалтерии дать доступ к «Глоссарий системы» и «Зарплатные ведомости». API им не нужен.

  6. Техподу дать доступ к «Глоссарий системы» и «Спецификация API». К зарплатным ведомостям доступ не нужен.

Мы уже знаем как загружать документы. Остается создать отделы, юзеров и настроить доступ к докам.

  1. Идем на вкладку «Отделы и пользователи» и в разделе «Отделы» создаем отдел «BUH» и «TECHPOD», кликаем создать.

    2. В разделе «Пользователи» вводим логин «a.ivanova», пароль «12345», имя «Иванова А.А». Выбираем роль «Пользователь» и отдел BUH. Кликаем «Добавить». Увидим уведомление и нового юзера.

    То же самое делаем с другими юзерами.

3. Далее идем ниже, к разделу «Доступ отдела к документам». Выбираем отдел и ставим галочки в чек‑боксах рядом с теми документами, которые должны попадать в ретривер для отдела и нажимаем «Сохранить». Тут же, можете указать промпт конкретному отделу, он имеет приоритет перед промптом по умолчанию из вкладки «Настройки» > «Промпты».

4.На вкладке «Документы» есть две важные функциональные возможности

Вкладка "Документы"

Вкладка «Документы»

  • Чек‑бокс «Целиком» — при включении документ попадает целиком в ретривер! Это очень важно, когда инструкция процедурная, где описан поэтапно какой-либо сложный процесс, где цена ошибки велика. Любые ограничения на размер и бюджет токенов в «Настройки» > «Параметры запроса», — игнорируются.
    * Этот пункт сделан не просто так, это реальная боль во многих компаниях и это здорово выручает, не нужно свой RAG целиком строить на Child‑Parent паттерне, который достаточно дорогой. Включаем только на процедурку.

  • META — Также важная надстройками поверх промптов. Позволяет корректировать поведение генератора на каких‑то узких/сложных документах. Не меняет текст документа, просто подается как { metainfo: «text» } при успешном ретриве документа/его фрагментов.

Все это Вы можете более подробно почитать в разделе «Документация». Я собрал там Wiki страничку с удобным поиском.

Теперь отправляем URL и доступы Герасимову Б.Б.

Лови!
URL: http://localhost:9621/webui/#/login
Login: b.gerasimov
Password: 12 345 

Он заходит и задаёт вопрос, получает ответ и оценивает (на самом деле нужно заставлять оценивать, не все понимают насколько это важно). Видит магию

При желании может посмотреть исходник документа в правом меню и увидеть что данные реальные.

Вернемся в админку, посмотрим, жжёт ли Герасимов токены на выбор фильма

Точнее оценим ответ, посмотрим процесс мышления LLM, скорость ответа, использованные документы, расход токенов, оценку. Всё это можно увидеть на вкладке «История».

Все чаты, в том числе удаленные сохраняются в SQLite, потом на их основе можно собирать реальный eval‑сет, а не синтетику.

Послесловие

Я не AI инженер, скорее обычная шестеренка, у которой была боль, как все организовать для компании численностью чуть более ста человек и огромное желание и интерес к LLM и RAG в частности.

Я постарался максимально простым языком показать как использовать эту систему и сделал её простой для конечных пользователей, — рядовых сотрудников и администраторов.

Мне система нужна именно в таком виде, возможно кому‑то тоже будет полезна. Берите, модифицируйте под себя, благо сейчас это очень просто и быстро. Будет важно получать от вас обратную связь, Issue, личка Хабра. Если есть похожие инструменты, готовые, бесплатные, — делитесь. Я тоже в поисках хорошего:)

Дальнейшие планы

  • Добавить возможность перенаправлять ответы на других провайдеров LLM, эмбеддингов, реранкера в случае если текущий провайдер «лежит».

  • Вынести больше настроек из-под капота в WebUI. Да их там море.

  • Добавить возможность автоматизировано собирать и делать eval таблицу для тестов прям в WebUI. Отслеживать метрики после изменений.

Это глобальные задачи, по мере того как буду находить свободное время, проект собираюсь развивать.