easier version: detect chunking_func result is coroutine or not

This commit is contained in:
Tong Da 2025-11-10 20:49:50 +08:00
parent d137ba5843
commit 245df75d9c

View file

@ -1,6 +1,5 @@
from __future__ import annotations from __future__ import annotations
from inspect import iscoroutinefunction
import traceback import traceback
import asyncio import asyncio
import configparser import configparser
@ -1758,16 +1757,6 @@ class LightRAG:
content = content_data["content"] content = content_data["content"]
# Generate chunks from document # Generate chunks from document
if iscoroutinefunction(self.chunking_func):
chunks = await self.chunking_func(
self.tokenizer,
content,
split_by_character,
split_by_character_only,
self.chunk_overlap_token_size,
self.chunk_token_size,
)
else:
chunks = self.chunking_func( chunks = self.chunking_func(
self.tokenizer, self.tokenizer,
content, content,
@ -1776,6 +1765,9 @@ class LightRAG:
self.chunk_overlap_token_size, self.chunk_overlap_token_size,
self.chunk_token_size, self.chunk_token_size,
) )
# 判断chunks是否是异步异步函数的返回
if asyncio.iscoroutine(chunks):
chunks = await chunks
chunks: dict[str, Any] = { chunks: dict[str, Any] = {
compute_mdhash_id(dp["content"], prefix="chunk-"): { compute_mdhash_id(dp["content"], prefix="chunk-"): {
**dp, **dp,