Spaces:
Sleeping
Sleeping
| from fastapi import APIRouter, BackgroundTasks, HTTPException | |
| from pydantic import BaseModel | |
| from typing import Optional, List | |
| from app.services.storage import create_note as storage_create_note, get_note | |
| from app.jobs.enrichment_job import run_enrichment | |
| router = APIRouter(prefix="/notes") | |
| class CreateNoteRequest(BaseModel): | |
| note_id: str | |
| raw_text: str | |
| normalized_text: Optional[str] = None | |
| keywords: List[str] = [] | |
| chunks: list = [] | |
| duration: Optional[float] = None | |
| sample_rate: Optional[int] = None | |
| asr_model: Optional[str] = None | |
| normalization_model: Optional[str] = None | |
| generate: List[str] = [] | |
| async def create_note(req: CreateNoteRequest, bg: BackgroundTasks): | |
| storage_create_note(req.note_id, req.dict()) | |
| if req.generate: | |
| bg.add_task(run_enrichment, req.note_id, req.generate) | |
| return {"note_id": req.note_id, "status": "stored"} | |
| def fetch_note(note_id: str): | |
| note = get_note(note_id) | |
| if not note: | |
| raise HTTPException(404, "Note not found") | |
| return note | |