Spaces:
Running
Running
import pickle | |
import os | |
from huggingface_hub import HfApi, login | |
import networkx as nx | |
def save_knowledge_graph(knowledge_graph, filepath="./knowledge_graph_final.pkl"): | |
"""Save the knowledge graph to a local file""" | |
# Convert the graph to a serializable format | |
graph_data = { | |
'nodes': {node: data for node, data in knowledge_graph.nodes(data=True)}, | |
'edges': {u: {v: data for v, data in knowledge_graph[u].items()} | |
for u in knowledge_graph.nodes()} | |
} | |
# Save to file | |
with open(filepath, 'wb') as f: | |
pickle.dump(graph_data, f) | |
print(f"Knowledge graph saved to {filepath}") | |
return filepath | |
def push_to_huggingface(filepath, repo_id, token=None): | |
"""Push the saved knowledge graph to Hugging Face Hub""" | |
if token is None: | |
token = os.getenv("HF_TOKEN") | |
if not token: | |
raise ValueError("No Hugging Face token provided. Set HF_TOKEN environment variable or pass token parameter.") | |
# Login to Hugging Face | |
login(token=token) | |
# Initialize the Hugging Face API | |
api = HfApi() | |
# Upload the file | |
api.upload_file( | |
path_or_fileobj=filepath, | |
path_in_repo="knowledge_graph_final.pkl", | |
repo_id=repo_id, | |
repo_type="space" | |
) | |
print(f"Knowledge graph pushed to Hugging Face Hub: {repo_id}") | |