Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, HTTPException | |
| from pydantic import BaseModel | |
| from transformers import AutoProcessor | |
| import os | |
| import traceback | |
| MODEL_NAME = os.getenv("MODEL_NAME", "HuggingFaceTB/SmolVLM-256M-Instruct") | |
| app = FastAPI(title="OpenClaw Vision API") | |
| processor = None | |
| class AnalyzeRequest(BaseModel): | |
| image_url: str | |
| user_request: str = "Describe this image." | |
| def get_processor(): | |
| global processor | |
| if processor is None: | |
| processor = AutoProcessor.from_pretrained(MODEL_NAME) | |
| return processor | |
| def health(): | |
| return { | |
| "ok": True, | |
| "stage": "processor_lazy", | |
| "loaded": processor is not None | |
| } | |
| def analyze(req: AnalyzeRequest): | |
| try: | |
| get_processor() | |
| return { | |
| "caption": f"processor loaded: {req.image_url}", | |
| "ocr_text": "", | |
| "objects": [], | |
| "layout": "", | |
| "confidence_notes": "processor test mode" | |
| } | |
| except Exception as e: | |
| traceback.print_exc() | |
| raise HTTPException(status_code=500, detail=str(e)) | |