Download kg_builder/src/utils.py from Master-Thesis-Prakhar/GraphRAG: direct link, hf CLI and curl.
- Browser
- Download file 1.44 kB
-
https://huggingface.co/Master-Thesis-Prakhar/GraphRAG/resolve/main/kg_builder/src/utils.py
- Command line
-
hf download hf://Master-Thesis-Prakhar/GraphRAG/kg_builder/src/utils.py
-
curl -L -o utils.py https://huggingface.co/Master-Thesis-Prakhar/GraphRAG/resolve/main/kg_builder/src/utils.py
1.44 kB
| from langchain_community.graphs.graph_document import ( | |
| Node as BaseNode, | |
| Relationship as BaseRelationship, | |
| ) | |
| from models import Node, Relationship | |
| def format_property_key(s: str) -> str: | |
| words = s.split() | |
| if not words: | |
| return s | |
| first_word = words[0].lower() | |
| capitalized_words = [word.capitalize() for word in words[1:]] | |
| return "".join([first_word] + capitalized_words) | |
| def props_to_dict(props) -> dict: | |
| """Convert properties to a dictionary.""" | |
| properties = {} | |
| if not props: | |
| return properties | |
| for p in props: | |
| properties[format_property_key(p.key)] = p.value | |
| return properties | |
| def map_to_base_node(node: Node) -> BaseNode: | |
| """Map the KnowledgeGraph Node to the base Node.""" | |
| properties = props_to_dict(node.properties) if node.properties else {} | |
| properties["name"] = node.id.title() # Assuming nodes have an 'id' attribute for this operation | |
| return BaseNode( | |
| id=node.id.title(), type=node.type.capitalize(), properties=properties | |
| ) | |
| def map_to_base_relationship(rel: Relationship) -> BaseRelationship: | |
| """Map the KnowledgeGraph Relationship to the base Relationship.""" | |
| source = map_to_base_node(rel.source) | |
| target = map_to_base_node(rel.target) | |
| properties = props_to_dict(rel.properties) if rel.properties else {} | |
| return BaseRelationship( | |
| source=source, target=target, type=rel.type, properties=properties | |
| ) | |