Kevin Hu commited on
Commit
9cbbedc
·
1 Parent(s): 5ec7450

fix SILICONFLOW rerank error (#2980)

Browse files

### What problem does this PR solve?

#2977

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

Files changed (2) hide show
  1. api/apps/chunk_app.py +21 -2
  2. rag/llm/rerank_model.py +3 -0
api/apps/chunk_app.py CHANGED
@@ -320,9 +320,28 @@ def knowledge_graph():
320
  for id in sres.ids[:2]:
321
  ty = sres.field[id]["knowledge_graph_kwd"]
322
  try:
323
- obj[ty] = json.loads(sres.field[id]["content_with_weight"])
324
  except Exception as e:
325
- print(traceback.format_exc(), flush=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
 
327
  return get_json_result(data=obj)
328
 
 
320
  for id in sres.ids[:2]:
321
  ty = sres.field[id]["knowledge_graph_kwd"]
322
  try:
323
+ content_json = json.loads(sres.field[id]["content_with_weight"])
324
  except Exception as e:
325
+ continue
326
+
327
+ if ty == 'mind_map':
328
+ node_dict = {}
329
+
330
+ def repeat_deal(content_json, node_dict):
331
+ if 'id' in content_json:
332
+ if content_json['id'] in node_dict:
333
+ node_name = content_json['id']
334
+ content_json['id'] += f"({node_dict[content_json['id']]})"
335
+ node_dict[node_name] += 1
336
+ else:
337
+ node_dict[content_json['id']] = 1
338
+ if 'children' in content_json and content_json['children']:
339
+ for item in content_json['children']:
340
+ repeat_deal(item, node_dict)
341
+
342
+ repeat_deal(content_json, node_dict)
343
+
344
+ obj[ty] = content_json
345
 
346
  return get_json_result(data=obj)
347
 
rag/llm/rerank_model.py CHANGED
@@ -344,6 +344,9 @@ class SILICONFLOWRerank(Base):
344
  self.base_url, json=payload, headers=self.headers
345
  ).json()
346
  rank = np.zeros(len(texts), dtype=float)
 
 
 
347
  for d in response["results"]:
348
  rank[d["index"]] = d["relevance_score"]
349
  return (
 
344
  self.base_url, json=payload, headers=self.headers
345
  ).json()
346
  rank = np.zeros(len(texts), dtype=float)
347
+ if "results" not in response:
348
+ return rank, 0
349
+
350
  for d in response["results"]:
351
  rank[d["index"]] = d["relevance_score"]
352
  return (