Plugin Search and Composition Using NLP #145
Labels
contribution-project
registered
A project which has been registered with the GSF
submitted
The project team has submitted their solution.
Prize category
Best Contribution to the Framework
Overview
NLP-Based Plugin Selection:
Develop a Natural Language Processing (NLP) engine to match user descriptions with the most suitable plugins, streamlining the selection process.
Plugin Composition:
Automating the composition of plugins to create integrated solutions for complex tasks, saving time and enhancing efficiency.
Terms of Participation
Project Submission
Summary
I have created a NLP based solution wherein we get the most appropriate plugin matching the user descriptions. Also the service composer will dynamically calculate all possible paths from that source to destination. This enhances productivity who are new to Impact Framework and increases efficiency among existing developers.
Problem
The moment I started using IF there were plenty of documentations about plugins and how to use them. While I was thinking to build a project on that I arrived at a problem statement wherein we automate this process since I had to spend a lot of time to read the docs and understand what plugin to use. Moreover I was stuck how to compose different plugins together to do a task.
Application
Using NLP we identify the best matching descriptions as per the user's descriptions. We have trained it over Spacy trained models. We can also get the links to the necessary documentation without having to search manually in the GitHub page of IF. Also if we want to know which plugin to use we can simply add the input and output parameters. The service composer will dynamically calculate all possible paths from that source to destination.
Prize category
Best Contribution to the Framework
Judging Criteria
Overall Impact 👩🏽⚖️
It would make IF more reusable to new developers and existing developers alike. With this technology IF will be able to create more impact with the possible number of integrations to multiple applications.
Innovation and Creativity
I have explored SpaCy and NLP to understand user's needs. I have also tried to make it efficient by adding hyperlinks to the best matched plugins so less time is taken while going through the documentation. I also explored on how to map the input and output parameters of a plugin so that we can compose them as per our needs.
User Experience
I have tried to make the UI as simple as possible so that it is easy to look for plugins and compose them. We can easily go to the relevant docs as per our requirement and with composition we can easily integrate into existing workflows.
Video
Plugin Search and Composition
Process
I have internally added all the IF plugin name and description. When a user gives the description in the frontend I calculate the similarity scores of each text and return the top matching descriptions with the links to the GitHub page. For the service composer, I have built a graph like structure in Azure Cosmos Db and use Gremlin to query the graph based on the input and output parameters.
Inspiration
To reduce time taken by new developers like us to easily be able to work with the framework.
Challenges
To build this I had to go through multiple documentation and examples. I also had work commitments so managing both was a challenge.
Accomplishments
Successfully built the NLP based prompt using Flask, also the service composer integration was a challenge to build.
Learnings
I learned how to use NLP and integrate Azure and Gremlin together to give powerful insights. Also, learned about the different plugins of IF.
What's next?
To improve on the existing NLP model and also the path calculation for multiple input and output parameters. Also the composed yaml commands I plan to build some service invocation with which we can invoke all the services and visualize the output file.
The text was updated successfully, but these errors were encountered: