Overview
API : Routes et Usages¶
L'API de WeaveStruct fournit divers endpoints pour la gestion de documents, la construction de graphes, et generation d'embeddings:
1. Gestion des Documents¶
POST /documents/upload/¶
- Description : Télécharge et traite des fichiers pour l'extraction de texte, figures, tableaux, et métadonnées.
- Paramètres :
files: Liste des fichiers à uploader (requis).export_formats: Liste des formats d'exportation, par exempleJSON,YAML,Markdown(par défaut :JSON).use_ocr: Activer l'OCR pour les documents scannés (par défaut :false).export_figures: Exporter les figures (par défaut :true).export_tables: Exporter les tableaux (par défaut :true).enrich_figures: Ajouter des métadonnées aux figures (par défaut :false).- Réponse :
success_count: Nombre de fichiers traités avec succès.failure_count: Nombre de fichiers échoués.
POST /documents/index_document/¶
- Description : Indexe un document en extrayant les entités et en générant des embeddings.
- Paramètres :
file: Document à indexer (optionnel).export_formats: Liste des formats d'exportation (par défaut :JSON).- Réponse :
- Message confirmant l'indexation.
- Statut des entités extraites.
2. Graphes de Connaissances¶
GET /graph/entities/¶
- Description : Récupère toutes les entités extraites.
- Paramètres : Aucun.
- Réponse : Liste des entités, incluant leurs attributs et métadonnées.
GET /graph/relationships/¶
- Description : Récupère toutes les relations entre les entités.
- Paramètres : Aucun.
- Réponse : Liste des relations avec leurs détails.
GET /graph/visualize/¶
- Description : Génère des données formatées pour visualiser le graphe des entités et relations.
- Paramètres : Aucun.
- Réponse : Données prêtes pour des outils de visualisation.
3. Recherche¶
GET /search/entities/¶
- Description : Recherche des entités par mot-clé.
- Paramètres :
query: Mot-clé ou expression à rechercher (requis).- Réponse : Liste des entités correspondantes.
GET /search/relationships/¶
- Description : Recherche des relations par mot-clé.
- Paramètres :
query: Mot-clé ou expression à rechercher (requis).- Réponse : Liste des relations correspondantes.
4. Relations¶
POST /relationships/¶
- Description : Crée une relation entre deux entités.
- Paramètres :
type: Type de la relation (requis).source_id: ID de l'entité source (requis).target_id: ID de l'entité cible (requis).- Réponse : Objet de la relation créée.
GET /relationships/¶
- Description : Liste toutes les relations.
- Paramètres : Aucun.
- Réponse : Liste des relations.
DELETE /relationships/{relationship_id}¶
- Description : Supprime une relation.
- Paramètres :
relationship_id: Identifiant de la relation (requis).- Réponse : Message confirmant la suppression.
5. Administration¶
POST /log_models/¶
- Description : Enregistre des informations sur les modèles dans les logs.
- Paramètres : Aucun.
- Réponse : Succès ou échec.
POST /log_queries/¶
- Description : Enregistre des informations sur les requêtes effectuées.
- Paramètres :
query: Requête à enregistrer (requis).- Réponse : Succès ou échec.
GET /metrics/¶
- Description : Expose des métriques pour le monitoring.
- Paramètres : Aucun.
- Réponse : Données de monitoring.
6. Ensembles de Données¶
POST /datasets/¶
- Description : Crée un ensemble de données à partir de fichiers téléchargés.
- Paramètres :
name: Nom de l'ensemble de données (optionnel).files: Fichiers à inclure dans l'ensemble de données (requis).labels: Étiquettes associées (optionnel).output_format: Format de sortie (par défaut :json-ner).- Réponse : Ensemble de données créé.
GET /datasets/¶
- Description : Liste tous les ensembles de données.
- Paramètres : Aucun.
- Réponse : Liste des ensembles de données.
DELETE /datasets/{dataset_id}¶
- Description : Supprime un ensemble de données.
- Paramètres :
dataset_id: ID de l'ensemble de données à supprimer.- Réponse : Message confirmant la suppression.
Exemple d'utilisation¶
Créer une entité¶
Requête :
POST /entities/
{
"name": "Company X",
"type": "Organization"
}
Réponse :
{
"id": "12345",
"name": "Company X",
"type": "Organization"
}
Rechercher une entité¶
Requête :
GET /search/entities/?query=Company
Réponse : ```json [ { "id": "12345", "name": "Company X", "type": "Organization" } ]