Initial commit: TrueConf Chatbot КЛЕВЕР
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
import os
|
||||
import requests
|
||||
import json
|
||||
|
||||
# Адрес вашего сервера с поднятым Docker-контейнером Unstructured
|
||||
API_URL = "http://172.16.80.250:9000/general/v0/general"
|
||||
|
||||
def main():
|
||||
# 1. Ищем все файлы .pdf и .docx в текущей директории
|
||||
target_files = [f for f in os.listdir('.') if f.lower().endswith(('.pdf', '.docx'))]
|
||||
target_files.sort() # Для порядка
|
||||
|
||||
if not target_files:
|
||||
print("❌ В текущей папке не найдено ни одного PDF или DOCX файла.")
|
||||
return
|
||||
|
||||
print(f"📂 Найдено файлов для обработки: {len(target_files)}")
|
||||
|
||||
# 2. Проходимся по всем найденным файлам
|
||||
for target_file in target_files:
|
||||
print(f"\n📄 Обрабатывается файл: {target_file}")
|
||||
print(f"⏳ Отправляем на сервер {API_URL}... (это может занять время)")
|
||||
|
||||
# Настройки запроса (параметры PDF просто игнорируются сервером для DOCX)
|
||||
payload_data = {
|
||||
"strategy": "hi_res",
|
||||
"languages": ["rus"],
|
||||
"pdf_infer_table_structure": "true"
|
||||
}
|
||||
|
||||
# Определяем правильный MIME-тип для файла
|
||||
ext = target_file.lower().split('.')[-1]
|
||||
if ext == 'pdf':
|
||||
mime_type = "application/pdf"
|
||||
else:
|
||||
mime_type = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
||||
|
||||
# 3. Открываем файл и делаем POST-запрос
|
||||
try:
|
||||
with open(target_file, "rb") as f:
|
||||
files = {
|
||||
"files": (target_file, f, mime_type)
|
||||
}
|
||||
|
||||
# Таймаут 300 секунд
|
||||
response = requests.post(API_URL, files=files, data=payload_data, timeout=300)
|
||||
response.raise_for_status()
|
||||
|
||||
# 4. Получаем JSON и сохраняем его в файл
|
||||
parsed_data = response.json()
|
||||
output_filename = f"{os.path.splitext(target_file)[0]}_parsed.json"
|
||||
|
||||
with open(output_filename, "w", encoding="utf-8") as out_f:
|
||||
json.dump(parsed_data, out_f, ensure_ascii=False, indent=4)
|
||||
|
||||
print(f"✅ Готово! Результат успешно сохранен в файл: {output_filename}")
|
||||
|
||||
except requests.exceptions.ConnectionError:
|
||||
print(f"❌ Ошибка соединения! Проверьте доступность {API_URL}")
|
||||
except requests.exceptions.Timeout:
|
||||
print("❌ Сервер слишком долго не отвечал.")
|
||||
except requests.exceptions.HTTPError as e:
|
||||
print(f"❌ Сервер вернул ошибку: {e}")
|
||||
if response.text:
|
||||
print(f"Детали ошибки от сервера: {response.text}")
|
||||
except Exception as e:
|
||||
print(f"❌ Произошла непредвиденная ошибка при обработке {target_file}: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user