### What problem does this PR solve? ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)tags/v0.20.0
| @@ -83,5 +83,9 @@ def init_root_logger(logfile_basename: str, log_format: str = "%(asctime)-15s %( | |||
| def log_exception(e, *args): | |||
| logging.exception(e) | |||
| for a in args: | |||
| logging.error(str(a)) | |||
| if hasattr(a, "text"): | |||
| logging.error(a.text) | |||
| raise Exception(a.text) | |||
| else: | |||
| logging.error(str(a)) | |||
| raise e | |||
| @@ -57,7 +57,7 @@ async def run_graphrag( | |||
| subgraph = await generate_subgraph( | |||
| LightKGExt | |||
| if "method" not in row["kb_parser_config"]["graphrag"] or row["kb_parser_config"]["graphrag"]["method"] != "general" | |||
| if "method" not in row["kb_parser_config"].get("graphrag", {}) or row["kb_parser_config"]["graphrag"]["method"] != "general" | |||
| else GeneralKGExt, | |||
| tenant_id, | |||
| kb_id, | |||
| @@ -300,11 +300,12 @@ async def build_chunks(task, progress_callback): | |||
| d["image"].close() # Close original image | |||
| d["image"] = converted_image | |||
| d["image"].save(output_buffer, format='JPEG') | |||
| d["image"].close() # Close PIL image after saving | |||
| async with minio_limiter: | |||
| await trio.to_thread.run_sync(lambda: STORAGE_IMPL.put(task["kb_id"], d["id"], output_buffer.getvalue())) | |||
| d["img_id"] = "{}-{}".format(task["kb_id"], d["id"]) | |||
| if not isinstance(d["image"], bytes): | |||
| d["image"].close() | |||
| del d["image"] # Remove image reference | |||
| docs.append(d) | |||
| finally: | |||