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

Function _pack_single_community_describe

_cluster_utils.py:351–403  ·  view source on GitHub ↗
(
    entitys,
    relations,
    max_token_size: int = 12000,
    global_config: dict = {},
)

Source from the content-addressed store, hash-verified

349 def perform_clustering(self, embeddings: np.ndarray, **kwargs) -> List[List[int]]:
350 pass
351def _pack_single_community_describe(
352 entitys,
353 relations,
354 max_token_size: int = 12000,
355 global_config: dict = {},
356) -> str:
357
358 node_fields = ["id", "entity", "type", "description", "degree"]
359 edge_fields = ["id", "source", "target", "description", "rank"]
360 nodes_list_data = [
361 [
362 i,
363 entity.get("entity_name"),
364 entity.get("entity_type", "UNKNOWN"),
365 entity.get("description", "UNKNOWN"),
366 entity.get("degree",1)
367 ]
368 for i,entity in enumerate(entitys)
369 ]
370 nodes_list_data = sorted(nodes_list_data, key=lambda x: x[-1], reverse=True)
371 nodes_may_truncate_list_data = truncate_list_by_token_size(
372 nodes_list_data, key=lambda x: x[3], max_token_size=max_token_size // 2
373 )
374 edges_list_data = [
375 [
376 i,
377 relation.get("src_tgt"),
378 relation.get("tgt_src"),
379 relation.get("description", "UNKNOWN"),
380 ]
381 for i, relation in enumerate(relations.values())
382 ]
383 edges_list_data = sorted(edges_list_data, key=lambda x: x[-1], reverse=True)
384 edges_may_truncate_list_data = truncate_list_by_token_size(
385 edges_list_data, key=lambda x: x[3], max_token_size=max_token_size // 2
386 )
387
388 truncated = len(nodes_list_data) > len(nodes_may_truncate_list_data) or len(
389 edges_list_data
390 ) > len(edges_may_truncate_list_data)
391
392
393 nodes_describe = list_of_list_to_csv([node_fields] + nodes_may_truncate_list_data)
394 edges_describe = list_of_list_to_csv([edge_fields] + edges_may_truncate_list_data)
395 return f"""
396-----Entities-----
397```csv
398{nodes_describe}
399```
400-----Relationships-----
401```csv
402{edges_describe}
403```"""
404def process_cluster(
405 use_llm_func, embeddings_func, \
406 clusters,label,nodes,community_report_prompt,\

Callers 2

process_clusterFunction · 0.85
perform_clusteringMethod · 0.85

Calls 2

list_of_list_to_csvFunction · 0.70

Tested by

no test coverage detected