번역 큐: 배치 처리 시스템

이 문서는 AI API 사용을 최적화하기 위해 번역을 큐에 넣고 배치 처리하는 방법을 설명합니다.

문제: 온디맨드 번역은 비용이 많이 든다

콘텐츠를 온디맨드로 번역하는 데는 문제가 있습니다:

  • 느림: 각 번역에 1-2초 소요

  • 비쌈: 요청당 API 비용 발생

  • 중복: 동일한 텍스트가 여러 번 번역됨

  • 차단: 사용자가 번역을 기다려야 함

더 나은 접근 방식이 필요합니다.

해결책: 큐와 배치

큐: 번역 요청 수집

배치: 여러 번역을 함께 처리

캐시: 재사용을 위해 결과 저장

스케줄: 주기적으로 큐 처리 (실시간 아님)

큐 구조

큐 파일

위치: 디스크의 JSON 파일

형식: 번역 요청 배열

필드:

  • text: 번역할 영어 텍스트

  • target_lang: 언어 코드 (hi, de, fr 등)

  • context: 텍스트가 나타나는 위치 (product, query, article)

  • priority: 높음/보통/낮음

큐에 추가

번역이 누락된 경우:

queue_translation(text, target_lang, context="product")

중복 제거: 이미 큐에 있는지 확인

유효성 검사: 잘못된 값 거부

배치 처리

스크립트

위치: scripts/web/process_translation_queue.py

스케줄: cron을 통해 6시간마다 실행

잠금 파일: 동시 실행 방지

처리 흐름

1. 큐 로드: 모든 대기 중인 요청 읽기

2. 언어별 그룹화: 같은 언어 요청을 배치로 묶기

3. 중복 제거: 배치 내 중복 제거

4. 캐시 확인: 이미 번역된 텍스트 건너뛰기

5. 배치 번역: DeepSeek API로 전송

6. 결과 파싱: 응답에서 번역 추출

7. 캐시에 저장: 구문 테이블에 저장

8. 큐 비우기: 처리된 요청 제거

배치 번역

API 호출

모델: DeepSeek-V3 (Together.ai 경유)

시스템 프롬프트: 캐시됨 (언어별 모든 배치에 동일)

사용자 프롬프트: 가변적 (배치별)

형식: 번호 매긴 목록

예시:

Translate these 10 texts:
1. Mini PC
2. Thin Client
3. Compact Desktop
...

응답:

1. मिनी पीसी
2. थिन क्लाइंट
3. कॉम्पैक्ट डेस्कटॉप
...

파싱

줄 번호로 번역 추출:

  • 숫자 접두사 제거 (1., 2. 등)

  • 위치로 원본 텍스트와 매칭

  • 개수 일치 검증

오류 처리

API 실패: 대체 API로 재시도

파싱 실패: 원본 텍스트 반환

부분 성공: 성공한 번역 저장, 실패한 것 재큐

캐싱 전략

구문 테이블

위치: 언어별 JSON 파일

형식: {"English": "Translation"}

로딩: 시작 시 한 번 로드

이점: 빠른 조회, API 호출 불필요

캐시 적중률

첫 실행: 낮음 (모두 새로운 것)

이후 실행: 높음 (대부분 캐시됨)

이점: API 비용 절감

보존 규칙

번역 중 다음을 보존합니다:

브랜드 이름: Thinvent®, Intel®, AMD®

HTML 태그: <p>, <br>, <strong>

URL: https://www.thinvent.in

SKU: Treo-N100-8-256

숫자: 8GB, 256GB, 4 cores

구현: 시스템 프롬프트의 정규식 패턴

언어 감지

번역 전에 이미 번역되었는지 확인:

방법: 문자 집합 분석

힌디어: 데바나가리 문자

중국어: CJK 문자

아랍어: 아랍 문자

이점: 불필요한 번역 건너뛰기

우선순위 처리

높은 우선순위: 제품 이름, 기능 (먼저 처리)

보통 우선순위: 설명, 문서 (두 번째 처리)

낮은 우선순위: 오래된 콘텐츠, 드물게 조회됨 (마지막 처리)

이점: 중요한 콘텐츠가 먼저 번역됨

스케줄링

Cron 작업

빈도: 6시간마다

명령: python3 scripts/web/process_translation_queue.py

잠금 파일: /tmp/process_translation_queue.lock

이점: 자동 처리, 수동 개입 불필요

주간 작업

문서: 매주 새 문서 번역

Babel 문자열: 매주 템플릿 번역 업데이트

스크립트: scripts/web/translate_articles_weekly.sh

모니터링

큐 크기

대기 중인 요청 추적:

  • 총 요청 수

  • 언어별 요청

  • 가장 오래된 요청 나이

알림: 큐가 너무 커지면

번역 통계

처리 추적:

  • 배치당 번역 수

  • API 성공률

  • 캐시 적중률

  • 처리 시간

비용 추적

API 사용 모니터링:

  • 일일 요청 수

  • 요청당 토큰

  • 언어별 비용

참고 자료

관련 문서

요약

번역 큐는 효율적인 배치 처리를 가능하게 합니다:

큐:

  • 번역 요청 수집

  • 배치 내 중복 제거

  • 우선순위 처리

  • 유효성 검사 및 필터링

배치 처리:

  • 언어별 그룹화

  • DeepSeek API로 전송

  • 번호 매긴 응답 파싱

  • 구문 테이블에 저장

캐싱:

  • 번역 전 캐시 확인

  • 높은 캐시 적중률

  • API 비용 절감

스케줄링:

  • cron을 통해 6시간마다

  • 잠금 파일이 동시 실행 방지

  • 주간 문서 번역

보존:

  • 브랜드 이름

  • HTML 태그

  • URL 및 SKU

이 접근 방식은 배치 처리와 캐싱을 통해 API 비용을 절감하고 번역 품질을 향상시킵니다.


← 문서 색인으로 돌아가기