Intermédiaire
🧠 Fondamentaux
30 XP
0 personnes ont réussi
Knowledge Graph avec NetworkX
Un Knowledge Graph (graphe de connaissances) représente des informations sous forme de triplets : (sujet, relation, objet). Par exemple : (Python, est_un, langage), (Django, utilise, Python), (FastAPI, utilise, Python).
C'est une approche complementaire aux embeddings pour le RAG. Au lieu de chercher par similarite semantique, tu navigues dans un reseau de relations structurees.
La librairie networkx permet de créer facilement ces graphes en Python :
import networkx as nx
G = nx.DiGraph() # graphe oriente G.add_edge("Python", "langage", relation="est_un") G.add_edge("Django", "Python", relation="utilise")
# Tous les voisins sortants de Python list(G.successors("Python")) # ["langage"]
# Tous les noeuds qui pointent vers Python list(G.predecessors("Python")) # ["Django"]
# Acceder a la relation G.edges["Django", "Python"]["relation"] # "utilise"
Écris une fonction build_knowledge_graph(triplets) qui : - prend une liste de triplets (sujet, relation, objet) sous forme de tuples - construit un graphe oriente avec networkx - renvoie le graphe
Puis une fonction query_graph(graph, entity) qui : - prend un graphe et le nom d'une entite - renvoie un dictionnaire avec deux clés : - "relations_sortantes" : liste de tuples (relation, cible) pour les aretes sortantes - "relations_entrantes" : liste de tuples (source, relation) pour les aretes entrantes