feat: cf-vision managed service app #43

Closed
opened 2026-04-08 23:16:10 -07:00 by pyr0ball · 0 comments
Owner

Summary

Add circuitforge_core.vision module + FastAPI app so cf-orch can fully manage cf-vision as a started/stopped service.

No model is currently on disk. Decisions needed:

  • Model choice: lightweight CLIP-based classifier vs full vision model (e.g. moondream2, nanollava)
  • VRAM budget: 1536 MB (per heimdall/strahl profiles)
  • Input/output: image bytes in, classification label + confidence out

Structure should mirror circuitforge_core.stt:

  • circuitforge_core/vision/backends/base.py — VisionBackend Protocol, VisionResult
  • circuitforge_core/vision/backends/mock.py — MockVisionBackend
  • circuitforge_core/vision/backends/<chosen_model>.py
  • circuitforge_core/vision/__init__.py — classify() singleton
  • circuitforge_core/vision/app.py — FastAPI: GET /health, POST /classify
  • pyproject.toml: vision-* extras

Once app exists, add managed specs to heimdall/strahl profiles in cf-orch.

Blocked by

  • Model selection and download
  • cf-stt: circuitforge_core.stt (reference implementation)
  • cf-tts: circuitforge_core.tts (reference implementation)
## Summary Add `circuitforge_core.vision` module + FastAPI app so cf-orch can fully manage cf-vision as a started/stopped service. No model is currently on disk. Decisions needed: - Model choice: lightweight CLIP-based classifier vs full vision model (e.g. moondream2, nanollava) - VRAM budget: 1536 MB (per heimdall/strahl profiles) - Input/output: image bytes in, classification label + confidence out Structure should mirror `circuitforge_core.stt`: - `circuitforge_core/vision/backends/base.py` — VisionBackend Protocol, VisionResult - `circuitforge_core/vision/backends/mock.py` — MockVisionBackend - `circuitforge_core/vision/backends/<chosen_model>.py` - `circuitforge_core/vision/__init__.py` — classify() singleton - `circuitforge_core/vision/app.py` — FastAPI: GET /health, POST /classify - pyproject.toml: vision-* extras Once app exists, add managed specs to heimdall/strahl profiles in cf-orch. ## Blocked by - Model selection and download ## Related - cf-stt: `circuitforge_core.stt` (reference implementation) - cf-tts: `circuitforge_core.tts` (reference implementation)
Sign in to join this conversation.
No milestone
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/circuitforge-core#43
No description provided.