Skip to content

After-Buy/after-buy-ocr-lambda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

After Buy OCR Lambda

AWS Lambda와 Amazon Textract를 활용한 After Buy OCR 처리 서비스입니다.

After Buy OCR Lambda는 Device Service로부터 제품 라벨 또는 영수증 이미지를 전달받아 텍스트를 추출하고, OCR 타입에 따라 필요한 정보를 파싱하여 반환합니다.


01. Overview

전자제품을 등록할 때 사용자가 모델명, 시리얼 넘버, 구매일, 구매처, 구매가격을 직접 입력하는 것은 번거롭습니다.

이 서비스는 제품 라벨과 영수증 이미지에서 필요한 정보를 자동으로 추출하여 사용자 입력 과정을 줄이기 위해 만들어졌습니다.

Device Service는 이미지를 Base64 형식으로 Lambda Function URL에 전달하고, Lambda는 Amazon Textract를 통해 텍스트를 인식한 뒤 OCR 타입에 맞는 파서를 실행합니다.


02. Tech Stack

Python AWS Lambda Amazon Textract GitHub Actions


03. Features

제품 모델명 추출

제품 라벨 이미지에서 모델명을 추출합니다.

시리얼 넘버 추출

제품 라벨 이미지에서 시리얼 넘버를 추출합니다.

영수증 정보 추출

영수증 이미지에서 구매일, 구매가격, 구매처 정보를 추출합니다.

내부 통신 인증

Device Service와 Lambda 사이의 요청은 내부 시크릿 키를 통해 검증합니다.


04. OCR Types

OCR Type Description Result
MODEL 제품 라벨에서 모델명 추출 model_name
SERIAL 제품 라벨에서 시리얼 넘버 추출 serial_number
RECEIPT 영수증에서 구매 정보 추출 purchase_date, purchase_price, purchase_store

05. Architecture

image

06. Request & Response

Request

POST https://{lambda-function-url}
Content-Type: application/json
x-internal-secret-key: {INTERNAL_SECRET_KEY}
{
  "ocr_type": "RECEIPT",
  "image_base64": "/9j/4AAQSkZJRgABAQAAAQAB..."
}

Success Response

{
  "ocr_type": "RECEIPT",
  "is_success": true,
  "result": {
    "purchase_date": "2024-09-20",
    "purchase_price": 1550000,
    "purchase_store": "Apple Store 가로수길"
  }
}

Failure Response

{
  "ocr_type": "MODEL",
  "is_success": false,
  "result": null,
  "message": "텍스트를 인식하지 못했습니다. 다시 시도해주세요."
}

07. Project Structure

after-buy-ocr-lambda
├── lambda_function.py
├── parsers
│   ├── __init__.py
│   ├── model_parser.py
│   ├── serial_parser.py
│   └── receipt_parser.py
├── requirements.txt
├── .env_example
├── .gitignore
└── .github
    └── workflows
        └── deploy.yml

08. Main Files

File Description
lambda_function.py Lambda Function URL HTTP 이벤트를 처리하는 메인 핸들러
parsers/model_parser.py 제품 모델명 파싱 로직
parsers/serial_parser.py 시리얼 넘버 파싱 로직
parsers/receipt_parser.py 영수증 구매 정보 파싱 로직
requirements.txt Lambda 실행에 필요한 Python 패키지 목록
.github/workflows/deploy.yml GitHub Actions 기반 Lambda 배포 워크플로우

09. Environment Variables

Variable Description
INTERNAL_SECRET_KEY Device Service와 Lambda 간 내부 통신 인증용 시크릿 키

10. GitHub Secrets

GitHub Actions를 통한 Lambda 배포를 위해 아래 Secrets가 필요합니다.

Secret Description
LAMBDA_DEPLOY_AWS_ACCESS_KEY_ID Lambda 배포 전용 IAM Access Key
LAMBDA_DEPLOY_AWS_SECRET_ACCESS_KEY Lambda 배포 전용 IAM Secret Key
AWS_REGION AWS 리전
LAMBDA_FUNCTION_NAME 배포 대상 Lambda 함수명

11. Deployment Flow

Push to develop branch
   ↓
GitHub Actions 실행
   ↓
Python dependencies 설치
   ↓
Lambda 배포 패키지 생성
   ↓
AWS Lambda 함수 업데이트

12. Error Handling

Case Description
잘못된 내부 시크릿 키 요청을 거부합니다.
지원하지 않는 OCR 타입 유효하지 않은 OCR 타입으로 처리합니다.
이미지 Base64 누락 OCR 처리를 수행하지 않습니다.
Textract 인식 실패 사용자에게 재시도 메시지를 반환합니다.
파싱 결과 없음 is_success: false와 함께 실패 메시지를 반환합니다.

13. Related Repositories

Repository Description
after-buy-device-service OCR Lambda를 호출하는 전자제품 관리 서비스
after-buy-infra After Buy 인프라 및 배포 설정
After-Buy Organization After Buy 전체 프로젝트

14. Role in After Buy

이 Lambda는 After Buy 서비스에서 사용자의 입력 부담을 줄이는 역할을 담당합니다.

제품 라벨과 영수증 이미지를 분석하여 전자제품 등록 과정에서 필요한 정보를 자동으로 추출하고, Device Service가 해당 결과를 저장할 수 있도록 정제된 OCR 결과를 반환합니다.

About

AWS Lambda (OCR, Python)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages