feat: app corrections ingestion endpoint for CF menagerie #47

Closed
opened 2026-05-01 12:12:32 -07:00 by pyr0ball · 1 comment
Owner

Context

Corrections currently come from manual SFT import and benchmark runs. CF apps (Peregrine, Kiwi, Linnet, etc.) should be able to push correction pairs directly to avocet to feed the training flywheel.

Work

  • Add POST /api/data/corrections/ingest to app/data/corrections.py
  • Auth: shared secret via AVOCET_INGESTION_SECRET env var (Bearer token, same pattern as cf-orch coordinator auth)
  • Schema: {source: str, task_type: str, prompt: str, response: str, correction: str, label: str | null}
  • Batch endpoint: POST /api/data/corrections/ingest/batch accepting array
  • Store in corrections queue (pending human review before export)
  • Add AVOCET_INGESTION_SECRET to .env.example
  • Document integration pattern for product repos

Acceptance

  • Peregrine can POST a correction pair and it appears in Corrections view for review
  • Unauthenticated requests return 401
  • Invalid schema returns 422 with clear error
## Context Corrections currently come from manual SFT import and benchmark runs. CF apps (Peregrine, Kiwi, Linnet, etc.) should be able to push correction pairs directly to avocet to feed the training flywheel. ## Work - Add `POST /api/data/corrections/ingest` to `app/data/corrections.py` - Auth: shared secret via `AVOCET_INGESTION_SECRET` env var (Bearer token, same pattern as cf-orch coordinator auth) - Schema: `{source: str, task_type: str, prompt: str, response: str, correction: str, label: str | null}` - Batch endpoint: `POST /api/data/corrections/ingest/batch` accepting array - Store in corrections queue (pending human review before export) - Add `AVOCET_INGESTION_SECRET` to `.env.example` - Document integration pattern for product repos ## Acceptance - Peregrine can POST a correction pair and it appears in Corrections view for review - Unauthenticated requests return 401 - Invalid schema returns 422 with clear error
pyr0ball added this to the v2 — Pipeline Architecture milestone 2026-05-01 12:12:32 -07:00
pyr0ball added the
backend
label 2026-05-01 12:12:32 -07:00
Author
Owner

Shipped in the Apr 19–May 4 sprint. POST /ingest corrections endpoint with Bearer auth landed in app/data/corrections.py.

Shipped in the Apr 19–May 4 sprint. POST /ingest corrections endpoint with Bearer auth landed in app/data/corrections.py.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/avocet#47
No description provided.