Kevin Hu
commited on
Commit
·
b5e86a6
1
Parent(s):
3154d16
fix generate error (#1590)
Browse files### What problem does this PR solve?
#1550 #1210
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
- api/apps/canvas_app.py +4 -3
- deepdoc/parser/ppt_parser.py +1 -1
- graph/component/arxiv.py +1 -1
- graph/component/generate.py +4 -1
api/apps/canvas_app.py
CHANGED
|
@@ -103,10 +103,10 @@ def run():
|
|
| 103 |
except Exception as e:
|
| 104 |
return server_error_response(e)
|
| 105 |
|
| 106 |
-
assert answer, "Nothing. Is it over?"
|
| 107 |
|
| 108 |
if stream:
|
| 109 |
-
assert isinstance(answer, partial)
|
| 110 |
|
| 111 |
def sse():
|
| 112 |
nonlocal answer, cvs
|
|
@@ -135,12 +135,13 @@ def run():
|
|
| 135 |
resp.headers.add_header("Content-Type", "text/event-stream; charset=utf-8")
|
| 136 |
return resp
|
| 137 |
|
|
|
|
| 138 |
canvas.messages.append({"role": "assistant", "content": final_ans["content"]})
|
| 139 |
if final_ans.get("reference"):
|
| 140 |
canvas.reference.append(final_ans["reference"])
|
| 141 |
cvs.dsl = json.loads(str(canvas))
|
| 142 |
UserCanvasService.update_by_id(req["id"], cvs.to_dict())
|
| 143 |
-
return get_json_result(data=
|
| 144 |
|
| 145 |
|
| 146 |
@manager.route('/reset', methods=['POST'])
|
|
|
|
| 103 |
except Exception as e:
|
| 104 |
return server_error_response(e)
|
| 105 |
|
| 106 |
+
assert answer is not None, "Nothing. Is it over?"
|
| 107 |
|
| 108 |
if stream:
|
| 109 |
+
assert isinstance(answer, partial), "Nothing. Is it over?"
|
| 110 |
|
| 111 |
def sse():
|
| 112 |
nonlocal answer, cvs
|
|
|
|
| 135 |
resp.headers.add_header("Content-Type", "text/event-stream; charset=utf-8")
|
| 136 |
return resp
|
| 137 |
|
| 138 |
+
final_ans["content"] = "\n".join(answer["content"]) if "content" in answer else ""
|
| 139 |
canvas.messages.append({"role": "assistant", "content": final_ans["content"]})
|
| 140 |
if final_ans.get("reference"):
|
| 141 |
canvas.reference.append(final_ans["reference"])
|
| 142 |
cvs.dsl = json.loads(str(canvas))
|
| 143 |
UserCanvasService.update_by_id(req["id"], cvs.to_dict())
|
| 144 |
+
return get_json_result(data={"answer": final_ans["content"], "reference": final_ans.get("reference", [])})
|
| 145 |
|
| 146 |
|
| 147 |
@manager.route('/reset', methods=['POST'])
|
deepdoc/parser/ppt_parser.py
CHANGED
|
@@ -52,7 +52,7 @@ class RAGFlowPptParser(object):
|
|
| 52 |
break
|
| 53 |
texts = []
|
| 54 |
for shape in sorted(
|
| 55 |
-
slide.shapes, key=lambda x: (x.top // 10, x.left)):
|
| 56 |
txt = self.__extract(shape)
|
| 57 |
if txt:
|
| 58 |
texts.append(txt)
|
|
|
|
| 52 |
break
|
| 53 |
texts = []
|
| 54 |
for shape in sorted(
|
| 55 |
+
slide.shapes, key=lambda x: ((x.top if x.top is not None else 0) // 10, x.left)):
|
| 56 |
txt = self.__extract(shape)
|
| 57 |
if txt:
|
| 58 |
texts.append(txt)
|
graph/component/arxiv.py
CHANGED
|
@@ -65,4 +65,4 @@ class ArXiv(ComponentBase, ABC):
|
|
| 65 |
|
| 66 |
df = pd.DataFrame(arxiv_res)
|
| 67 |
if DEBUG: print(df, ":::::::::::::::::::::::::::::::::")
|
| 68 |
-
return df
|
|
|
|
| 65 |
|
| 66 |
df = pd.DataFrame(arxiv_res)
|
| 67 |
if DEBUG: print(df, ":::::::::::::::::::::::::::::::::")
|
| 68 |
+
return df
|
graph/component/generate.py
CHANGED
|
@@ -86,7 +86,10 @@ class Generate(ComponentBase):
|
|
| 86 |
# prompt = re.sub(r"\{%s\}"%n, re.escape(str(v)), prompt)
|
| 87 |
prompt = re.sub(r"\{%s\}" % n, str(v), prompt)
|
| 88 |
|
| 89 |
-
|
|
|
|
|
|
|
|
|
|
| 90 |
return partial(self.stream_output, chat_mdl, prompt, retrieval_res)
|
| 91 |
|
| 92 |
if "empty_response" in retrieval_res.columns:
|
|
|
|
| 86 |
# prompt = re.sub(r"\{%s\}"%n, re.escape(str(v)), prompt)
|
| 87 |
prompt = re.sub(r"\{%s\}" % n, str(v), prompt)
|
| 88 |
|
| 89 |
+
downstreams = self._canvas.get_component(self._id)["downstream"]
|
| 90 |
+
if kwargs.get("stream") \
|
| 91 |
+
and len(downstreams) == 1 \
|
| 92 |
+
and self._canvas.get_component(downstreams[0])["obj"].component_name.lower() == "answer":
|
| 93 |
return partial(self.stream_output, chat_mdl, prompt, retrieval_res)
|
| 94 |
|
| 95 |
if "empty_response" in retrieval_res.columns:
|