Проверочный
комплект
Все, что нужно, чтобы убедиться в работоспособности и автономности программы для ЭВМ «Сибирь.Аудит» версии 1.2.0: как получить экземпляр, как сверить контрольную сумму, как воспроизвести прогон при отключенной сети и что должно получиться.
Подготовлено правообладателем - ООО «ФИИ», ИНН 5402076457. Редакция от .
Что проверяется: «Сибирь.Аудит»
Идентификационные данные программы. Любой экземпляр, полученный от правообладателя, должен совпадать с ними побайтно.
| Параметр | Значение |
|---|---|
| Наименование | Программа для ЭВМ «Сибирь.Аудит» (Siberia Audit) |
| Версия | 1.2.0, набор правил 2026.08.8 |
| Правообладатель | ООО «ФИИ», ОГРН 1235400001870, ИНН 5402076457 |
| Состав | 70 файлов исходного кода, 15 425 строк. В каталоге sibir_audit/models обученная модель представления текста rubert-tiny2 (лицензия MIT) и словарь ее токенизатора |
| Дистрибутив | sibir-audit-1.2.0.zip, 108 260 400 байт, 73 записи |
| Контрольная сумма SHA-256 | 3a0913d4c46a482730bcd19689e1c4756692617e8d59f4dfefcc14ba3752e8f6 |
| Среда исполнения | Python не ниже 3.12, операционные системы семейства Linux. Порядок проверки ниже выполнен также в Windows |
| Документация | функциональные характеристики · установка · эксплуатация · жизненный цикл |
Что проверяется: «Сибирь.Диалог»
У «Диалога» два разных артефакта, и путать их не следует: архив исходного текста и поставочный дистрибутив со средой развертывания, который получает лицензиат. Контрольные суммы у них разные, и это нормально.
| Параметр | Значение |
|---|---|
| Наименование | Программа для ЭВМ «Сибирь.Диалог» (Siberia Dialog) |
| Версия | 1.2.14 |
| Правообладатель | ООО «ФИИ», ОГРН 1235400001870, ИНН 5402076457 |
| Состав исходного текста | 159 файлов, 22 274 строки |
| Архив исходного текста | siberia-dialog-1.2.14.zip, 438 730 байт |
| Контрольная сумма архива | ece57063f11f27e4e87fc50a68fc302d1f9fe7a28250d7894f411a1955a721ef |
| Поставочный дистрибутив | siberia-dialog-1.2.14.tar.gz, 58 МБ - сборка со средой развертывания, собрана 9 сентября, ее контрольная сумма относится к более ранней сборке этой же версии |
| Контрольная сумма дистрибутива | 9a7fcd8d019d4a2d81a07977c6735a4c3930be2ce16a7d5a6fc837e050c4b372 |
| Среда исполнения | Python ≥ 3.12; Linux (проверено на ALT Linux 11); PostgreSQL, Redis, Asterisk |
| Документация | функциональные характеристики · установка · эксплуатация · жизненный цикл |
Как получить экземпляр
Программа распространяется по лицензионному договору и в открытый доступ не выкладывается. Экземпляр для проверки предоставляется бесплатно.
- Экспертным организациям и государственным органам - по запросу на license@siberia-ai.ru с указанием наименования организации и основания запроса. Архив с контрольной суммой направляется в ответном письме в течение одного рабочего дня.
- Потенциальным лицензиатам - доступ к экземпляру, размещенному правообладателем, по пилотной лицензии: ограниченный контур, срок до трех месяцев, безвозмездно. Условия - в разделе «Условия лицензирования».
- Без установки - правообладатель проводит проверку указанного вами ресурса на своей стороне и передает отчет. Достаточно письма с адресом ресурса.
- По «Сибирь.Диалогу» - поставочный дистрибутив и его контрольная сумма опубликованы открыто, ссылки в таблице выше. Демонстрационный стенд и доступ к программному интерфейсу выдаются по запросу на license@siberia-ai.ru.
Проверка подлинности. Полученный архив сверяйте с контрольной суммой, приведенной выше. Значение опубликовано на этой странице и совпадает с указанным в договоре об отчуждении исключительного права и в перечне отчуждаемых объектов.
Порядок проверки
Занимает около десяти минут. Требуется машина с Python не ниже 3.12 и доступом к любому проверяемому веб-ресурсу.
1. Сверить контрольную сумму
sha256sum sibir-audit-1.2.0.zip
В Windows та же проверка: certutil -hashfile sibir-audit-1.2.0.zip SHA256. Полученное значение должно совпасть с указанным в таблице выше. При расхождении дальше не идти - архив не тот.
2. Установить
unzip sibir-audit-1.2.0.zip -d sibir-audit python3 -m venv .venv && . .venv/bin/activate pip install -e sibir-audit
Команды повторяют раздел «Установка» документации. Вторая строка, создание окружения в Linux, в редакции 1.2.0 не проверялась. В Windows (PowerShell) выполнено: распаковка Expand-Archive sibir-audit-1.2.0.zip -DestinationPath sibir-audit, окружение python -m venv .venv и .venv\Scripts\Activate.ps1, затем та же третья строка. Устанавливаются десять зависимостей, перечисленных в файле pyproject.toml, все с открытым исходным кодом. pip сообщит об установке пакета sibir-audit-1.0.1: этот номер остался в файле pyproject.toml, экземпляр определяется контрольной суммой.
3. Выполнить аудит
python -c "
from sibir_audit.modules.audit.audit import audit_url
from sibir_audit.modules.audit.checks import RULES_VERSION
r = audit_url('https://siberia-ai.ru/', lang='ru')
print(RULES_VERSION, r['http_status'], r['score'], r['checks_total'])
for f in r['findings']:
print(f['severity'], f['code'], f['title'])
"
Команда одинаково выполняется в bash и в PowerShell. Аудит одной страницы вызывается функцией audit_url, отдельной команды командной строки для него в программе нет. Первая строка вывода: версия набора правил, код ответа, итоговый балл, число выполненных проверок. Дальше по строке на каждую находку. 28 сентября 2026 года команда напечатала:
2026.08.8 200 98 31 LOW schema_sameas_no_kg_anchor Organization sameAs links to social profiles, not a knowledge graph
Тот же аудит доступен как программный интерфейс. Служба поднимается командой
uvicorn sibir_audit.public_audit:app --host 127.0.0.1 --port 8080
и во втором окне терминала принимает запрос:
curl -X POST http://localhost:8080/check -H "Content-Type: application/json" -d '{"url": "https://siberia-ai.ru/"}'
Служба отвечает полным отчетом в формате JSON и по умолчанию формулирует находки по-русски. Запрос curl в таком виде выполнен в bash (в Windows в Git Bash), в PowerShell не проверялось.
4. Убедиться в детерминированности
Повторите команду шага 3. Версия набора правил, код ответа, итоговый балл, число проверок и состав находок обязаны совпасть. Генеративные модели к формированию оценок не привлекаются, поэтому результат не плавает от запуска к запуску.
У службы есть кеш: повторный запрос того же адреса в течение двух минут возвращает сохраненный ответ с признаком "cached": true, и такой повтор ничего не проверяет. Для сравнения через службу запустите ее без кеша: PUBLIC_CHECK_CACHE_TTL=0 uvicorn sibir_audit.public_audit:app --host 127.0.0.1 --port 8080 (запись для bash). 28 сентября 2026 года правообладатель выполнил по два прогона каждым способом: вывод функции совпал побайтно, ответы службы совпали во всех полях, кроме времени проверки и длительности.
5. Убедиться в автономности
Сохраните проверяемую страницу в отдельный каталог, поднимите ее на локальном адресе и отключите машине внешнюю сеть, оставив петлевой интерфейс. В каталоге со страницей:
python -m http.server 8000 --bind 127.0.0.1
Затем выполните команду шага 3, заменив адрес на http://127.0.0.1:8000/. Аудит должен пройти полностью. Служба из шага 3 для этой проверки не подходит: локальные и внутренние адреса она отклоняет с кодом blocked_target, это защита от обращений к внутренним ресурсам. Функция audit_url адрес, набранный проверяющим, принимает.
В Linux внешнюю сеть проще всего убрать контейнером без сетевых интерфейсов. Зависимости ставятся в контейнер, пока сеть есть, затем контейнер сохраняется образом и запускается с --network none. В текущем каталоге лежат распакованный экземпляр sibir-audit и каталог stranica с сохраненной страницей:
docker run --name sibir-audit-ustanovka -v "$PWD":/w -w /w python:3.12 pip install -e sibir-audit docker commit sibir-audit-ustanovka sibir-audit:proverka docker run --rm -it --network none -v "$PWD":/w -w /w sibir-audit:proverka bash
Внутри контейнера поднимите страницу командой python -m http.server 8000 --bind 127.0.0.1 --directory stranica & и выполните команду шага 3 с адресом http://127.0.0.1:8000/.
Три команды docker и запуск внутри контейнера в таком виде не проверялись. Прогон правообладателя описан ниже, он выполнен в собственном образе программы.
Как это проверено в Linux. 28 сентября 2026 года правообладатель выполнил прогон на своем сервере в контейнере, запущенном с --network none: из сетевых интерфейсов в нем был только петлевой lo. Образ собран из экземпляра 1.2.0, файлы в нем совпадают с архивом, 73 из 73, среда Debian 13 и Python 3.12.14. Проверяемая страница: копия главной страницы сайта, отданная на 127.0.0.1:8000 командой python -m http.server. Внутри процесса работал сторож, который перехватывает socket.connect, connect_ex и getaddrinfo и записывает каждое обращение не к петлевому адресу. Итог вызова audit_url(..., lang="ru"): 31 проверка, ошибок проверок нет, обращений наружу ноль, код выхода 0. Сторож проверен посевом: перед аудитом он сам пытается соединиться с внешним адресом 93.184.216.34, порт 80, и прогон это фиксирует и завершается с кодом 1. Три запуска подряд совпали по баллу, составу находок и составу пройденных проверок.
Как это проверено в Windows. В тот же день шаг выполнен в Windows Server 2022 с Python 3.12.10 на сохраненной копии главной страницы сайта. Сеть машины средствами операционной системы не отключалась. Вместо этого внутри процесса программы работал сторож, который отклонял и записывал каждое соединение и каждое разрешение имени вне петлевого интерфейса. Сторож сначала проверен на внешнем адресе: попытку он зафиксировал, аудит вернул недоступность страницы. На локальной странице выполнена 31 проверка, находок пять, обращений наружу ноль, соединений с 127.0.0.1 два (страница и robots.txt), два прогона совпали.
6. Семантические оценки (сфера искусственного интеллекта)
Подсистема семантических оценок сравнивает тексты по смыслу нейросетевой моделью rubert-tiny2 из каталога sibir_audit/models. Она вызывается отдельно: функция аудита из шага 3 и HTTP-служба ее не вызывают. Для работы модели нужна среда выполнения onnxruntime, в перечень зависимостей pyproject.toml она не входит и ставится в то же окружение:
pip install onnxruntime
Затем оценка на текстах из обоснования отнесения программы к сфере искусственного интеллекта:
python -c "
from sibir_audit.modules.semantika import Embedder, otvet_po_zagolovku
e = Embedder.po_umolchaniyu()
z = 'Как заменить счетчик воды'
for t in ('Прибор учета меняют так', 'История московского метрополитена кратко'):
print(otvet_po_zagolovku(z, t, e))
print(otvet_po_zagolovku(z, t))
"
28 сентября 2026 года с onnxruntime 1.30.0 команда напечатала:
Ocenka(znachenie=0.8174937137223827, osnovanie='model', poyasnenie='') Ocenka(znachenie=0.0, osnovanie='leksika', poyasnenie='модель недоступна, считано пересечением слов') Ocenka(znachenie=0.6988008865467242, osnovanie='model', poyasnenie='') Ocenka(znachenie=0.0, osnovanie='leksika', poyasnenie='модель недоступна, считано пересечением слов')
Первая и третья строки получены моделью: ответ, сформулированный другими словами, получает 0,817, посторонний текст 0,699. Вторая и четвертая строки считаны без модели, по совпадению слов, и равны нулю: общих слов у этих текстов нет. Признак osnovanie программа выставляет сама. Без onnxruntime та же команда печатает четыре строки с osnovanie='leksika' и значением 0.0, модель при этом не используется. Близость приводится к отрезку от 0 до 1 сдвигом косинуса, поэтому даже посторонний текст получает около 0,7. Сравнивать следует значения между собой.
Команда выполнена в bash и в PowerShell, с onnxruntime и без него. Установка onnxruntime в Linux не проверялась.
Пример отчета
Реальный прогон по официальному сайту правообладателя на редакции 1.2.0 через программный интерфейс (POST /check), выполнен 28 сентября 2026 года. Приведен целиком, включая единственное замечание. Содержание находки взято из поля title_en ответа, русская формулировка лежит в поле title. Сайт меняется, поэтому ваш прогон по этому адресу может дать другой состав находок. Детерминированность проверяется двумя прогонами подряд, а не сравнением с примером.
| Параметр | Значение |
|---|---|
| Проверенный адрес | https://siberia-ai.ru/ |
| Код ответа | 200 |
| Время выполнения | 2 266 мс |
| Набор правил | 2026.08.8 |
| Итоговый балл | 98 из 100 |
| Выполнено проверок | 31 |
| Без замечаний | 30 |
Находки
| Значимость | Код правила | Содержание |
|---|---|---|
| LOW | schema_sameas_no_kg_anchor | Organization sameAs links to social profiles, not a knowledge graph |
Каждая находка в полном отчете сопровождается сведениями о происхождении: источник, примененное правило, версия набора правил и метод получения. В приведенном примере статус находки - «подтверждено», метод - собственное измерение.
Балл считается вычитанием. 100 минус сумма весов выявленных дефектов, нижняя граница 0. Недоступность ресурса дает 0. Формула и веса зафиксированы в наборе правил, версия набора указывается в каждом отчете - отчеты, полученные в разное время, сопоставимы.
Куда обращаться
- Экземпляр и лицензирование
- license@siberia-ai.ru
- Технические вопросы
- support@siberia-ai.ru, +7 (383) 288-82-82
- Режим работы
- рабочие дни, 9:00-18:00 (UTC+7, Новосибирск)
- Срок ответа
- не более одного рабочего дня