| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import base64
- import requests
- import numpy as np
- from loguru import logger
- from joblib import Parallel, delayed
- def to_b64(file_path):
- try:
- with open(file_path, 'rb') as f:
- return base64.b64encode(f.read()).decode('utf-8')
- except Exception as e:
- raise Exception(f'File: {file_path} - Info: {e}')
- def do_parse(file_path, url='http://127.0.0.1:8000/predict', **kwargs):
- try:
- response = requests.post(url, json={
- 'file': to_b64(file_path),
- 'kwargs': kwargs
- })
- if response.status_code == 200:
- output = response.json()
- output['file_path'] = file_path
- return output
- else:
- raise Exception(response.text)
- except Exception as e:
- logger.error(f'File: {file_path} - Info: {e}')
- if __name__ == '__main__':
- files = ['small_ocr.pdf']
- n_jobs = np.clip(len(files), 1, 8)
- results = Parallel(n_jobs, prefer='threads', verbose=10)(
- delayed(do_parse)(p) for p in files
- )
- print(results)
|