提交 b78fe4b4 编写于 作者: B barrierye

fix web service

上级 0b717de4
...@@ -24,7 +24,9 @@ class BertService(WebService): ...@@ -24,7 +24,9 @@ class BertService(WebService):
self.reader = BertReader(vocab_file="vocab.txt", max_seq_len=128) self.reader = BertReader(vocab_file="vocab.txt", max_seq_len=128)
def preprocess(self, feed={}, fetch=[]): def preprocess(self, feed={}, fetch=[]):
feed_res = self.reader.process(feed["words"].encode("utf-8")) feed_res = [{
"words": self.reader.process(ins["words"].encode("utf-8"))
} for ins in feed]
return feed_res, fetch return feed_res, fetch
......
...@@ -23,23 +23,14 @@ from paddle_serving_app import ImageReader ...@@ -23,23 +23,14 @@ from paddle_serving_app import ImageReader
class ImageService(WebService): class ImageService(WebService):
def preprocess(self, feed={}, fetch=[]): def preprocess(self, feed={}, fetch=[]):
reader = ImageReader() reader = ImageReader()
if "image" not in feed: feed_batch = []
raise ("feed data error!") for ins in feed:
if isinstance(feed["image"], list): if "image" not in ins:
feed_batch = [] raise ("feed data error!")
for image in feed["image"]: sample = base64.b64decode(ins["image"])
sample = base64.b64decode(image)
img = reader.process_image(sample)
res_feed = {}
res_feed["image"] = img
feed_batch.append(res_feed)
return feed_batch, fetch
else:
sample = base64.b64decode(feed["image"])
img = reader.process_image(sample) img = reader.process_image(sample)
res_feed = {} feed_batch.append({"image": img})
res_feed["image"] = img return feed_batch, fetch
return res_feed, fetch
image_service = ImageService(name="image") image_service = ImageService(name="image")
......
...@@ -23,24 +23,14 @@ from paddle_serving_server_gpu.web_service import WebService ...@@ -23,24 +23,14 @@ from paddle_serving_server_gpu.web_service import WebService
class ImageService(WebService): class ImageService(WebService):
def preprocess(self, feed={}, fetch=[]): def preprocess(self, feed={}, fetch=[]):
reader = ImageReader() reader = ImageReader()
if "image" not in feed: feed_batch = []
raise ("feed data error!") for ins in feed:
print(type(feed["image"]), isinstance(feed["image"], list)) if "image" not in ins:
if isinstance(feed["image"], list): raise ("feed data error!")
feed_batch = [] sample = base64.b64decode(ins["image"])
for image in feed["image"]:
sample = base64.b64decode(image)
img = reader.process_image(sample)
res_feed = {}
res_feed["image"] = img
feed_batch.append(res_feed)
return feed_batch, fetch
else:
sample = base64.b64decode(feed["image"])
img = reader.process_image(sample) img = reader.process_image(sample)
res_feed = {} feed_batch.append({"image": img})
res_feed["image"] = img return feed_batch, fetch
return res_feed, fetch
image_service = ImageService(name="image") image_service = ImageService(name="image")
......
...@@ -26,10 +26,9 @@ class IMDBService(WebService): ...@@ -26,10 +26,9 @@ class IMDBService(WebService):
self.dataset.load_resource(args["dict_file_path"]) self.dataset.load_resource(args["dict_file_path"])
def preprocess(self, feed={}, fetch=[]): def preprocess(self, feed={}, fetch=[]):
if "words" not in feed: res_feed = [{
exit(-1) "words": self.dataset.get_words_only(ins["words"])
res_feed = {} } for ins in feed]
res_feed["words"] = self.dataset.get_words_only(feed["words"])
return res_feed, fetch return res_feed, fetch
......
...@@ -22,15 +22,22 @@ class LACService(WebService): ...@@ -22,15 +22,22 @@ class LACService(WebService):
self.reader = LACReader("lac_dict") self.reader = LACReader("lac_dict")
def preprocess(self, feed={}, fetch=[]): def preprocess(self, feed={}, fetch=[]):
if "words" not in feed: batch_feed = []
raise ("feed data error!") for ins in feed:
feed_data = self.reader.process(feed["words"]) if "words" not in ins:
raise ("feed data error!")
feed_data = self.reader.process(ins["words"])
batch_feed.append({"words": feed_data})
fetch = ["crf_decode"] fetch = ["crf_decode"]
return {"words": feed_data}, fetch return batch_feed, fetch
def postprocess(self, feed={}, fetch=[], fetch_map={}): def postprocess(self, feed={}, fetch=[], fetch_map={}):
segs = self.reader.parse_result(feed["words"], fetch_map["crf_decode"]) ret = []
return {"word_seg": "|".join(segs)} for idx, ins in enumerate(feed):
segs = self.reader.parse_result(ins["words"],
fetch_map[idx]["crf_decode"])
ret.append({"word_seg": "|".join(segs)})
return ret
lac_service = LACService(name="lac") lac_service = LACService(name="lac")
......
...@@ -87,7 +87,7 @@ class SentaService(WebService): ...@@ -87,7 +87,7 @@ class SentaService(WebService):
if self.show: if self.show:
print("---- senta reader ----") print("---- senta reader ----")
print("feed_data", feed_data) print("feed_data", feed_data)
return {"words": feed_data}, fetch return [{"words": feed_data}], fetch
senta_service = SentaService(name="senta") senta_service = SentaService(name="senta")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册