Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin Search and Composition Using NLP #145

Open
1 task done
agwlprince617 opened this issue Apr 7, 2024 · 0 comments
Open
1 task done

Plugin Search and Composition Using NLP #145

agwlprince617 opened this issue Apr 7, 2024 · 0 comments
Assignees
Labels
contribution-project registered A project which has been registered with the GSF submitted The project team has submitted their solution.

Comments

@agwlprince617
Copy link

agwlprince617 commented Apr 7, 2024

Prize category

Best Contribution to the Framework

Overview

  1. NLP-Based Plugin Selection:
    Develop a Natural Language Processing (NLP) engine to match user descriptions with the most suitable plugins, streamlining the selection process.

  2. 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.

@agwlprince617 agwlprince617 added the draft This project is in draft mode and has not been submitted label Apr 7, 2024
@russelltrow russelltrow added registered A project which has been registered with the GSF contribution-project submitted The project team has submitted their solution. and removed draft This project is in draft mode and has not been submitted labels Apr 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution-project registered A project which has been registered with the GSF submitted The project team has submitted their solution.
Projects
None yet
Development

No branches or pull requests

2 participants