-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Oppia ml Extension
Oppia-ml is developed and maintained by Oppia developers. It allows Oppia to train machine learning models so that Oppia can provide better answers to learners. Oppia-ml is developed in its own repo, separate from Oppia.
Oppia-ml communicates with Oppia over the network for fetching job requests and storing result of job requests.
/ml/trainingjobhandler
-
Request data: above handler requires following JSON data in the request:
{ ‘vm_id’: a unique ID assigned to VM. ‘signature’: digital signature for authenticity of VM. }
-
Response data: above handler returns following JSON data in the response:
{ ‘job_id’: a unique ID using which Oppia can distinguish different jobs. ‘algorithm_id’: an ID using which Oppia-ml can identify the type of classifier to be trained. ‘training_data’: training data using which classifier will be trained. }
/ml/trainedclassifierhandler
-
Request data: Above handler requires following JSON data in the request:
{ ‘vm_id’: unique ID assigned to Oppia-ml instance. ‘message’: The dict that contains job_id and classifier_data, using which signature is generated. ‘signature’: digital signature for authenticity of VM. }
-
Response data: It returns HTTP 200 in response if “classifier_data” has been saved successfully.
These URLs are defined in the oppia-ml/vmconf.py
and oppia/feconf.py
files. They must match the above ones, otherwise Oppia-ml will not be able to work with Oppia.
The new oppia-ml project allows developers to try out their own ML algorithms for classification. The steps that need to be followed for using a new algorithm:
- Extend BaseClassifier in the oppia-ml repo and implement all its base functions for your chosen classifier.
- It is very important to add your algorithm to the Interaction-Classifier mapping. Without this step, your algorithm won't be functional.
- Implement a front-end service that will be called by the PredictionAlgorithmRegistryService. This service should have a predict() method which returns the predicted labels given user responses and classifier model.
Have an idea for how to improve the wiki? Please help make our documentation better by following our instructions for contributing to the wiki.
Core documentation
Developing Oppia
- FAQs
- Installing Oppia
- Getting started with the codebase
- Making your first PR
- Learning resources for developers
- Codebase Overview
- Coding Guidelines
- Coding style guide
- Guidelines for creating new files
- How to add a new page
- How to write frontend type definitions
- How to write design docs
- Revert and Regression Policy
- Server errors and solutions
-
Debugging
- If your presubmit checks fail
- If CI checks fail on your PR
- Finding the commit that introduced a bug
- Interpreting GitHub Actions Results
- Debugging Docs
- Debugging datastore locally
- Debugging end-to-end tests
- Debugging backend tests
- Debugging frontend tests
- Debug frontend code
- Debugging custom ESLint check tests
- Debugging custom Pylint check tests
- Debugging Stories
- Guidelines for launching new features
- Guidelines for making an urgent fix (hotfix)
- Lint Checks
- Oppia's code owners and checks to be carried out by developers
- Privacy aware programming
- Backend Type Annotations
- Bytes and string handling in Python 3
- Guidelines for Developers with Write Access to oppia/oppia
- Testing
- Release Process
Developer Reference
- Oppiabot
- Frontend
- Backend
- Translations
- Webpack
- Third-party libraries
- Extension frameworks
- Oppia-ml Extension
- Mobile development
- Mobile device testing
- Performance testing
- Build process
- Team structure
- Triaging Process
- Playbooks
- Wiki
- Past Events