|
|
8c1daf3b6c
|
feat: cf-vision managed service (#43)
CI / test (push) Waiting to run
Mirror / mirror (push) Waiting to run
SigLIP so400m-patch14-384 as default backend (classify + embed, ~1.4 GB VRAM).
VLM backend (moondream2, LLaVA, Qwen-VL, etc.) as callable alternative for
caption generation and VQA. Follows the same factory/Protocol/mock pattern
as cf-stt and cf-tts.
New module: circuitforge_core.vision
- backends/base.py — VisionBackend Protocol, VisionResult, make_vision_backend()
- backends/mock.py — MockVisionBackend (no GPU, deterministic)
- backends/siglip.py — SigLIPBackend: sigmoid zero-shot classify + L2 embed
- backends/vlm.py — VLMBackend: AutoModelForVision2Seq caption + prompt classify
- __init__.py — process singleton; classify(), embed(), caption(), make_backend()
- app.py — FastAPI service (port 8006): /health /classify /embed /caption
Backend selection: CF_VISION_BACKEND=siglip|vlm, auto-detected from model path.
VLM backend: supports_embed=False, caption()/classify() only.
SigLIP backend: supports_caption=False, classify()/embed() only.
52 new tests, 385 total passing. Closes #43.
|
2026-04-09 06:53:43 -07:00 |
|