GithubHelp home page GithubHelp logo

efs-api's Introduction

Outil de recherche d'expertise (expert finder system)

Université Paris 1 Panthéon-Sorbonne

L'outil de recherche d'expertise (EFS) est un POC (proof of concept) de moteur de recherche d'expertises en établissement ESR assisté par l'intelligence artificielle et basé sur les données Hal développé par l'Université Paris 1 Panthéon-Sorbonne. Il permet d'identifier des experts sur la base de leurs publications à partir d' une requête utilisateur en langage naturel. L'EFS est alimenté quotidiennement par les données du portail HAL institutionnel. Il utilise les modèles de langage S-BERT (paraphrase-multilingual-mpnet-base-v2) et GPT-3 (ADA) de l'API OpenAI pour calculer les similarités entre les requêtes utilisateur et les métadonnées des publications.

L'interface utilisateur est intégrée comme un widget sur le site institutionnel de l'Université Paris 1 Panthéon-Sorbonne : https://recherche.pantheonsorbonne.fr/structures-recherche/rechercher-expertise

Pour plus d'informations, voir cet article de l'observatoire de l'intelligence artificielle de Paris 1.

Avertissement

Cette application est un POC ("proof of concept"). Ce n'est pas une application pérenne et elle n'a pas vocation à être maintenue. L'université Paris 1 panthéon Sorbonne travaille désormais sur un nouvel outil de recherche d'expertise, baptisé Idyia, dans le cadre de son projet de système d'information recherche mutualisé.

La présente application comporte d'importantes limitations :

  • limitations fonctionnelles : la recherche d'experts s'effectue exclusivement à partir de métadonnées texte vectorisées ( recherche sémantique), à l'exclusion de toute recherche par mots-clés, ce qui rend difficile pour les chercheurs et les chercheuses le contrôle de leurs modalités d'exposition.
  • limitations techniques : le code n'est pas sous linting ni sous tests unitaires et la documentation est limitée
  • limitations du périmètre de données : seules les données HAL sont disponibles et les affiliations ne sont connues qu'approximativement.

Néanmoins, cet outil de recherche d'expertise est suffisamment robuste et sécurisé pour un déploiement en production.

Architecture

L'EFS est une application 3 tiers :

Licence

Le code source de l'EFS est publié sous licence CECILL v2.1. Voir le fichier LICENSE pour plus de détails.

Déploiement de l'API

Le présent repository efs-api héberge le code source de l'API de l'EFS (Node/Typescript/Express).

  • L'environnement est géré sous dotenv (completer le fichier .env.example en retirant l'extension .example) Notez que le paramêtre d'environnement CLIENT_URL sert à gérer la problématique CORS dans le contexte d'un déploiement du service en tant que widget sur un site ou un portail web.
  • L'API a été compilée et exécutée avec succès sous node v17.9.0 (npm v8.5.5)
  • Le trafic vers l'API est régulé par un rate limiter dont les paramètres sont codés en dur (20 requêtes maximum dans une fenêtre de 3 minutes). Ce dispostif a pour but de protéger l'API contre le risque de spam ( débit du compte OpenAI ou déni de service). Pour les requêtes vers OpenAI, une Captcha vient compléter le dispositif.
  • Un second mécanisme, appelé flow limiter régule le trafic de façon dynamique en bloquant les requêtes lorsque les temps de traitement dépassent 5 secondes. La durée de vie du verrou est ensuite incrémentée/décrémentée en fonction de l'évolution des temps de réponse. L'état bloqué/débloqué est persisté par un flag Redis assorti d'une durée de vie. Ce second dispositif permet d'empêcher la formation de files d'attente en retournant une réponse élégante à l'utilisateur (code HTTP 503, 'Server under heavy load' au niveau API) plutôt qu'une requête qui ne revient jamais, lorsque la charge dépasse les capacités de la machine.

efs-api's People

Contributors

jdp1ps avatar

Watchers

 avatar  avatar

efs-api's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.