Repository navigation
Retrain a classifier head from verified identifications, and start the run from the job form #1494
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
mohamedelabbas1996
wants to merge
27
commits into
feat/detection-embeddings-task
from
feat/retrain-classifier-head
Closed
Changes from all commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
0af9c0e
feat(occurrences): keep a fixed list of occurrences as a set
mohamedelabbas1996 db96cd2
feat(ui): filter occurrences by set
mohamedelabbas1996 be8423d
feat(ui): save the selected occurrences as a set
mohamedelabbas1996 4094265
fix(ui): show the occurrence set filter in the filter panel
mohamedelabbas1996 c731d37
fix(ui): put creating a set in the toolbar rather than the selection bar
mohamedelabbas1996 2c47148
feat(ml): record on an algorithm whether and how it can be retrained
mohamedelabbas1996 2553720
feat(ml): mirror whether a processing service can retrain an algorithm
mohamedelabbas1996 4211495
feat(ml): filter algorithms by whether they can be retrained
mohamedelabbas1996 e858b46
feat(jobs): let a job type declare what it needs and how long it may …
mohamedelabbas1996 365fb61
feat(jobs): take a job type's params when a job is created
mohamedelabbas1996 d6a3cc3
fix(jobs): judge a stale job by its own type's deadline
mohamedelabbas1996 a6e02c4
Merge remote-tracking branch 'upstream/feat/occurrence-sets' into fea…
mohamedelabbas1996 14d2773
feat(main): add a project permission for retraining a classifier
mohamedelabbas1996 3fef6c9
feat(main): let a project name the taxa list its classifier covers
mohamedelabbas1996 d42e6b6
feat(ml): build a classifier head training set from verified occurrences
mohamedelabbas1996 ae5da96
feat(ml): summarise what a retrain would learn from, for the job form
mohamedelabbas1996 0640da9
feat(jobs): retrain a classifier head and take the result back
mohamedelabbas1996 4f253bf
fix(jobs): point the training job at the merged training package
mohamedelabbas1996 6793f23
feat(jobs): make the training occurrence set optional
mohamedelabbas1996 476cf88
fix(jobs): retrain the newest version of the algorithm named
mohamedelabbas1996 73a49db
feat(jobs): follow a training run's epochs while it fits
mohamedelabbas1996 b01bc18
feat(ml): write down the contract between a training job and a service
mohamedelabbas1996 7faf0c1
fix(jobs): take a training result one way only, so there is one shape…
mohamedelabbas1996 2f55e09
feat(jobs): say that a training job dispatches to an external service
mohamedelabbas1996 a390c8d
feat(ui): start a classifier retrain from the job form
mohamedelabbas1996 6026f2f
fix(ui): do not send training settings a run could not use
mohamedelabbas1996 b8e9fe9
fix(ui): name a training job in the jobs list
mohamedelabbas1996 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # Generated by Django 4.2.10 on 2026-10-08 15:53 | ||
|
|
||
| from django.db import migrations, models | ||
|
|
||
|
|
||
| class Migration(migrations.Migration): | ||
| dependencies = [ | ||
| ("jobs", "0023_alter_job_job_type_key"), | ||
| ] | ||
|
|
||
| operations = [ | ||
| migrations.AlterField( | ||
| model_name="job", | ||
| name="job_type_key", | ||
| field=models.CharField( | ||
| choices=[ | ||
| ("ml", "ML pipeline"), | ||
| ("populate_captures_collection", "Populate capture set"), | ||
| ("data_storage_sync", "Data storage sync"), | ||
| ("regroup_events", "Regroup sessions"), | ||
| ("unknown", "Unknown"), | ||
| ("data_export", "Data Export"), | ||
| ("post_processing", "Post Processing"), | ||
| ("train_classifier", "Train classifier"), | ||
| ], | ||
| default="unknown", | ||
| max_length=255, | ||
| verbose_name="Job Type", | ||
| ), | ||
| ), | ||
| ] |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
Occurrence-set listing does not check whether the caller may see the project.
Draft-project occurrence sets can leak to non-members. The list permission accepts any existing
project_id. When a project is active,get_querysetusesfor_projectand does not applyvisible_for_user. As a result, any caller, including an anonymous one, can list the names and sizes of a draft project's sets.ami/base/permissions.py#L214-L217: requireproject.check_permission(request.user, "retrieve")for the list action.ami/main/models.py#L4973-L4988: in the viewset, callvisible_for_user(user)beforefor_project(project). This also covers detail lookups that includeproject_id.📍 Affects 2 files
ami/base/permissions.py#L214-L217(this comment)ami/main/models.py#L4973-L4988🤖 Prompt for AI Agents