Inspiration

We built OSLI because open source licenses are confusing and they slow teams down. Developers want to build, but instead, they end up worrying about legal risks. OSLI API makes license compliance simple and easier to navigate than ever before.

What it does

OSLI helps developers by using different endpoints that provide various functionalities:

  • Search for libraries based on specific queries
  • Find alternatives for a library that may not be compatible with the project's existing libraries
  • Get all relevant information about particular SPDX licenses in an easy to read format
  • Risk scoring for particular packages based on the context in which the project is being built
  • Audit dependencies and check if packages are safe
  • Check if two licenses are compatible
  • Resolve license conflicts between two packages
  • Generate license headers for source files

How we built it

We built OSLI using FastAPI for speed, SPDX data for accurate license information, Gemini AI for risk analysis and suggestions, and Pydantic to ensure every response is reliable and correct.

Challenges we ran into

One of the main challenges was maintaining system speed while utilizing AI to perform analysis and provide suggestions in certain endpoints. Additionally, another issue was cleaning all the messy data and pulling the relevant information to be used in each of our endpoints.

Accomplishments that we're proud of

We're proud of having a fully deployed public API hosted on Render. Also, we integrated the Gemini API to provide contextual reasoning, such as risk scoring and providing safer alternatives.

What we learned

We learnt how to deploy a FastAPI service with requests and proper HTTP error handling. Also, we learnt how to integrate the Gemini API into a production backend.

What's next for Open Source License Intelligent API

Adding more endpoints to help developers with licensing issues. Also, having more comprehensive risk scoring models with more detailed breakdowns instead of just SAFE/ WARN.

Built With

Share this project:

Updates