Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

111 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

echo

Analysis Processor Flow

Supabase 배포, secret 설정, pg_cron 등록, OpenAI quota 대응 절차는 Analysis Processor Supabase 운영 가이드를 참고합니다.

sequenceDiagram
  autonumber

  box UI Layer
    participant UI as Result/Page or Server Action
  end

  box DB Layer
    participant DB as Supabase Postgres
    participant Jobs as analysis_jobs
    participant Results as practice_target_analysis_results
  end

  box Scheduler Layer
    participant Cron as pg_cron
  end

  box Processor Layer
    participant Fn as Supabase Edge Function<br/>process-analysis-job
  end

  box Storage Layer
    participant Storage as Supabase Storage
  end

  box AI Layer
    participant STT as OpenAI STT
    participant Eval as OpenAI Evaluation
  end

  UI->>DB: 세션 완료 후 request_analysis_job(...)
  DB->>Jobs: queued job 생성 또는 기존 job 반환
  DB-->>UI: AnalysisJob 반환

  Cron->>Fn: scheduled invoke
  Fn->>DB: claim_next_analysis_job('openai')
  DB->>Jobs: queued -> processing<br/>FOR UPDATE SKIP LOCKED
  DB-->>Fn: claimed job or null

  alt claimed job 없음
    Fn-->>Cron: 200 / no work
  else claimed job 있음
    Fn->>DB: session target + accepted_recordings 조회
    DB-->>Fn: expected snapshot + audio metadata

    loop target별 처리
      Fn->>Storage: audio file 다운로드
      Storage-->>Fn: audio bytes

      Fn->>STT: audio -> transcript
      STT-->>Fn: transcript

      Fn->>Eval: transcript + expected snapshot
      Eval-->>Fn: diff / feedback / score

      Fn->>Results: target별 analysis result 저장
    end

    alt 모든 target 성공
      Fn->>Jobs: complete_analysis_job(job_id)
      Jobs-->>Fn: completed job
      Fn-->>Cron: 200 / completed
    else 처리 중 실패
      Fn->>Jobs: fail_analysis_job(job_id, error_code, message)
      Jobs-->>Fn: failed job
      Fn-->>Cron: 500 / failed
    end
  end
Loading

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages