| --- |
| license: apache-2.0 |
| language: |
| - ru |
| base_model: |
| - Qwen/Qwen3.5-2B-Base |
| pipeline_tag: text-generation |
| tags: |
| - russian |
| - legal |
| - norms |
| - fire-safety |
| - information-extraction |
| - json |
| - llm |
| - compliance |
| --- |
| |
| # Модель для поиска ссылок на нормы в проектной документации |
|
|
| Модель предназначена для извлечения ссылок на нормативные документы и конкретные структурные элементы норм из русскоязычных текстов проектной и нормативной документации. |
|
|
| Формат промптов на которых была обучена модель хранятся в папке prompts в репозитории. |
|
|
| Основная задача модели — поиск ссылок вида: |
|
|
| - `п.7.1.8 СП 1.13130` |
| - `ч.1 ст.6 184-ФЗ` |
| - `таблица 7 СП 4.13130` |
| - `приложение А ГОСТ ...` |
|
|
| Модель ориентирована на работу с документами в области: |
|
|
| - пожарной безопасности; |
| - строительного проектирования; |
| - технического регулирования; |
| - нормативной экспертизы; |
| - проверки соответствия проектной документации. |
|
|
| --- |
|
|
| # Что делает модель |
|
|
| Модель получает: |
|
|
| - код интересующего нормативного документа (`doc_code`); |
| - фрагмент текста (`text`); |
|
|
| и возвращает ссылки только на конкретные места внутри указанного нормативного документа. |
|
|
| ## Пример |
|
|
| ### Input |
|
|
| ```json |
| { |
| "doc_code": "СП 1.13130", |
| "text": "...Коридоры отделены перегородками (что соответствует п.7.1.11 СП 1.13130)." |
| } |
| ``` |
|
|
| ### Output |
|
|
| ```json |
| [ |
| { |
| "punkt": "п.7.1.11 СП 1.13130", |
| "full_paragraph": "Коридоры отделены перегородками (что соответствует п.7.1.11 СП 1.13130)." |
| } |
| ] |
| ``` |
|
|
| --- |
|
|
| # Что НЕ считается ссылкой |
|
|
| Простое перечисление нормативных документов без указания конкретного пункта НЕ считается ссылкой. |
|
|
| ## Пример |
|
|
| ```text |
| СП 1.13130.2020 Системы противопожарной защиты... |
| ``` |
|
|
| В таком случае результат должен быть пустым: |
|
|
| ```json |
| [] |
| ``` |
|
|
| --- |
|
|
| # Формат выходных данных |
|
|
| ```json |
| [ |
| { |
| "punkt": "<найденная ссылка>", |
| "full_paragraph": "<полный текст абзаца>" |
| } |
| ] |
| ``` |
|
|
| --- |
|
|
| # Пример использования |
|
|
| ```python |
| from transformers import pipeline |
| |
| pipe = pipeline( |
| "text-generation", |
| model="GreenMap/qwen3.5-2b-ru-norm-link-extractor", |
| tokenizer="GreenMap/qwen3.5-2b-ru-norm-link-extractor" |
| ) |
| |
| doc_code = "СП 1.13130" |
| |
| text = """ |
| 9.3.23 Коридоры, холлы, вестибюли во всем здании отделены |
| перегородками с пределом огнестойкости не менее (R)EI(W) 30 |
| (что соответствует п.7.1.11 СП 1.13130). |
| """ |
| |
| prompt = f""" |
| Верни отрывок и ссылку на "{doc_code}" на основе текста. Если в тексте нет ссылок на конкретное место нормативного документа верни []. Верни в формате JSON: [{{"punkt": "<ссылка на норму>", "full_paragraph": "<релевантный фрагмент текста>"}}] |
| Текст: {text} |
| Ответ: |
| |
| """ |
| |
| result = pipe( |
| prompt, |
| max_new_tokens=1024, |
| do_sample=False |
| ) |
| |
| print(result[0]["generated_text"]) |
| ``` |
|
|
| ## Пример ожидаемого результата |
|
|
| ```json |
| [ |
| { |
| "punkt": "п.7.1.11 СП 1.13130", |
| "full_paragraph": "9.3.23 Коридоры, холлы, вестибюли во всем здании отделены перегородками с пределом огнестойкости не менее (R)EI(W) 30 (что соответствует п.7.1.11 СП 1.13130)." |
| } |
| ] |
| ``` |
|
|
| --- |
|
|
| # Датасет |
|
|
| Датасет был сформирован вручную. |
|
|
| --- |
|
|
| # Язык |
|
|
| Русский. |
|
|
| --- |
|
|
| # Лицензия |
|
|
| Apache 2.0 |