Spaces:
Sleeping
Sleeping
Commit ·
74a8708
1
Parent(s): 4a00593
added table data + image data, + replaces with the old version for the table processing
Browse files- app.py +2 -1
- documents_prep.py +83 -36
- utils.py +0 -4
- Табличные данные_JSON/ГОСТ Р 50.01.01-2017.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.03.01-2017.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.04.02-2018.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.04.04-2018.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.04.06-2018.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.04.07-2022.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.04.08-2019.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.05.01-2018.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.05.07-2019.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.05.17-2019.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.05.18-2019.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.05.22-2020.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.05.23-2020.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.05.24-2020.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.05.25-2020.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.06.01-2017.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.08.01-2023.json +3 -0
- Табличные данные_JSON/ГОСТ Р 50.08.04-2022.json +3 -0
- Табличные данные_JSON/МУ 1.1.4.01.1422-2019.json +3 -0
- Табличные данные_JSON/МУ 1.2.3.07.0057-2018.json +3 -0
- Табличные данные_JSON/НП-068-05.json +3 -0
- Табличные данные_JSON/НП-089-15.json +3 -0
- Табличные данные_JSON/НП-104-18_ГОСТ 59023.json +3 -0
- Табличные данные_JSON/НП-105-18.json +3 -0
app.py
CHANGED
|
@@ -58,7 +58,7 @@ def initialize_system(repo_id, hf_token, download_dir, chunks_filename=None,
|
|
| 58 |
log_message(f"Configured chunk size: {CHUNK_SIZE}")
|
| 59 |
log_message(f"Configured chunk overlap: {CHUNK_OVERLAP}")
|
| 60 |
log_message(f"Settings text splitter chunk size: {Settings.text_splitter.chunk_size if hasattr(Settings, 'text_splitter') else 'Not set'}")
|
| 61 |
-
|
| 62 |
all_documents = []
|
| 63 |
chunks_df = None
|
| 64 |
chunk_info = []
|
|
@@ -182,6 +182,7 @@ def create_demo_interface(answer_question_func, switch_model_func, current_model
|
|
| 182 |
"Какой стандарт устанавливает порядок признания протоколов испытаний продукции в области использования атомной энергии?",
|
| 183 |
"Кто несет ответственность за организацию и проведение признания протоколов испытаний продукции?",
|
| 184 |
"В каких случаях могут быть признаны протоколы испытаний, проведенные лабораториями?",
|
|
|
|
| 185 |
],
|
| 186 |
inputs=question_input
|
| 187 |
)
|
|
|
|
| 58 |
log_message(f"Configured chunk size: {CHUNK_SIZE}")
|
| 59 |
log_message(f"Configured chunk overlap: {CHUNK_OVERLAP}")
|
| 60 |
log_message(f"Settings text splitter chunk size: {Settings.text_splitter.chunk_size if hasattr(Settings, 'text_splitter') else 'Not set'}")
|
| 61 |
+
|
| 62 |
all_documents = []
|
| 63 |
chunks_df = None
|
| 64 |
chunk_info = []
|
|
|
|
| 182 |
"Какой стандарт устанавливает порядок признания протоколов испытаний продукции в области использования атомной энергии?",
|
| 183 |
"Кто несет ответственность за организацию и проведение признания протоколов испытаний продукции?",
|
| 184 |
"В каких случаях могут быть признаны протоколы испытаний, проведенные лабораториями?",
|
| 185 |
+
"В какой таблице можно найти информацию о методы исследований при аттестационных испытаниях технологии термической обработки заготовок из легированных сталей? Какой документ и какой раздел?"
|
| 186 |
],
|
| 187 |
inputs=question_input
|
| 188 |
)
|
documents_prep.py
CHANGED
|
@@ -13,7 +13,7 @@ def chunk_document(doc, chunk_size=None, chunk_overlap=None):
|
|
| 13 |
chunk_size = CHUNK_SIZE
|
| 14 |
if chunk_overlap is None:
|
| 15 |
chunk_overlap = CHUNK_OVERLAP
|
| 16 |
-
|
| 17 |
text_splitter = SentenceSplitter(
|
| 18 |
chunk_size=chunk_size,
|
| 19 |
chunk_overlap=chunk_overlap,
|
|
@@ -44,29 +44,80 @@ def chunk_document(doc, chunk_size=None, chunk_overlap=None):
|
|
| 44 |
def process_documents_with_chunking(documents):
|
| 45 |
all_chunked_docs = []
|
| 46 |
chunk_info = []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
for doc in documents:
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
-
for i, chunk_doc in enumerate(chunked_docs):
|
| 54 |
-
chunk_info.append({
|
| 55 |
-
'document_id': chunk_doc.metadata.get('document_id', 'unknown'),
|
| 56 |
-
'section_id': chunk_doc.metadata.get('section_id', 'unknown'),
|
| 57 |
-
'chunk_id': i,
|
| 58 |
-
'chunk_size': len(chunk_doc.text),
|
| 59 |
-
'chunk_preview': chunk_doc.text[:200] + "..." if len(chunk_doc.text) > 200 else chunk_doc.text
|
| 60 |
-
})
|
| 61 |
-
else:
|
| 62 |
all_chunked_docs.append(doc)
|
| 63 |
chunk_info.append({
|
| 64 |
'document_id': doc.metadata.get('document_id', 'unknown'),
|
| 65 |
'section_id': doc.metadata.get('section_id', 'unknown'),
|
| 66 |
'chunk_id': 0,
|
| 67 |
'chunk_size': len(doc.text),
|
| 68 |
-
'chunk_preview': doc.text[:200] + "..." if len(doc.text) > 200 else doc.text
|
|
|
|
| 69 |
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
return all_chunked_docs, chunk_info
|
| 72 |
|
|
@@ -299,33 +350,29 @@ def table_to_document(table_data, document_id=None):
|
|
| 299 |
table_title = table_data.get('table_title', 'Неизвестно')
|
| 300 |
section = table_data.get('section', 'Не��звестно')
|
| 301 |
|
| 302 |
-
# Создаем заголовочный контент
|
| 303 |
header_content = f"Таблица: {table_num}\nНазвание: {table_title}\nДокумент: {doc_id}\nРаздел: {section}\n"
|
| 304 |
|
| 305 |
if 'data' in table_data and isinstance(table_data['data'], list):
|
| 306 |
-
|
| 307 |
for row_idx, row in enumerate(table_data['data']):
|
| 308 |
if isinstance(row, dict):
|
| 309 |
row_text = " | ".join([f"{k}: {v}" for k, v in row.items()])
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
# Если нет строк, создаем общий документ таблицы
|
| 328 |
-
if not documents:
|
| 329 |
doc = Document(
|
| 330 |
text=header_content,
|
| 331 |
metadata={
|
|
@@ -339,7 +386,7 @@ def table_to_document(table_data, document_id=None):
|
|
| 339 |
)
|
| 340 |
documents.append(doc)
|
| 341 |
|
| 342 |
-
return documents
|
| 343 |
|
| 344 |
def load_table_data(repo_id, hf_token, table_data_dir):
|
| 345 |
log_message("Начинаю загрузку табличных данных")
|
|
|
|
| 13 |
chunk_size = CHUNK_SIZE
|
| 14 |
if chunk_overlap is None:
|
| 15 |
chunk_overlap = CHUNK_OVERLAP
|
| 16 |
+
|
| 17 |
text_splitter = SentenceSplitter(
|
| 18 |
chunk_size=chunk_size,
|
| 19 |
chunk_overlap=chunk_overlap,
|
|
|
|
| 44 |
def process_documents_with_chunking(documents):
|
| 45 |
all_chunked_docs = []
|
| 46 |
chunk_info = []
|
| 47 |
+
table_count = 0
|
| 48 |
+
image_count = 0
|
| 49 |
+
text_chunks_count = 0
|
| 50 |
+
large_tables_count = 0
|
| 51 |
+
large_images_count = 0
|
| 52 |
|
| 53 |
for doc in documents:
|
| 54 |
+
doc_type = doc.metadata.get('type', 'text')
|
| 55 |
+
|
| 56 |
+
if doc_type == 'table':
|
| 57 |
+
table_count += 1
|
| 58 |
+
if len(doc.text) > CHUNK_SIZE:
|
| 59 |
+
large_tables_count += 1
|
| 60 |
+
log_message(f"Large table found: {doc.metadata.get('table_number', 'unknown')} in document {doc.metadata.get('document_id', 'unknown')}, size: {len(doc.text)} characters")
|
| 61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
all_chunked_docs.append(doc)
|
| 63 |
chunk_info.append({
|
| 64 |
'document_id': doc.metadata.get('document_id', 'unknown'),
|
| 65 |
'section_id': doc.metadata.get('section_id', 'unknown'),
|
| 66 |
'chunk_id': 0,
|
| 67 |
'chunk_size': len(doc.text),
|
| 68 |
+
'chunk_preview': doc.text[:200] + "..." if len(doc.text) > 200 else doc.text,
|
| 69 |
+
'type': 'table'
|
| 70 |
})
|
| 71 |
+
|
| 72 |
+
elif doc_type == 'image':
|
| 73 |
+
image_count += 1
|
| 74 |
+
if len(doc.text) > CHUNK_SIZE:
|
| 75 |
+
large_images_count += 1
|
| 76 |
+
log_message(f"Large image description found: {doc.metadata.get('image_number', 'unknown')} in document {doc.metadata.get('document_id', 'unknown')}, size: {len(doc.text)} characters")
|
| 77 |
+
|
| 78 |
+
all_chunked_docs.append(doc)
|
| 79 |
+
chunk_info.append({
|
| 80 |
+
'document_id': doc.metadata.get('document_id', 'unknown'),
|
| 81 |
+
'section_id': doc.metadata.get('section_id', 'unknown'),
|
| 82 |
+
'chunk_id': 0,
|
| 83 |
+
'chunk_size': len(doc.text),
|
| 84 |
+
'chunk_preview': doc.text[:200] + "..." if len(doc.text) > 200 else doc.text,
|
| 85 |
+
'type': 'image'
|
| 86 |
+
})
|
| 87 |
+
|
| 88 |
+
else:
|
| 89 |
+
if len(doc.text) > CHUNK_SIZE:
|
| 90 |
+
chunked_docs = chunk_document(doc)
|
| 91 |
+
all_chunked_docs.extend(chunked_docs)
|
| 92 |
+
text_chunks_count += len(chunked_docs)
|
| 93 |
+
|
| 94 |
+
for i, chunk_doc in enumerate(chunked_docs):
|
| 95 |
+
chunk_info.append({
|
| 96 |
+
'document_id': chunk_doc.metadata.get('document_id', 'unknown'),
|
| 97 |
+
'section_id': chunk_doc.metadata.get('section_id', 'unknown'),
|
| 98 |
+
'chunk_id': i,
|
| 99 |
+
'chunk_size': len(chunk_doc.text),
|
| 100 |
+
'chunk_preview': chunk_doc.text[:200] + "..." if len(chunk_doc.text) > 200 else chunk_doc.text,
|
| 101 |
+
'type': 'text'
|
| 102 |
+
})
|
| 103 |
+
else:
|
| 104 |
+
all_chunked_docs.append(doc)
|
| 105 |
+
chunk_info.append({
|
| 106 |
+
'document_id': doc.metadata.get('document_id', 'unknown'),
|
| 107 |
+
'section_id': doc.metadata.get('section_id', 'unknown'),
|
| 108 |
+
'chunk_id': 0,
|
| 109 |
+
'chunk_size': len(doc.text),
|
| 110 |
+
'chunk_preview': doc.text[:200] + "..." if len(doc.text) > 200 else doc.text,
|
| 111 |
+
'type': 'text'
|
| 112 |
+
})
|
| 113 |
+
|
| 114 |
+
log_message(f"=== PROCESSING STATISTICS ===")
|
| 115 |
+
log_message(f"Total tables processed: {table_count}")
|
| 116 |
+
log_message(f"Large tables (>{CHUNK_SIZE} chars): {large_tables_count}")
|
| 117 |
+
log_message(f"Total images processed: {image_count}")
|
| 118 |
+
log_message(f"Large images (>{CHUNK_SIZE} chars): {large_images_count}")
|
| 119 |
+
log_message(f"Total text chunks created: {text_chunks_count}")
|
| 120 |
+
log_message(f"Total documents after processing: {len(all_chunked_docs)}")
|
| 121 |
|
| 122 |
return all_chunked_docs, chunk_info
|
| 123 |
|
|
|
|
| 350 |
table_title = table_data.get('table_title', 'Неизвестно')
|
| 351 |
section = table_data.get('section', 'Не��звестно')
|
| 352 |
|
|
|
|
| 353 |
header_content = f"Таблица: {table_num}\nНазвание: {table_title}\nДокумент: {doc_id}\nРаздел: {section}\n"
|
| 354 |
|
| 355 |
if 'data' in table_data and isinstance(table_data['data'], list):
|
| 356 |
+
table_content = header_content + "\nДанные таблицы:\n"
|
| 357 |
for row_idx, row in enumerate(table_data['data']):
|
| 358 |
if isinstance(row, dict):
|
| 359 |
row_text = " | ".join([f"{k}: {v}" for k, v in row.items()])
|
| 360 |
+
table_content += f"Строка {row_idx + 1}: {row_text}\n"
|
| 361 |
+
|
| 362 |
+
doc = Document(
|
| 363 |
+
text=table_content,
|
| 364 |
+
metadata={
|
| 365 |
+
"type": "table",
|
| 366 |
+
"table_number": table_num,
|
| 367 |
+
"table_title": table_title,
|
| 368 |
+
"document_id": doc_id,
|
| 369 |
+
"section": section,
|
| 370 |
+
"section_id": section,
|
| 371 |
+
"total_rows": len(table_data['data'])
|
| 372 |
+
}
|
| 373 |
+
)
|
| 374 |
+
documents.append(doc)
|
| 375 |
+
else:
|
|
|
|
|
|
|
|
|
|
| 376 |
doc = Document(
|
| 377 |
text=header_content,
|
| 378 |
metadata={
|
|
|
|
| 386 |
)
|
| 387 |
documents.append(doc)
|
| 388 |
|
| 389 |
+
return documents
|
| 390 |
|
| 391 |
def load_table_data(repo_id, hf_token, table_data_dir):
|
| 392 |
log_message("Начинаю загрузку табличных данных")
|
utils.py
CHANGED
|
@@ -146,10 +146,6 @@ def generate_sources_html(nodes, chunks_df=None):
|
|
| 146 |
|
| 147 |
if doc_type == 'text':
|
| 148 |
html += f"<h4 style='margin: 0 0 10px 0; color: #63b3ed;'>📄 {doc_id}</h4>"
|
| 149 |
-
# Show all sections for this document
|
| 150 |
-
if source_info['sections']:
|
| 151 |
-
sections_text = ", ".join(sorted(source_info['sections']))
|
| 152 |
-
html += f"<p style='margin: 5px 0; color: #a0aec0; font-size: 14px;'>{sections_text}</p>"
|
| 153 |
|
| 154 |
elif doc_type == 'table' or doc_type == 'table_row':
|
| 155 |
table_num = metadata.get('table_number', 'unknown')
|
|
|
|
| 146 |
|
| 147 |
if doc_type == 'text':
|
| 148 |
html += f"<h4 style='margin: 0 0 10px 0; color: #63b3ed;'>📄 {doc_id}</h4>"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 149 |
|
| 150 |
elif doc_type == 'table' or doc_type == 'table_row':
|
| 151 |
table_num = metadata.get('table_number', 'unknown')
|
Табличные данные_JSON/ГОСТ Р 50.01.01-2017.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8bebc9cfa99d47068d172d696ca673ac8d186f2f4ff422e52b16d6793bc19852
|
| 3 |
+
size 3865
|
Табличные данные_JSON/ГОСТ Р 50.03.01-2017.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1d049d9b5e872d32348cba145b45f055b414a8d7a53b98b5d12f09e1863659f4
|
| 3 |
+
size 292448
|
Табличные данные_JSON/ГОСТ Р 50.04.02-2018.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d89b7529b424406bb5b6cc4b7e3d26418b9964310b7c50b4e8a8e89063e7b919
|
| 3 |
+
size 12788
|
Табличные данные_JSON/ГОСТ Р 50.04.04-2018.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0849327daa88257d1ef0e1fed349d2ceb5c5c6fd59b1c21b2bf3e0d63f12116e
|
| 3 |
+
size 12169
|
Табличные данные_JSON/ГОСТ Р 50.04.06-2018.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bfd341c7a63cf793d479c61d8e7e754d5d56b247d8e6b8ce78bed8d400aee36e
|
| 3 |
+
size 3273
|
Табличные данные_JSON/ГОСТ Р 50.04.07-2022.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d5d2919c43f3e1b299cd68fab9562a60ef786f316750c98b65d73ffee6006d31
|
| 3 |
+
size 44817
|
Табличные данные_JSON/ГОСТ Р 50.04.08-2019.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:14adc8dbc02e4557992c8a3dec1c97481726098bbfa3f5f018538dbeca773abf
|
| 3 |
+
size 1866
|
Табличные данные_JSON/ГОСТ Р 50.05.01-2018.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:da3eeda11e828ae1d50e65b37570ac79ead7e8f968fdc64d34a9f2395bfaf7a9
|
| 3 |
+
size 106007
|
Табличные данные_JSON/ГОСТ Р 50.05.07-2019.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:74cd00bf969c684f146f7ca97572727d830bd2c6977145a713c05bc23b878fbf
|
| 3 |
+
size 65716
|
Табличные данные_JSON/ГОСТ Р 50.05.17-2019.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8d40c59922b8c43bee9032df51974fe6ed72208497c59385b56a0debc5ff7dae
|
| 3 |
+
size 65716
|
Табличные данные_JSON/ГОСТ Р 50.05.18-2019.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ab8210459fb77ba836ab46b8ca964a49104e548ad1eb6be7f21e55075dbaab14
|
| 3 |
+
size 6260
|
Табличные данные_JSON/ГОСТ Р 50.05.22-2020.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dd91ffebbb9d9e4883d1621a008dfda9def3be9eccfa00c1d64c1d4d5276d425
|
| 3 |
+
size 13395
|
Табличные данные_JSON/ГОСТ Р 50.05.23-2020.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0041a13ff01c7fe8135c3e1d32420b5450338bcc5c7b15f0dc2548adead05c7d
|
| 3 |
+
size 323660
|
Табличные данные_JSON/ГОСТ Р 50.05.24-2020.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:809b86062651c029d6ba3f8a9106e7a45302db7e06e0dbf87cde98b990bf5f25
|
| 3 |
+
size 149252
|
Табличные данные_JSON/ГОСТ Р 50.05.25-2020.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f11fb140772f804e8d760acb6ef9c70a45bbc0f3169663a52d8f270808bdde50
|
| 3 |
+
size 242923
|
Табличные данные_JSON/ГОСТ Р 50.06.01-2017.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:89ce8fc5791e172064f633426f6ed3947a307eaf08265ce865bb3ddc752c76a2
|
| 3 |
+
size 56414
|
Табличные данные_JSON/ГОСТ Р 50.08.01-2023.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:83749b20c36487830ef2a55defb15051219bf80ceb2dc5ae0fc51c35167eabc2
|
| 3 |
+
size 4159
|
Табличные данные_JSON/ГОСТ Р 50.08.04-2022.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3609bd101e65515eac3fccb7a29206fc5a7f4e12813d6b4c27da74fa9e2d586d
|
| 3 |
+
size 3714
|
Табличные данные_JSON/МУ 1.1.4.01.1422-2019.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ee894ee4bb33ba40eabe6188e39aa1466815d4ef67978fea855dfaaf02f58b82
|
| 3 |
+
size 8102
|
Табличные данные_JSON/МУ 1.2.3.07.0057-2018.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a83451b3a174f2deee20d72f1030cdefe2931223d34a1c8c6bce10e31370be2a
|
| 3 |
+
size 147620
|
Табличные данные_JSON/НП-068-05.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e41d440016a04c1d4358f0a5d5229b49e473d3b73744b47ebbf56fa7b3b5459e
|
| 3 |
+
size 449769
|
Табличные данные_JSON/НП-089-15.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d437457f6513b7b157f33beb15b4b5f812cdaf8a54a452e7563aaf12b7acbd11
|
| 3 |
+
size 151862
|
Табличные данные_JSON/НП-104-18_ГОСТ 59023.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ee3468bc116401f24b7ab1dff7850e458d933ab157639c3e7127451deb310291
|
| 3 |
+
size 2642133
|
Табличные данные_JSON/НП-105-18.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a519ea25badc75a15db5721d2f97583bdf809580b40895a3ed4474e50e24cae1
|
| 3 |
+
size 434836
|