diff --git a/api/apps/chunk_app.py b/api/apps/chunk_app.py index 0ce762a61..f79a3673e 100644 --- a/api/apps/chunk_app.py +++ b/api/apps/chunk_app.py @@ -320,9 +320,28 @@ def knowledge_graph(): for id in sres.ids[:2]: ty = sres.field[id]["knowledge_graph_kwd"] try: - obj[ty] = json.loads(sres.field[id]["content_with_weight"]) + content_json = json.loads(sres.field[id]["content_with_weight"]) except Exception as e: - print(traceback.format_exc(), flush=True) + continue + + if ty == 'mind_map': + node_dict = {} + + def repeat_deal(content_json, node_dict): + if 'id' in content_json: + if content_json['id'] in node_dict: + node_name = content_json['id'] + content_json['id'] += f"({node_dict[content_json['id']]})" + node_dict[node_name] += 1 + else: + node_dict[content_json['id']] = 1 + if 'children' in content_json and content_json['children']: + for item in content_json['children']: + repeat_deal(item, node_dict) + + repeat_deal(content_json, node_dict) + + obj[ty] = content_json return get_json_result(data=obj) diff --git a/rag/llm/rerank_model.py b/rag/llm/rerank_model.py index f68869c12..fc8f6fa03 100644 --- a/rag/llm/rerank_model.py +++ b/rag/llm/rerank_model.py @@ -344,6 +344,9 @@ def similarity(self, query: str, texts: list): self.base_url, json=payload, headers=self.headers ).json() rank = np.zeros(len(texts), dtype=float) + if "results" not in response: + return rank, 0 + for d in response["results"]: rank[d["index"]] = d["relevance_score"] return (