Kwipu

Kwipu

C'EST QUOI ?

Kwipu transforme un dossier de documents en index RAG à graphe de propriétés, que tu interroges depuis un terminal, une interface web 3D ou un client MCP. Il avale les fichiers .md, .txt, .pdf et .docx, en tire des relations sémantiques via un LLM et des relations structurelles via les wikilinks et le frontmatter YAML. Chaque réponse arrive avec ses citations et le chunk source correspondant.

POURQUOI C'EST INTÉRESSANT ?

  • Deux sources de vérité pour le graphe : le LLM extrait les triplets entité-relation depuis le texte, tandis que les wikilinks et le frontmatter fournissent les liens que tu as déjà écrits à la main. Le graphe ne dépend donc pas uniquement de ce que le modèle a bien voulu comprendre.
  • Récupération hybride : similarité vectorielle, BM25, métadonnées temporelles et un retriever de synonymes appelé à chaque requête. Le mode --fast coupe ce dernier, tout comme le serveur MCP et le bridge API.
  • Trois interfaces sur le même index : une CLI interactive qui surveille le dossier source, une API JSON versionnée en FastAPI, et un serveur MCP qui expose query_graph et query_graph_detailed.
  • Modèle de stockage sérieux : la CLI est le seul processus écrivain, le bridge reste en lecture seule et renvoie 503 tant qu'aucun index publié n'existe. Les écritures passent par une génération de staging publiée atomiquement, avec verrou inter-processus et conservation temporaire de la génération précédente.
  • Local, mais à toi de le décider : le LLM par défaut est gpt-oss:20b-cloud, qui envoie les chunks au fournisseur du modèle. Le README explique comment basculer sur un modèle Ollama local avant le premier indexage, et impose HTTPS pour tout endpoint non-loopback.
  • Sources ouvrables depuis le graphe : l'endpoint /expand lit le document derrière un nœud cité, extraction PDF et DOCX comprise, sans repasser par un LLM.

CAS D'USAGE

  • Interroger un coffre Obsidian en langage naturel tout en gardant ses notes ouvertes dans l'éditeur
  • Reconstituer la chronologie d'un projet à partir de comptes rendus de réunion éparpillés
  • Brancher un client MCP sur ses propres notes pour que l'agent réponde en citant les fichiers d'origine
  • Explorer visuellement les liens entre entités et documents dans le graphe 3D du frontend

SOURCES

DÉPÔThttps://github.com/benmaster82/Kwipu
LICENCEMIT