Robotoff is a service that generates predictions from product data such as images, text, and metadata. These predictions can individually or collectively be refined into actionable suggestions known as insights. Insights serve as potential updates to the Open Food Facts database, either automatically applied when highly confident or validated manually by human annotators. These insights cover a growing set of product facts, including:
- the product category, weight, brand, packager codes and expiration date
- some of its labels
- abusive pictures (selfies)
- rotated pictures
Robotoff provides an API to:
- Fetch insights
- Annotate an insight (accept or reject)
Once generated, the insights can be applied automatically, or after a manual validation if necessary. A scheduler regularly marks insights for automatic annotation and sends the update to Open Food Facts.
A detailed description of how predictions and insights work is available here.
Robotoff works together with Product Opener, the Core server of Open Food Facts (in Perl, which can also be installed locally using Docker) and the Open Food Facts apps (which can work with your local instance after enabling dev mode)
π Documentation: https://openfoodfacts.github.io/robotoff
Source code: https://github.com/openfoodfacts/robotoff
π Open Food Facts: https://world.openfoodfacts.org
- To get a better understanding on how Robotoff works, go to Architecture.
- If you want to help, go to Contributing.
- Robotoff can be used as...
- an online API
- a CLI tool
- a Python package
- If you need to deploy or maintain Robotoff, Maintenance is the way to go.
Robotoff uses Spectral to lint the OpenAPI specification file located at doc/references/api.yml
. This ensures the API documentation follows best practices and remains consistent.
All linting commands use Docker, so you don't need to install Spectral locally:
# Lint the API specification with pretty formatting
make api-lint
# Check the API specification and fail on errors (used in CI)
make api-lint-check
The linting rules are configured in .spectral.yml
at the root of the repository. The configuration extends the standard OpenAPI ruleset with custom rules specific to the Robotoff API.
API linting runs automatically on GitHub Actions when:
- Changes are made to
doc/references/api.yml
- Changes are made to
.spectral.yml
The workflow will fail if there are any linting errors, ensuring the API specification maintains high quality.
NOTE: This documentation tries to follow as much as possible the documentation system from DiΓ‘taxis.
- Robotoff is licensed under the AGPLv3.
- We e-meet every Tuesday at 11:00 Paris Time (10:00 London Time, 15:30 IST, 02:00 AM PT)
Video call link: https://meet.google.com/qvv-grzm-gzb
- Join by phone: https://tel.meet/qvv-grzm-gzb?pin=9965177492770
- Add the Event to your Calendar by adding the Open Food Facts community calendar to your calendar
- Weekly Agenda: please add the Agenda items as early as you can. Make sure to check the Agenda items in advance of the meeting, so that we have the most informed discussions possible.
- The meeting will handle Agenda items first, and if time permits, collaborative bug triage.
- We strive to timebox the core of the meeting (decision making) to 30 minutes, with an optional free discussion/live debugging afterwards.
- We take comprehensive notes in the Weekly Agenda of agenda item discussions and of decisions taken.