File size: 4,541 Bytes
ebbacc1
 
 
 
 
 
 
1fe6606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
701e6eb
 
1fe6606
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
---
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