Skip to content

Artemis-IA/weavestruct

Repository files navigation

📜 Pour plus de détails, consultez la documentation complète sur la Documentation & Guide du Projet.


🌀 WeaveStruct

De la donnée brute à l'information exploitable : traitement de documents, extraction d'entités et relations, et construction de graphes de connaissances.

WeaveStruct est une plateforme modulaire et évolutive dédiée au traitement intelligent de documents. Grâce à l'intégration de technologies avancées en NLP et en Machine Learning, elle permet d'analyser, structurer et exploiter des données non structurées en informations prêtes à l'emploi.


🚀 Fonctionnalités clés

📄 Traitement des documents

  • Formats pris en charge : PDF, DOCX, avec prise en charge de l'OCR pour les documents scannés.
  • Extraction avancée : Extraction des tableaux, figures, et métadonnées.
  • Conversion multi-format : Export en JSON, YAML, Markdown ou CSV pour une intégration aisée.

🧠 Reconnaissance d'entités et extraction de relations

  • Modèles avancés :
    • GLiNER : Reconnaissance d'entités nommées (personnes, organisations, lieux, etc.).
    • GLIREL : Extraction de relations logiques et hiérarchiques.
  • Résultats exploitables : Stockage des entités et relations dans une base de données orientée graphes (Neo4j).

🌐 Construction de graphes de connaissances

  • Stockage relationnel : Construction automatique de graphes dans Neo4j.
  • Visualisation intuitive : Données prêtes pour des outils de visualisation tels que Cytoscape ou GraphXR.

🔍 Recherche vectorielle et embeddings

  • Modèles d'embeddings : Intégration du modèle Ollama pour transformer les documents en représentations vectorielles.
  • Indexation rapide : Recherche vectorielle rapide grâce à PostgreSQL et l'extension PGVector.

📈 Suivi des performances et monitoring

  • Tracking des modèles : Intégration avec MLflow pour le suivi des expériences et métriques.
  • Monitoring système : Metrics exposées pour Prometheus pour une supervision en temps réel.

🧱 Briques utilisées

  • DoclingV2 : Framework avancé pour le traitement et l'analyse de documents. C'est le point d'entrée des données.
  • LangChain : Gestion des flux conversationnels et chaînes d'appels de modèles pour des cas complexes, avec des classes clés comme :
    • LinkExtractor : Extraction des liens logiques entre les entités mentionnées dans un document.
    • GraphTransformer : Transformation des données textuelles en graphes exploitables.
  • GLiNER : Reconnaissance d'entités nommées à l'aide de modèles NLP préentraînés.
  • Ollama : Génération d'embeddings vectoriels et analyse de documents pour la recherche vectorielle.

⚙️ API : Points d'entrée principaux et description

📂 Gestion des documents

  • POST /documents/upload/
    Description : Télécharge un document pour traitement initial (extraction de texte, OCR, etc.).

  • POST /documents/index_document/
    Description : Indexe un document pour exécuter des tâches d'extraction d'entités et de relations.

  • POST /documents/rag_process/
    Description : Convertit un document en embeddings vectoriels pour une recherche rapide.

🔗 Graphes de connaissances

  • GET /graph/entities/
    Description : Renvoie toutes les entités extraites et enregistrées dans la base de données de graphes.

  • GET /graph/relationships/
    Description : Récupère toutes les relations entre les entités identifiées.

  • GET /graph/visualize/
    Description : Renvoie les données formatées pour visualiser le graphe des entités et relations.

🔍 Recherche

  • GET /search/entities/
    Description : Permet de rechercher des entités spécifiques dans la base à l'aide de mots-clés.

  • GET /search/relationships/
    Description : Effectue une recherche sur les relations existantes dans le graphe.

🛠️ Administration et suivi

  • GET /metrics/
    Description : Expose les métriques système pour le monitoring via Prometheus.

🌟 Contribuer

Les contributions sont les bienvenues !

  1. Forkez le projet.
  2. Créez une branche pour votre fonctionnalité (git checkout -b feature/awesome-feature).
  3. Commitez vos modifications (git commit -m 'Add awesome feature').
  4. Poussez la branche (git push origin feature/awesome-feature).
  5. Ouvrez une Pull Request.

📜 Licence

Ce projet est sous licence MIT. Consultez le fichier LICENSE pour plus d'informations.


📞 Support

  • Issues : N'hésitez pas à signaler des problèmes via la section Issues.

Pour plus de détails, consultez la documentation complète sur notre GitHub Page.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors