Интеграции

Пример авторизации и отправки запроса на распознавание паспорта


  # Файлы изображений перед кодированием в base64 нужно предварительно сжать
  # до приемлемых размеров (~ 512 Кб), для повышения скорости распознавания
  # и снижения нагрузки на сеть.

  import base64
  import requests

  token_url = "https://passrec.ufanet.ru/api/v0/token/"

  # учетные данные для авторизации
  credentials = {
   'login': 'demo_user',
   'password': '0123456789'
  }
  response = requests.request("POST", token_url, data=credentials)
  data = response.json()
  access_token = data.get("detail").get("access")

  # url адрес распознавания
  recognition_url = "https://passrec.ufanet.ru/api/v0/passports/recognition/"

  # url адрес тестового паспорта
  test_passport_url = "https://passrec.ufanet.ru/media/test_passport.jpg"

  # конвертируем тестовое изображение паспорта в base64 строку
  file_base64 = base64.b64encode(requests.get(test_passport_url).content).decode()

  # пример чтения из файла на диске с последующим сжатием изображения
  # with open("/path/to/image.jpeg", "rb") as image_file:
  #   from PIL import Image
  #   from io import BytesIO
  #   img = Image.open(image_file)
  #   # сжатие картинки и запись в буфер
  #   buffer = BytesIO()
  #   img.save(buffer, "JPEG", optimize=True)
  #   # кодирование в base64
  #   file_base64 = base64.b64encode(buffer.getvalue()).decode()

  # подготовка данных для распознавания
  payload = {
   'file': file_base64,
   'doc_type': 'passport',
  }

  # установка токена доступа в заголовки
  headers = {
   'Authorization': 'JWT ' + access_token
  }

  # отправка запрос на распознавание тестового паспорта
  response = requests.request("POST", recognition_url, headers=headers, data=payload)

  # просмотр результата
  print(response.json())