MCPcopy Create free account
hub / github.com/KnowledgeXLab/LeanRAG / chunk_documents

Function chunk_documents

file_chunk.py:6–36  ·  view source on GitHub ↗
(
    docs,
    model_name="cl100k_base",
    max_token_size=512,
    overlap_token_size=64,
)

Source from the content-addressed store, hash-verified

4def compute_mdhash_id(content, prefix: str = ""):
5 return prefix + md5(content.encode()).hexdigest()
6def chunk_documents(
7 docs,
8 model_name="cl100k_base",
9 max_token_size=512,
10 overlap_token_size=64,
11):
12 ENCODER = tiktoken.get_encoding(model_name)
13 tokens_list = ENCODER.encode_batch(docs, num_threads=16)
14
15 results = []
16 for index, tokens in enumerate(tokens_list):
17 chunk_token_ids = []
18 lengths = []
19
20 for start in range(0, len(tokens), max_token_size - overlap_token_size):
21 chunk = tokens[start : start + max_token_size]
22 chunk_token_ids.append(chunk)
23 lengths.append(len(chunk))
24
25 # 解码所有 chunk
26 chunk_texts = ENCODER.decode_batch(chunk_token_ids)
27
28 for i, text in enumerate(chunk_texts):
29 results.append({
30 # "tokens": lengths[i],
31 "hash_code": compute_mdhash_id(text), ##使用hash进行编码
32 "text": text.strip().replace("\n", ""),
33 # "chunk_order_index": i,
34 })
35
36 return results
37if __name__ == "__main__":
38 max_token_size=1024
39 overlap_token_size=128

Callers 1

file_chunk.pyFile · 0.85

Calls 1

compute_mdhash_idFunction · 0.70

Tested by

no test coverage detected