{"id":48229936,"url":"https://github.com/junotb/omniparse-ai-stack","last_synced_at":"2026-04-04T19:31:28.687Z","repository":{"id":340819679,"uuid":"1167337481","full_name":"junotb/omniparse-ai-stack","owner":"junotb","description":"Document \u0026 image parsing full-stack demo. OCR, VLM, document layout analysis, LLM Agent — runs in browser or on server. Next.js + FastAPI.","archived":false,"fork":false,"pushed_at":"2026-02-26T17:21:35.000Z","size":220,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-26T23:03:11.163Z","etag":null,"topics":["document-ai","document-parsing","easyocr","fastapi","full-stack","gemini","image-analysis","langchain","llm","machine-learning","nextjs","ocr","python","tesseract","typescript","vision-language-model","yolo"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/junotb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-26T07:25:10.000Z","updated_at":"2026-02-26T17:24:25.000Z","dependencies_parsed_at":"2026-02-26T23:04:11.966Z","dependency_job_id":null,"html_url":"https://github.com/junotb/omniparse-ai-stack","commit_stats":null,"previous_names":["junotb/omniparse-ai-stack"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/junotb/omniparse-ai-stack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junotb%2Fomniparse-ai-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junotb%2Fomniparse-ai-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junotb%2Fomniparse-ai-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junotb%2Fomniparse-ai-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junotb","download_url":"https://codeload.github.com/junotb/omniparse-ai-stack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junotb%2Fomniparse-ai-stack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31410782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T19:29:44.979Z","status":"ssl_error","status_checked_at":"2026-04-04T19:29:11.535Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["document-ai","document-parsing","easyocr","fastapi","full-stack","gemini","image-analysis","langchain","llm","machine-learning","nextjs","ocr","python","tesseract","typescript","vision-language-model","yolo"],"created_at":"2026-04-04T19:31:28.076Z","updated_at":"2026-04-04T19:31:28.676Z","avatar_url":"https://github.com/junotb.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Omniparse AI Stack\n\nAI/ML 모델의 대표적인 사용 사례를 실제로 구현한 **문서·이미지 파싱 풀스택 프로젝트**입니다. 비정형 입력(이미지, 텍스트)을 받아 구조화된 정보로 추출하는 파이프라인을 브라우저와 서버 양쪽에서 실행할 수 있습니다.\n\n---\n\n## AI/ML 사용 사례 개요\n\n이 프로젝트는 문서 이해 및 정보 추출 도메인에서 널리 쓰이는 네 가지 대표 사례를 포함합니다.\n\n| 사용 사례 | 대표 분야 | 설명 |\n|----------|-----------|------|\n| **OCR** | 컴퓨터 비전 + 시퀀스 모델링 | 이미지에서 텍스트를 인식·추출 |\n| **Image** | 멀티모달 AI (VLM) | 이미지에 대해 질의·답변, 메타데이터 분석 |\n| **Parser** | 문서 AI / 객체 탐지 | 문서 레이아웃 분석, 구조화, 테이블 추출 |\n| **Agent** | LLM 기반 지시 수행 | 텍스트에 대한 지시 이행, 구조화 출력 |\n\n---\n\n## 각 사용 사례 상세\n\n### OCR — 텍스트 인식\n\n**대표 분야**: 컴퓨터 비전, 시퀀스 모델링\n\n이미지에서 문자를 인식해 디지털 텍스트로 추출합니다. 스캔 문서, 사진, 스크린샷 등 비정형 시각 자료에서 텍스트를 읽어낼 때 사용하는 전형적인 AI/ML 응용입니다.\n\n- **클라이언트**: Prompt API(Gemini Nano), Tesseract.js\n- **서버**: EasyOCR, Celery 비동기 처리\n\n---\n\n### Image — 이미지 이해\n\n**대표 분야**: 멀티모달 AI (Vision-Language Model)\n\n이미지와 자연어를 함께 이해하는 VLM을 사용합니다. 이미지에 대해 질문하면 답변을 생성하거나, 이미지 메타데이터를 분석합니다.\n\n- **클라이언트**: Moondream2 (WebGPU/WASM)\n- **서버**: 이미지 분석 API (크기, 포맷, 인사이트)\n\n---\n\n### Parser — 문서 구조 분석\n\n**대표 분야**: 문서 AI, 객체 탐지\n\n문서 이미지를 레이아웃 블록(제목, 본문, 테이블, 그림 등)으로 나누거나, 텍스트를 섹션·테이블 형태로 구조화합니다. 비정형 문서에서 의미 단위를 뽑아내는 전형적인 문서 AI 사용 사례입니다.\n\n- **클라이언트**: YOLOv10 DocLayNet (문서 레이아웃 분석)\n- **서버**: 텍스트 구조화, 테이블 추출 API\n\n---\n\n### Agent — 지시 수행\n\n**대표 분야**: LLM 기반 자연어 처리\n\n사용자 지시에 따라 텍스트를 변환·정규화합니다. 예를 들어 \"날짜만 추출해 JSON 배열로 만들어\" 같은 지시를 처리합니다. 대화형 AI와 구조화 출력의 대표적 사용 사례입니다.\n\n- **클라이언트**: Chrome Prompt API (Gemini Nano)\n- **서버**: LangChain, OpenAI 등 LLM API\n\n---\n\n## 프로젝트 구조\n\n```\nomniparse-ai-stack/\n├── apps/\n│   ├── web/        # Next.js 프론트엔드 (각 기능 UI + 클라이언트 AI)\n│   └── api/        # FastAPI 백엔드 (서버 AI, Celery)\n└── README.md\n```\n\n---\n\n## 빠른 시작\n\n### 프론트엔드 (웹 앱)\n\n```bash\ncd apps/web\nnpm install\nnpm run dev\n```\n\n→ [http://localhost:3000](http://localhost:3000)\n\n### 백엔드 (API, 선택)\n\n```bash\n# Redis 실행 (OCR 비동기 등)\ndocker run -d -p 6379:6379 redis:7-alpine\n\n# API 서버\ncd apps/api\npython -m venv .venv\nsource .venv/bin/activate   # Windows: .venv\\Scripts\\activate\npip install -r requirements.txt\ncp .env.example .env       # 필요 시 편집\nuvicorn main:app --reload --host 0.0.0.0 --port 8000\n\n# Celery 워커 (OCR 등 비동기 작업)\ncelery -A app.core.celery_app:celery_app worker -l info\n```\n\n---\n\n## 공통 특징\n\n- **클라이언트 vs API 이원화**: 브라우저 내 실행 또는 서버 실행 선택 가능\n- **동일한 UI 패턴**: status, elapsedMs, error 처리, 초기화 버튼 등 일관된 UX\n- **통합 API**: `apps/api` 하나로 OCR, Image, Parser, Agent 모두 제공\n\n---\n\n## 기술 스택 요약\n\n| 구분 | 기술 |\n|------|------|\n| 프론트엔드 | Next.js 16, React 19, TypeScript, Tailwind CSS 4 |\n| 클라이언트 AI | Tesseract.js, @huggingface/transformers, Prompt API |\n| 백엔드 | FastAPI, Celery, Redis |\n| 서버 AI | EasyOCR, LangChain, OpenAI, Pillow |\n\n---\n\n## 상세 문서\n\n- [apps/web/README.md](apps/web/README.md) — 웹 앱 가이드\n- [apps/api/README.md](apps/api/README.md) — API 가이드\n\n---\n\n**Omniparse AI Stack** — AI/ML 사용 사례로서의 문서 파싱 풀스택 데모\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunotb%2Fomniparse-ai-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunotb%2Fomniparse-ai-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunotb%2Fomniparse-ai-stack/lists"}