Skip to content

[landing] enrich: 로컬 enricher 플러그인(CLIP·색·레이아웃·YOLO-World·OCR) 실행 → descriptor 업로드 #3

Description

@younjihoon

목표

9월 파일럿(scratchpad/bank)에서 검증한 다축 서술 — CLIP 임베딩, 색 통계, 레이아웃, YOLO-World 오픈보캐 검출, 다국어 텍스트 임베딩, (추가) OCR — 을 CLI 가 로컬에서 돌려 서버에 올린다. free/pro 의 유일한 경로이고 business 서버 워커의 참조 구현.

동작

cloudbtl enrich <prop_id...> --enricher clip,color,layout,yolo-world [--pages 1-20] [--force]
cloudbtl enrich --batch <ingestBatch> --enricher clip        # 배치 단위
cloudbtl enricher ls | install <name> | doctor
  • 입력: render 캐시의 페이지 PNG(없으면 자동 render) + 서버/로컬 text.page.
  • 플러그인 프로토콜: CLI 가 외부 워커 프로세스를 띄우고 stdin 으로 { documentId, pages:[{page, imagePath, text}] } JSON-lines, stdout 으로 descriptor item JSON-lines { kind, page, payload } 를 받는다. 워커 언어 무관(참조 워커는 Python).
  • 참조 워커 패키지(별도 디렉터리 enrichers/python/): clip (open_clip ViT-B-32 → clip.embedding {model, dim, v}), color (→ color.stats), layout (char/img 비율 → layout.stats), yolo-world (도메인 어휘 파일 지정 → objects.yolo-world {boxes:[{label,score,bbox}], vocab}), text-embed (다국어 → embedding.text), ocr (→ text.ocr, hasTextLayer=false 인 PDF 에만 기본 실행).
  • 각 enricher 는 매니페스트(producer, version, kinds, requires)를 선언하고, 결과는 enricher 별 producer 로 올린다(예: cloudbtl-cli/clip), producerVersion = 워커 버전.
  • --force 없으면 descriptors/summary 에 같은 (producer, producerVersion) 이 있으면 건너뜀(재파생은 버전 올려서).
  • 실패는 POST …/jobs 로 보고.

완료 기준

  • enrich prop_x --enricher clip,color 후 descriptors 에 페이지마다 clip.embedding, color.stats 가 보인다.
  • 워커가 없는 머신에서는 enricher doctor 가 무엇을 설치해야 하는지 알려준다.
  • 참조 워커의 결과가 9월 파일럿 갤러리(verify.html)와 같은 질의에서 같은 상위 결과를 낸다(회귀 픽스처 3개).

참고: 파일럿 코드 = 세션 스크래치(/private/tmp/claude-501/…/scratchpad/bank/), 레포로 옮겨와야 함. 클라이언트 실자료·PII 는 픽스처에 넣지 않는다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestlanding-layerLanding layer: local extraction, render, enrich, watch, bulk land

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions