Skip to content

users_guide_rus

IlyaKozlov edited this page Dec 8, 2020 · 1 revision

Дедок

Дедок читает документы в различных форматах (doc, docx, odt, csv, и других) и извлекает из них

  • Метаинформацию
  • Текст документа + то как текст написан (жирность, курсив, размер шрифта)
  • Логическую структуру (опционально).

Дедок предпочитает чтобы с ним общались через rest-api, но может работать и через python.

Установка

Дедок можно запустить в контейнере так и без него.

Запуск в контейнере

  1. Убедитесь что у вас установлен docker
  2. Скачайте проект
git clone https://gitlab.at.ispras.ru/Ilya/dedoc_project.git

cd dedoc_project/
  1. Соберите контейнер и запустите.
docker build . -t dedoc_container
docker run -p 1231:1231 --rm dedoc_container:latest python3.5 /dedoc/main.py

После запуска можно проверить что Дедок запустился. Для этого можно открыть localhost:1231 и прочитать онлайн-документацию. Если Дедок запущен, то формат возвращаемых данных можно посмотреть тут.

Запуск не в контейнере

Мы тестировали Дедок на ubuntu 18 и python3.5. Проще всего будет посмотреть Dockerfile и установить аналогичным образом.

Проверка работоспособности

Мы запустили dedoc и хотим проверить, что он работает. Для этого

  • перейдите http://localhost:1231
  • Нажмите Supported Formats (внизу страницы)
  • Нажмите на любой result in html
  • Должен прийти результат, похожий на такой:

Отправляем свой документ через rest API

Приведём пример с python + requests.

import json
import os

import requests

"""specify file name and directory"""
directory_path = "..."
file_name = "..."

file_path = os.path.join(directory_path, file_name)

with open(file_path, 'rb') as file:
    
    files = {'file': (file_name, file)}
    """put additional parameter to data dict, you may look to the online docs for additional parameters"""
    data = {}
    """send request and get response"""
    response = requests.post("http://localhost:1231/upload", files=files, data=data)

    """Check if everything is OK"""
    if response.status_code != 200:
        raise Exception("Fail to parse file {}".format(response.status_code))
    """parse result from json """
    result = json.loads(response.content.decode())