ai-cfia/nachet

Nachet - AI-powered seed identification system for the Canadian Food Inspection Agency (CFIA)

2

stars

927

commits

Python

primary language

Sep 12, 2026

updated

README

Nachet

Repo Size Languages Top Language

Last Commit Contributors

Issues Pull Requests License

Le francais suit

Nachet is an open-source, AI-powered image classification system developed by the Canadian Food Inspection Agency (CFIA). It helps inspectors and researchers identify regulated weed seeds using machine learning — but its architecture is domain-agnostic and can be applied to any image classification task. The project ships as two products: Nachet Mini, a lightweight client-side web app, and the Nachet Platform, a full server-backed system for laboratory use.


Nachet Mini

Client-side, privacy-focused image classification — right in your browser.

Nachet Mini

DEMO on Cloudflare
DEMO on Github Pages

Nachet Mini runs entirely in your browser. Your images never leave your device; there is no server, no account, and no cloud infrastructure involved. It uses transformers.js to perform ML inference directly on your machine via WebGPU or WASM.

  • Privacy by design — images are processed locally; nothing is uploaded
  • No account required — open the page and start classifying
  • Offline-capable — works without a network connection after the initial model download
  • Domain-agnostic — currently trained for weed seed identification, but the platform supports any image classification model
  • Fast — leverages WebGPU acceleration when available, with automatic WASM fallback

Read the privacy statement | Models on Hugging Face

Deploy locally in 4 steps

git clone https://github.com/ai-cfia/nachet.git 
cd nachet/nachet-mini
npm install
npm run dev

Nachet Platform

A full-featured, server-backed system for laboratory and field use.

Nachet Platform

The Nachet Platform is designed for professional workflows where centralized infrastructure, audit trails, and high-throughput batch processing are needed.

  • Microscope and webcam integration — capture images directly from connected devices
  • Batch upload and processing — analyze many images in a single session
  • Durable async workflows — ML inference is orchestrated with DBOS for crash-recoverable, resumable pipelines
  • Azure AD authentication — secure, role-based access for teams
  • Bilingual interface — full English and French support
  • Audit-ready — results, metadata, and images stored in PostgreSQL and Azure Blob Storage

Key Features

  • AI-powered object detection and classification
  • Client-side inference with privacy by design (Nachet Mini)
  • Microscope and webcam image capture
  • Batch upload and processing
  • Asynchronous ML inference with durable, recoverable workflows
  • Bilingual interface (English / French)
  • Open source under the MIT license

Architecture

flowchart TB
    subgraph mini["Nachet Mini"]
        Browser["Browser"]
        TJS["transformers.js<br/>(WebGPU / WASM)"]
        HF["Hugging Face Hub<br/>(model download)"]
        Browser --> TJS
        TJS -.->|first load| HF
    end

    subgraph platform["Nachet Platform"]
        Frontend["React Frontend"]
        Backend["FastAPI Backend"]
        DBOS["DBOS Workflows"]
        DB[("PostgreSQL")]
        Blob[("Azure Blob<br/>Storage")]
        ML["Azure ML<br/>Endpoints"]
        Frontend --> Backend
        Backend --> DBOS
        DBOS --> DB
        DBOS --> Blob
        DBOS --> ML
    end

    User((User)) --> Browser
    User --> Frontend

Nachet Mini is a standalone static site — no server required. Models are downloaded from Hugging Face on first use and cached in the browser.

Nachet Platform follows a traditional client-server architecture. The React frontend communicates with a FastAPI backend that orchestrates ML inference through durable DBOS workflows, with PostgreSQL for metadata and Azure Blob Storage for images.


Tech Stack

ComponentTechnology
Nachet MiniReact + TypeScript + Vite + MUI + transformers.js
FrontendReact + TypeScript + Vite + MUI + Zustand
BackendPython + FastAPI + SQLAlchemy + DBOS
DatabasePostgreSQL
StorageAzure Blob Storage (or S3-compatible)
ML InferenceAzure ML Endpoints (server) / Hugging Face (client)
AuthAzure AD (OAuth 2.0)
i18nEnglish / French

Getting Started

Try Nachet Mini

Visit DEMO on Github Pages — no installation needed.

Run the Full Platform Locally

See DEVELOPER.md for complete setup instructions, including Docker Compose, environment configuration, and database setup.

Quick start:

# Clone the repository
git clone https://github.com/ai-cfia/nachet.git
cd nachet

# Start all services with Docker Compose
docker-compose up --build

For Developers

Contributions are welcome. Start with the developer guide and the component READMEs:


License

This project is licensed under the MIT License.

Copyright (c) 2024 AI @ Canadian Food Inspection Agency (CFIA)

Contact

cfia.ai-ia.acia@inspection.gc.ca


Nachet (FR)

Taille du depot Langages Langage principal

Dernier commit Contributeurs

Issues Pull Requests Licence

Nachet est un systeme de classification d'images par intelligence artificielle, a code source ouvert, developpe par l'Agence canadienne d'inspection des aliments (ACIA). Il aide les inspecteurs et les chercheurs a identifier les semences de mauvaises herbes reglementees grace a l'apprentissage automatique. Son architecture est toutefois independante du domaine et peut s'appliquer a toute tache de classification d'images. Le projet se decline en deux produits : Nachet Mini, une application web legere fonctionnant cote client, et la Plateforme Nachet, un systeme complet avec serveur pour une utilisation en laboratoire.


Nachet Mini _

Classification d'images cote client, axee sur la confidentialite — directement dans votre navigateur.

Nachet Mini

DEMO sur Cloudflare
DEMO sur les pages Github

Nachet Mini fonctionne entierement dans votre navigateur. Vos images ne quittent jamais votre appareil — il n'y a ni serveur, ni compte, ni infrastructure infonuagique. L'application utilise transformers.js pour effectuer l'inference ML directement sur votre machine via WebGPU ou WASM.

  • Confidentialite des la conception — les images sont traitees localement; rien n'est televerse
  • Aucun compte requis — ouvrez la page et commencez a classifier
  • Fonctionne hors ligne — utilisable sans connexion reseau apres le telechargement initial du modele
  • Independant du domaine — actuellement entraine pour l'identification des semences de mauvaises herbes, mais la plateforme prend en charge tout modele de classification d'images
  • Rapide — tire parti de l'acceleration WebGPU lorsque disponible, avec basculement automatique vers WASM

Lire la declaration de confidentialite | Modeles sur Hugging Face

Déploiement local en 4 étapes

git clone https://github.com/ai-cfia/nachet.git 
cd nachet/nachet-mini
npm install
npm run dev

Plateforme Nachet

Un systeme complet avec serveur pour une utilisation en laboratoire et sur le terrain.

Plateforme Nachet

La Plateforme Nachet est concue pour les flux de travail professionnels necessitant une infrastructure centralisee, des pistes d'audit et un traitement par lots a haut debit.

  • Integration de microscope et webcam — capturez des images directement a partir d'appareils connectes
  • Televersement et traitement par lots — analysez de nombreuses images en une seule session
  • Flux de travail asynchrones durables — l'inference ML est orchestree avec DBOS pour des pipelines recuperables et resumables
  • Authentification Azure AD — acces securise base sur les roles pour les equipes
  • Interface bilingue — prise en charge complete de l'anglais et du francais
  • Pret pour l'audit — resultats, metadonnees et images stockes dans PostgreSQL et Azure Blob Storage

Fonctionnalites cles

  • Detection et classification d'objets par intelligence artificielle
  • Inference cote client avec confidentialite des la conception (Nachet Mini)
  • Capture d'images par microscope et webcam
  • Televersement et traitement par lots
  • Inference ML asynchrone avec flux de travail durables et recuperables
  • Interface bilingue (anglais / francais)
  • Code source ouvert sous licence MIT

Architecture _

flowchart TB
    subgraph mini["Nachet Mini"]
        Browser["Navigateur"]
        TJS["transformers.js<br/>(WebGPU / WASM)"]
        HF["Hugging Face Hub<br/>(telechargement du modele)"]
        Browser --> TJS
        TJS -.->|premier chargement| HF
    end

    subgraph platform["Plateforme Nachet"]
        Frontend["Interface React"]
        Backend["Serveur FastAPI"]
        DBOS["Flux DBOS"]
        DB[("PostgreSQL")]
        Blob[("Azure Blob<br/>Storage")]
        ML["Points de terminaison<br/>Azure ML"]
        Frontend --> Backend
        Backend --> DBOS
        DBOS --> DB
        DBOS --> Blob
        DBOS --> ML
    end

    User((Utilisateur)) --> Browser
    User --> Frontend

Nachet Mini est un site statique autonome — aucun serveur requis. Les modeles sont telecharges depuis Hugging Face lors de la premiere utilisation et mis en cache dans le navigateur.

La Plateforme Nachet suit une architecture client-serveur traditionnelle. L'interface React communique avec un serveur FastAPI qui orchestre l'inference ML a travers des flux de travail DBOS durables, avec PostgreSQL pour les metadonnees et Azure Blob Storage pour les images.


Pile technologique

ComposantTechnologie
Nachet MiniReact + TypeScript + Vite + MUI + transformers.js
InterfaceReact + TypeScript + Vite + MUI + Zustand
ServeurPython + FastAPI + SQLAlchemy + DBOS
Base de donneesPostgreSQL
StockageAzure Blob Storage (ou compatible S3)
Inference MLPoints de terminaison Azure ML (serveur) / Hugging Face (client)
AuthentificationAzure AD (OAuth 2.0)
i18nAnglais / Francais

Pour commencer

Essayer Nachet Mini

Visitez DEMO sur les pages Github — aucune installation requise.

Executer la plateforme complete localement

Consultez DEVELOPER.md pour les instructions completes de configuration, y compris Docker Compose, la configuration de l'environnement et la mise en place de la base de donnees.

Demarrage rapide :

# Cloner le depot
git clone https://github.com/ai-cfia/nachet.git
cd nachet

# Demarrer tous les services avec Docker Compose
docker-compose up --build

Pour les developpeurs

Les contributions sont les bienvenues. Commencez par le guide du developpeur et les README des composants :


Licence

Ce projet est distribue sous la licence MIT.

Copyright (c) 2024 AI @ Agence canadienne d'inspection des aliments (ACIA)

Contact _

cfia.ai-ia.acia@inspection.gc.ca

Contributors

ChromaticPanic

670 commits

renovate[bot]

137 commits

ThomasCardin

65 commits

youssefjedidi

21 commits

ai-cfia/nachet

Nachet - AI-powered seed identification system for the Canadian Food Inspection Agency (CFIA)

2

stars

927

commits

Python

primary language

Sep 12, 2026

updated

README

Nachet

Repo Size Languages Top Language

Last Commit Contributors

Issues Pull Requests License

Le francais suit

Nachet is an open-source, AI-powered image classification system developed by the Canadian Food Inspection Agency (CFIA). It helps inspectors and researchers identify regulated weed seeds using machine learning — but its architecture is domain-agnostic and can be applied to any image classification task. The project ships as two products: Nachet Mini, a lightweight client-side web app, and the Nachet Platform, a full server-backed system for laboratory use.


Nachet Mini

Client-side, privacy-focused image classification — right in your browser.

Nachet Mini

DEMO on Cloudflare
DEMO on Github Pages

Nachet Mini runs entirely in your browser. Your images never leave your device; there is no server, no account, and no cloud infrastructure involved. It uses transformers.js to perform ML inference directly on your machine via WebGPU or WASM.

  • Privacy by design — images are processed locally; nothing is uploaded
  • No account required — open the page and start classifying
  • Offline-capable — works without a network connection after the initial model download
  • Domain-agnostic — currently trained for weed seed identification, but the platform supports any image classification model
  • Fast — leverages WebGPU acceleration when available, with automatic WASM fallback

Read the privacy statement | Models on Hugging Face

Deploy locally in 4 steps

git clone https://github.com/ai-cfia/nachet.git 
cd nachet/nachet-mini
npm install
npm run dev

Nachet Platform

A full-featured, server-backed system for laboratory and field use.

Nachet Platform

The Nachet Platform is designed for professional workflows where centralized infrastructure, audit trails, and high-throughput batch processing are needed.

  • Microscope and webcam integration — capture images directly from connected devices
  • Batch upload and processing — analyze many images in a single session
  • Durable async workflows — ML inference is orchestrated with DBOS for crash-recoverable, resumable pipelines
  • Azure AD authentication — secure, role-based access for teams
  • Bilingual interface — full English and French support
  • Audit-ready — results, metadata, and images stored in PostgreSQL and Azure Blob Storage

Key Features

  • AI-powered object detection and classification
  • Client-side inference with privacy by design (Nachet Mini)
  • Microscope and webcam image capture
  • Batch upload and processing
  • Asynchronous ML inference with durable, recoverable workflows
  • Bilingual interface (English / French)
  • Open source under the MIT license

Architecture

flowchart TB
    subgraph mini["Nachet Mini"]
        Browser["Browser"]
        TJS["transformers.js<br/>(WebGPU / WASM)"]
        HF["Hugging Face Hub<br/>(model download)"]
        Browser --> TJS
        TJS -.->|first load| HF
    end

    subgraph platform["Nachet Platform"]
        Frontend["React Frontend"]
        Backend["FastAPI Backend"]
        DBOS["DBOS Workflows"]
        DB[("PostgreSQL")]
        Blob[("Azure Blob<br/>Storage")]
        ML["Azure ML<br/>Endpoints"]
        Frontend --> Backend
        Backend --> DBOS
        DBOS --> DB
        DBOS --> Blob
        DBOS --> ML
    end

    User((User)) --> Browser
    User --> Frontend

Nachet Mini is a standalone static site — no server required. Models are downloaded from Hugging Face on first use and cached in the browser.

Nachet Platform follows a traditional client-server architecture. The React frontend communicates with a FastAPI backend that orchestrates ML inference through durable DBOS workflows, with PostgreSQL for metadata and Azure Blob Storage for images.


Tech Stack

ComponentTechnology
Nachet MiniReact + TypeScript + Vite + MUI + transformers.js
FrontendReact + TypeScript + Vite + MUI + Zustand
BackendPython + FastAPI + SQLAlchemy + DBOS
DatabasePostgreSQL
StorageAzure Blob Storage (or S3-compatible)
ML InferenceAzure ML Endpoints (server) / Hugging Face (client)
AuthAzure AD (OAuth 2.0)
i18nEnglish / French

Getting Started

Try Nachet Mini

Visit DEMO on Github Pages — no installation needed.

Run the Full Platform Locally

See DEVELOPER.md for complete setup instructions, including Docker Compose, environment configuration, and database setup.

Quick start:

# Clone the repository
git clone https://github.com/ai-cfia/nachet.git
cd nachet

# Start all services with Docker Compose
docker-compose up --build

For Developers

Contributions are welcome. Start with the developer guide and the component READMEs:


License

This project is licensed under the MIT License.

Copyright (c) 2024 AI @ Canadian Food Inspection Agency (CFIA)

Contact

cfia.ai-ia.acia@inspection.gc.ca


Nachet (FR)

Taille du depot Langages Langage principal

Dernier commit Contributeurs

Issues Pull Requests Licence

Nachet est un systeme de classification d'images par intelligence artificielle, a code source ouvert, developpe par l'Agence canadienne d'inspection des aliments (ACIA). Il aide les inspecteurs et les chercheurs a identifier les semences de mauvaises herbes reglementees grace a l'apprentissage automatique. Son architecture est toutefois independante du domaine et peut s'appliquer a toute tache de classification d'images. Le projet se decline en deux produits : Nachet Mini, une application web legere fonctionnant cote client, et la Plateforme Nachet, un systeme complet avec serveur pour une utilisation en laboratoire.


Nachet Mini _

Classification d'images cote client, axee sur la confidentialite — directement dans votre navigateur.

Nachet Mini

DEMO sur Cloudflare
DEMO sur les pages Github

Nachet Mini fonctionne entierement dans votre navigateur. Vos images ne quittent jamais votre appareil — il n'y a ni serveur, ni compte, ni infrastructure infonuagique. L'application utilise transformers.js pour effectuer l'inference ML directement sur votre machine via WebGPU ou WASM.

  • Confidentialite des la conception — les images sont traitees localement; rien n'est televerse
  • Aucun compte requis — ouvrez la page et commencez a classifier
  • Fonctionne hors ligne — utilisable sans connexion reseau apres le telechargement initial du modele
  • Independant du domaine — actuellement entraine pour l'identification des semences de mauvaises herbes, mais la plateforme prend en charge tout modele de classification d'images
  • Rapide — tire parti de l'acceleration WebGPU lorsque disponible, avec basculement automatique vers WASM

Lire la declaration de confidentialite | Modeles sur Hugging Face

Déploiement local en 4 étapes

git clone https://github.com/ai-cfia/nachet.git 
cd nachet/nachet-mini
npm install
npm run dev

Plateforme Nachet

Un systeme complet avec serveur pour une utilisation en laboratoire et sur le terrain.

Plateforme Nachet

La Plateforme Nachet est concue pour les flux de travail professionnels necessitant une infrastructure centralisee, des pistes d'audit et un traitement par lots a haut debit.

  • Integration de microscope et webcam — capturez des images directement a partir d'appareils connectes
  • Televersement et traitement par lots — analysez de nombreuses images en une seule session
  • Flux de travail asynchrones durables — l'inference ML est orchestree avec DBOS pour des pipelines recuperables et resumables
  • Authentification Azure AD — acces securise base sur les roles pour les equipes
  • Interface bilingue — prise en charge complete de l'anglais et du francais
  • Pret pour l'audit — resultats, metadonnees et images stockes dans PostgreSQL et Azure Blob Storage

Fonctionnalites cles

  • Detection et classification d'objets par intelligence artificielle
  • Inference cote client avec confidentialite des la conception (Nachet Mini)
  • Capture d'images par microscope et webcam
  • Televersement et traitement par lots
  • Inference ML asynchrone avec flux de travail durables et recuperables
  • Interface bilingue (anglais / francais)
  • Code source ouvert sous licence MIT

Architecture _

flowchart TB
    subgraph mini["Nachet Mini"]
        Browser["Navigateur"]
        TJS["transformers.js<br/>(WebGPU / WASM)"]
        HF["Hugging Face Hub<br/>(telechargement du modele)"]
        Browser --> TJS
        TJS -.->|premier chargement| HF
    end

    subgraph platform["Plateforme Nachet"]
        Frontend["Interface React"]
        Backend["Serveur FastAPI"]
        DBOS["Flux DBOS"]
        DB[("PostgreSQL")]
        Blob[("Azure Blob<br/>Storage")]
        ML["Points de terminaison<br/>Azure ML"]
        Frontend --> Backend
        Backend --> DBOS
        DBOS --> DB
        DBOS --> Blob
        DBOS --> ML
    end

    User((Utilisateur)) --> Browser
    User --> Frontend

Nachet Mini est un site statique autonome — aucun serveur requis. Les modeles sont telecharges depuis Hugging Face lors de la premiere utilisation et mis en cache dans le navigateur.

La Plateforme Nachet suit une architecture client-serveur traditionnelle. L'interface React communique avec un serveur FastAPI qui orchestre l'inference ML a travers des flux de travail DBOS durables, avec PostgreSQL pour les metadonnees et Azure Blob Storage pour les images.


Pile technologique

ComposantTechnologie
Nachet MiniReact + TypeScript + Vite + MUI + transformers.js
InterfaceReact + TypeScript + Vite + MUI + Zustand
ServeurPython + FastAPI + SQLAlchemy + DBOS
Base de donneesPostgreSQL
StockageAzure Blob Storage (ou compatible S3)
Inference MLPoints de terminaison Azure ML (serveur) / Hugging Face (client)
AuthentificationAzure AD (OAuth 2.0)
i18nAnglais / Francais

Pour commencer

Essayer Nachet Mini

Visitez DEMO sur les pages Github — aucune installation requise.

Executer la plateforme complete localement

Consultez DEVELOPER.md pour les instructions completes de configuration, y compris Docker Compose, la configuration de l'environnement et la mise en place de la base de donnees.

Demarrage rapide :

# Cloner le depot
git clone https://github.com/ai-cfia/nachet.git
cd nachet

# Demarrer tous les services avec Docker Compose
docker-compose up --build

Pour les developpeurs

Les contributions sont les bienvenues. Commencez par le guide du developpeur et les README des composants :


Licence

Ce projet est distribue sous la licence MIT.

Copyright (c) 2024 AI @ Agence canadienne d'inspection des aliments (ACIA)

Contact _

cfia.ai-ia.acia@inspection.gc.ca

Contributors

ChromaticPanic

670 commits

renovate[bot]

137 commits

ThomasCardin

65 commits

youssefjedidi

21 commits

Languages

Python

63.8%

TypeScript

33.8%

HCL

1.1%