luisresende13 commited on
Commit
3a5d5bb
1 Parent(s): 77997f1

Upload 2 files

Browse files
Files changed (2) hide show
  1. handler.py +31 -0
  2. requirements.txt +1 -0
handler.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Dict, List, Any
2
+ from transformers import pipeline
3
+ from PIL import Image
4
+ import requests
5
+
6
+ class EndpointHandler():
7
+ def __init__(self, path=""):
8
+ model_id = "llava-hf/llava-interleave-qwen-0.5b-hf"
9
+ self.pipe = pipeline("image-to-text", model=model_id)
10
+
11
+ def __call__(self, data: Dict[str, Any]) -> List[Dict[str, Any]]:
12
+ """
13
+ data args:
14
+ inputs (:obj: `str` | `PIL.Image` | `np.array`)
15
+ kwargs
16
+ Return:
17
+ A :obj:`list` | `dict`: will be serialized and returned
18
+ """
19
+
20
+ inputs = data.pop('inputs', data)
21
+ url = inputs.get('url')
22
+ prompt = inputs.get('prompt')
23
+ max_new_tokens = inputs.get('max_new_tokens', 1000)
24
+
25
+ image = Image.open(requests.get(url, stream=True).raw)
26
+ prompt = f'user<image>\n{prompt}\nassistant:'
27
+
28
+ results = self.pipe(image, prompt=prompt, generate_kwargs={"max_new_tokens": max_new_tokens})
29
+ result = results[0]
30
+ # result['generated_text'] = result['generated_text'].replace(prompt.replace('<image>', ''), '')
31
+ return result
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ pillow