Guidelines for service integration in SingularityNET
These are guidelines to help SingularityNET developers to write/integrate new AI services to the platform.
- Supported languages
- AI frameworks
- Third-party code and models
- Service documentation
- Contributing to existing projects
SingularityNET services use gRPC which is an open-source universal RPC framework. So any new service must provide its API in gRPC.
gRPC supports several programming languages and a guide for each of them is available here.
- Android Java
There are tutorials with step-by-step instructions for implementing a new service in each of these languages:
- How to write a SingularityNET service in C++
- How to write a SingularityNET service in Python
- How to write a SingularityNET service in Java
- How to write a SingularityNET service in Go
If you already have a gRPC service, this tutorial explains how to publish it in SingularityNET:
Make sure you follow our naming standardisation guidelines.
There are a couple of AI frameworks integrated to SingularityNET so you can just add new functionalities to services which are already published.
- Opencog: an open-source software project aimed at directly confronting the AGI challenge, using mathematical and biological inspiration and professional software engineering techniques.
There are tutorials with step-by-step instructions on how to extend the existing AI framework service in order to implement new functionalities:
Before publishing a service based on third-party code or model(s), make sure you follow all the guidelines below.
- The service is FREE.
- The main documentation of the service (e.g. README.md) mentions (crystal clear) that the service is based on third-party work.
- The original work (code, paper, model etc) is clearly mentioned and properly linked in README.
- The authors of the original code or model(s) are clearly mentioned in README.
- Any licenses attached to the original work is mentioned in README.
- The terms of any license attached to the original work allows its use in SNET.
See this example of third-party based service documentation which is fully compliant with these guidelines.
All the following documentation is mandatory for any service.
- README (see our recommended templates) describing the structure of the repository and how to build/test the service. This is a sort of “developer’s guide” aimed at people interested in extending or reusing the service.
- docs/index.html pointed by standard Github Pages describing how to use the service. This is the “user’s guide” of your service.
- LICENSE with SNET standard license.
If you are extending an existing service. Follow any particular guidelines of the specific project and make sure you update all the aforementioned documents accordingly.
See this example of service documentation which is fully compliant with these guidelines.