|
--- |
|
tags: |
|
- document-understanding |
|
- endpoints-template |
|
library_name: generic |
|
--- |
|
|
|
# Deploy a Space as inference Endpoint |
|
|
|
_This is a fork of the [naver-clova-ix/donut-base-finetuned-cord-v2](https://huggingface.co/spaces/naver-clova-ix/donut-base-finetuned-cord-v2) Space. |
|
|
|
This repository implements a custom container for 🤗 Inference Endpoints using a Gradio space. |
|
|
|
To deploy this model as an Inference Endpoint, you have to select Custom as task and a custom image. |
|
|
|
* CPU image: `philschmi/gradio-api:cpu` |
|
* GPU image: `philschmi/gradio-api:gpu` |
|
* PORT: `7860` |
|
* ~Health Route: `/`~-> is default |
|
|
|
Also make sure to add `server_name="0.0.0.0"` in your `launch()` call to make sure the request is correct proxied. |
|
|
|
If you want to use the UI with the Inference Endpoint, you have to select as endpoint type `public` and add [auth through gradio](https://gradio.app/docs/#launch-header) |
|
|
|
### Example API Request Payload |
|
|
|
Get an image you want to use, e.g. |
|
|
|
```bash |
|
!wget https://datasets-server.huggingface.co/assets/naver-clova-ix/cord-v2/--/naver-clova-ix--cord-v2/train/0/image/image.jpg |
|
``` |
|
|
|
run inference |
|
|
|
```python |
|
import requests as r |
|
import base64 |
|
|
|
ENDPOINT_URL = "" |
|
HF_TOKEN = "" |
|
|
|
def predict(path_to_image: str = None): |
|
ext = path_to_image.split('.')[-1] |
|
prefix = f'data:image/{ext};base64,' |
|
with open(path_to_image, 'rb') as f: |
|
img = f.read() |
|
|
|
payload = {"data": [prefix + base64.b64encode(img).decode('utf-8')]} |
|
response = r.post( |
|
f"{ENDPOINT_URL}/api/predict", headers={"Authorization": f"Bearer {HF_TOKEN}"}, json=payload |
|
) |
|
if response.status_code == 200: |
|
return response.json() |
|
else: |
|
raise Exception(f"Error: {response.status_code}") |
|
|
|
|
|
prediction = predict(path_to_image="image.jpg") |
|
|
|
``` |