# VLM-OCR: 통합 OCR 서비스 플랫폼 ## 1. 개요 VLM-OCR은 다양한 Vision Language Model (VLM) 기반의 OCR(광학 문자 인식) 모델을 마이크로서비스 아키텍처로 구성하여, 단일 API 게이트웨이를 통해 일관된 방식으로 사용할 수 있도록 설계된 플랫폼입니다. 사용자는 복잡한 개별 모델 설정 없이, 원하는 모델을 간단히 지정하여 OCR 기능을 요청하고 결과를 받을 수 있습니다. ## 2. 프로젝트 아키텍처 본 프로젝트는 다음과 같은 두 가지 주요 구성 요소로 이루어져 있습니다. - **API Gateway (`api_gateway/`)**: - 모든 OCR 요청에 대한 단일 진입점(Single Entry Point) 역할을 합니다. - 사용자로부터 요청을 받아, 지정된 모델 서비스로 작업을 전달합니다. - 모델의 추론 시간을 측정하고, 응답을 표준화하여 사용자에게 반환합니다. - **Model Services (`model_services/`)**: - 각각의 OCR 모델이 독립적인 Docker 컨테이너로 실행되는 마이크로서비스입니다. - 현재 다음과 같은 모델들이 서비스로 구성되어 있습니다. ### 사용 가능한 모델 - `deepseek_ocr` - `paddle_vl` - `chandra` - `dotc.ocr` (현재 게이트웨이 설정에는 포함되지 않음) ## 3. 시작하기 ### 사전 요구사항 - [Docker](https://www.docker.com/get-started) - [Docker Compose](https://docs.docker.com/compose/install/) ### 전체 서비스 실행 각 모델 서비스 디렉토리와 API 게이트웨이 디렉토리에는 개별 `Dockerfile` 또는 `docker-compose.yml` 파일이 포함되어 있습니다. 프로젝트를 전체적으로 실행하려면 각 서비스의 `docker-compose.yml`을 활용하여 개별적으로 컨테이너를 빌드하고 실행해야 합니다. **예시 (DeepSeek-OCR 서비스 실행):** ```bash # 1. DeepSeek-OCR 서비스 디렉토리로 이동 cd model_services/deepseek_ocr/ # cd model_services/dotc.ocr/ # cd model_services/paddle_vl # 2. Docker Compose를 사용하여 빌드 및 실행 docker-compose up --build -d ``` 위와 같은 방식으로 `api_gateway` 및 다른 `model_services`들도 실행할 수 있습니다.