Spaces:
Sleeping
Sleeping
| 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}") | |