Spaces:
Sleeping
Sleeping
Commit
·
931a79f
1
Parent(s):
2df0370
new table document + image document processing functions + added more comprehensive loggings
Browse files- documents_prep.py +18 -12
documents_prep.py
CHANGED
|
@@ -294,7 +294,7 @@ def table_to_document(table_data, document_id=None):
|
|
| 294 |
table_title = table_data.get('table_title', 'Неизвестно')
|
| 295 |
section = table_data.get('section', 'Неизвестно')
|
| 296 |
|
| 297 |
-
# Создаем заголовочный
|
| 298 |
header_content = f"Таблица: {table_num}\nНазвание: {table_title}\nДокумент: {doc_id}\nРаздел: {section}\n"
|
| 299 |
|
| 300 |
if 'data' in table_data and isinstance(table_data['data'], list):
|
|
@@ -319,7 +319,7 @@ def table_to_document(table_data, document_id=None):
|
|
| 319 |
)
|
| 320 |
documents.append(doc)
|
| 321 |
|
| 322 |
-
# Если нет строк, создаем общий документ
|
| 323 |
if not documents:
|
| 324 |
doc = Document(
|
| 325 |
text=header_content,
|
|
@@ -334,7 +334,7 @@ def table_to_document(table_data, document_id=None):
|
|
| 334 |
)
|
| 335 |
documents.append(doc)
|
| 336 |
|
| 337 |
-
return documents
|
| 338 |
|
| 339 |
def load_table_data(repo_id, hf_token, table_data_dir):
|
| 340 |
log_message("Начинаю загрузку табличных данных")
|
|
@@ -369,15 +369,16 @@ def load_table_data(repo_id, hf_token, table_data_dir):
|
|
| 369 |
if 'sheets' in table_data:
|
| 370 |
for sheet in table_data['sheets']:
|
| 371 |
sheet['document'] = document_id
|
| 372 |
-
|
| 373 |
-
|
|
|
|
| 374 |
else:
|
| 375 |
-
|
| 376 |
-
table_documents.
|
| 377 |
elif isinstance(table_data, list):
|
| 378 |
for table_json in table_data:
|
| 379 |
-
|
| 380 |
-
table_documents.
|
| 381 |
|
| 382 |
except Exception as e:
|
| 383 |
log_message(f"Ошибка обработки файла {file_path}: {str(e)}")
|
|
@@ -400,9 +401,12 @@ def load_image_data(repo_id, hf_token, image_data_dir):
|
|
| 400 |
if file.startswith(image_data_dir) and file.endswith('.csv'):
|
| 401 |
image_files.append(file)
|
| 402 |
|
|
|
|
|
|
|
| 403 |
image_documents = []
|
| 404 |
for file_path in image_files:
|
| 405 |
try:
|
|
|
|
| 406 |
local_path = hf_hub_download(
|
| 407 |
repo_id=repo_id,
|
| 408 |
filename=file_path,
|
|
@@ -412,14 +416,15 @@ def load_image_data(repo_id, hf_token, image_data_dir):
|
|
| 412 |
)
|
| 413 |
|
| 414 |
df = pd.read_csv(local_path)
|
|
|
|
| 415 |
|
|
|
|
| 416 |
for _, row in df.iterrows():
|
| 417 |
-
|
| 418 |
-
section_value = row.get('Раздел документа', row.get('section', 'Неизвестно'))
|
| 419 |
|
| 420 |
content = f"Изображение: {row.get('№ Изображения', 'Неизвестно')}\n"
|
| 421 |
content += f"Название: {row.get('Название изображения', 'Неизвестно')}\n"
|
| 422 |
-
content += f"Описание: {row.get('Описание изображение', 'Неизвестно')}\n"
|
| 423 |
content += f"Документ: {row.get('Обозначение документа', 'Неизвестно')}\n"
|
| 424 |
content += f"Раздел: {section_value}\n"
|
| 425 |
content += f"Файл: {row.get('Файл изображения', 'Неизвестно')}\n"
|
|
@@ -443,6 +448,7 @@ def load_image_data(repo_id, hf_token, image_data_dir):
|
|
| 443 |
log_message(f"Ошибка обработки файла {file_path}: {str(e)}")
|
| 444 |
continue
|
| 445 |
|
|
|
|
| 446 |
return image_documents
|
| 447 |
|
| 448 |
except Exception as e:
|
|
|
|
| 294 |
table_title = table_data.get('table_title', 'Неизвестно')
|
| 295 |
section = table_data.get('section', 'Неизвестно')
|
| 296 |
|
| 297 |
+
# Создаем заголовочный контент
|
| 298 |
header_content = f"Таблица: {table_num}\nНазвание: {table_title}\nДокумент: {doc_id}\nРаздел: {section}\n"
|
| 299 |
|
| 300 |
if 'data' in table_data and isinstance(table_data['data'], list):
|
|
|
|
| 319 |
)
|
| 320 |
documents.append(doc)
|
| 321 |
|
| 322 |
+
# Если нет строк, создаем общий документ таблицы
|
| 323 |
if not documents:
|
| 324 |
doc = Document(
|
| 325 |
text=header_content,
|
|
|
|
| 334 |
)
|
| 335 |
documents.append(doc)
|
| 336 |
|
| 337 |
+
return documents # Возвращаем список документов
|
| 338 |
|
| 339 |
def load_table_data(repo_id, hf_token, table_data_dir):
|
| 340 |
log_message("Начинаю загрузку табличных данных")
|
|
|
|
| 369 |
if 'sheets' in table_data:
|
| 370 |
for sheet in table_data['sheets']:
|
| 371 |
sheet['document'] = document_id
|
| 372 |
+
# table_to_document теперь возвращает список
|
| 373 |
+
docs_list = table_to_document(sheet, document_id)
|
| 374 |
+
table_documents.extend(docs_list) # extend вместо append
|
| 375 |
else:
|
| 376 |
+
docs_list = table_to_document(table_data, document_id)
|
| 377 |
+
table_documents.extend(docs_list) # extend вместо append
|
| 378 |
elif isinstance(table_data, list):
|
| 379 |
for table_json in table_data:
|
| 380 |
+
docs_list = table_to_document(table_json)
|
| 381 |
+
table_documents.extend(docs_list) # extend вместо append
|
| 382 |
|
| 383 |
except Exception as e:
|
| 384 |
log_message(f"Ошибка обработки файла {file_path}: {str(e)}")
|
|
|
|
| 401 |
if file.startswith(image_data_dir) and file.endswith('.csv'):
|
| 402 |
image_files.append(file)
|
| 403 |
|
| 404 |
+
log_message(f"Найдено {len(image_files)} CSV файлов с изображениями")
|
| 405 |
+
|
| 406 |
image_documents = []
|
| 407 |
for file_path in image_files:
|
| 408 |
try:
|
| 409 |
+
log_message(f"Обрабатываю файл изображений: {file_path}")
|
| 410 |
local_path = hf_hub_download(
|
| 411 |
repo_id=repo_id,
|
| 412 |
filename=file_path,
|
|
|
|
| 416 |
)
|
| 417 |
|
| 418 |
df = pd.read_csv(local_path)
|
| 419 |
+
log_message(f"Загружено {len(df)} записей изображений из файла {file_path}")
|
| 420 |
|
| 421 |
+
# Обработка с правильными названиями колонок
|
| 422 |
for _, row in df.iterrows():
|
| 423 |
+
section_value = row.get('Раздел документа', 'Неизвестно')
|
|
|
|
| 424 |
|
| 425 |
content = f"Изображение: {row.get('№ Изображения', 'Неизвестно')}\n"
|
| 426 |
content += f"Название: {row.get('Название изображения', 'Неизвестно')}\n"
|
| 427 |
+
content += f"Описание: {row.get('Описание изображение', 'Неизвестно')}\n" # Опечатка в названии колонки
|
| 428 |
content += f"Документ: {row.get('Обозначение документа', 'Неизвестно')}\n"
|
| 429 |
content += f"Раздел: {section_value}\n"
|
| 430 |
content += f"Файл: {row.get('Файл изображения', 'Неизвестно')}\n"
|
|
|
|
| 448 |
log_message(f"Ошибка обработки файла {file_path}: {str(e)}")
|
| 449 |
continue
|
| 450 |
|
| 451 |
+
log_message(f"Создано {len(image_documents)} документов из изображений")
|
| 452 |
return image_documents
|
| 453 |
|
| 454 |
except Exception as e:
|