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 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=req["dsl"])
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
- if kwargs.get("stream"):
 
 
 
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: