ETL
Данный модуль платформы Compressa позволяет извлекать данные из неструктурированных документов и нарезать их на чанки с учетом структуры документов. Это важно для эффективного поиска / RAG или использования в LLM.
Помимо API для Layout доступен UI https://compressa-api.mil-team.ru/ui-layout/
Составим запрос на примере документа:
- Python (requests)
- cURL
# pip install requests, если у вас нет этой библиотеки
import requests
import os
# Скачиваем для примера PDF файл для сотрудников маркетплейса:
pdf_url = "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"
pdf_response = requests.get(pdf_url)
# Сохраняем файл
with open("dummy.pdf", "wb") as file:
file.write(pdf_response.content)
# Отправляем файл для нарезки на чанки
compressa_url = "https://compressa-api.mil-team.ru/v1/layout"
headers = {
"Authorization": "Ваш_API_ключ_Compressa",
"accept": "application/json",
}
# Указываем путь к нашему файлу
files = {"files": open("dummy.pdf", "rb")}
# Задаем параметры создания чанков
data = {
"output_format": "application/json",
"coordinates": "false",
"strategy": "fast",
"languages": ["rus", "eng"]
}
response = requests.post(
compressa_url,
headers=headers,
files=files,
data=data
)
# Выводим чанки документа в JSON формате
print(response.json())
curl -X POST "https://compressa-api.mil-team.ru/v1/layout" \
-H "Authorization: Bearer Ваш_API_ключ_Compressa" \
-H "accept: application/json" \
-F "files=@path/to/file.pdf" \
-F "xml_keep_tags=false" \
-F "output_format=application/json" \
-F "coordinates=false" \
-F "strategy=auto" \
-F "languages[]=rus" \
-F "languages[]=eng"
Ниже мы разберем подробнее часть настроек, полная схема API доступна здесь.
Стратегия обработки документа (strategy)
fast: стратегия "rule-based" использует традиционные техники извлечения на основе NLP для быстрого извлечения всех текстовых элементов. Стратегия "fast" не рекомендуется для файлов, содержащих сложные макеты, изображения и другие элементы визуального стиля.
hi_res: стратегия "model-based" определяет макет документа. Преимущество стратегии "hi_res" заключается в том, что она использует макет документа для получения дополнительной информации о его элементах. Мы рекомендуем использовать эту стратегию, если ваш случай использования требует высокой точности классификации элементов документа.
hi_res_model: можно выбрать yolox модель или yolox-tiny модель для более быстрого инференса.
auto: cтратегия "auto" автоматически выбирает метод разбиения документа в зависимости от его характеристик и других переданных параметров.