Google Lens 에이전트 스킬
이 스킬을 통해 AI 에이전트는 Google Lens를 이용한 역방향 이미지 검색, 광학 문자 인식(OCR) 텍스트 추출, 시각적 개체 감지, 쇼핑 매칭 및 가격 정보를 얻을 수 있습니다.
전제 조건 및 설치
google-lens가 환경에 아직 설치되지 않은 경우, 패키지를 설치하고 stealth Chromium 브라우저 바이너리를 다운로드하세요:
pip install google-lens-scraper
patchright install chromium
참고: 고속 경로 OCR 모드(
--ocr-only)는 Python 패키지만 필요하며, Chromium 바이너리를 다운로드하지 않고 즉시 작동합니다.
빠른 시작 레시피
1. 역방향 이미지 검색 및 시각적 인텔리전스 (기본 모드)
일치하는 제품, 웹 출처, 정규화된 가격 분석 및 다중 모달 속성 분석을 찾으려면:
google-lens search "<image-url-or-path>" --json-output
참고: 기본적으로 google-lens search는 GEMINI_API_KEY가 설정되어 있으면 자동으로 전자상거래 가격 정규화(--enrich) 및 심층 다중 모달 속성 분석(--analyze)을 Gemini 3.8 Flash를 통해 실행합니다.
에이전트 컨텍스트 내 폴백 전략:
results.analysis가null인 경우(호스트 환경에GEMINI_API_KEY가 설정되지 않은 경우), AI 에이전트는 직접 쿼리 이미지와 반환된visual_matches를 자체 대화 컨텍스트 내에서 검사하여 제품 속성(브랜드, 모델 실루엣, 소재, 상태, 예상 MSRP, 정품 인증)을 추론해야 합니다. 이는 추가 API 키 없이 사용자에게 완벽한 원활한 경험을 보장합니다.
2. Nano Banana Pro 8K AI Studio 팩샷 생성
참조 이미지로부터 깨끗한 흰색 배경의 초고해상도 8K 상업용 카탈로그 팩샷을 합성하려면:
google-lens search "<image-url-or-path>" --studio --studio-output ./packshot.png
선택적으로 사용자 정의 프롬프트를 제공할 수 있습니다:
google-lens search "<image-url-or-path>" --studio --studio-prompt "검은 브러시드 화강암 위의 8K 스튜디오 카탈로그 샷, 부드러운 드라마틱한 가장자리 조명"
3. 고속 경로 OCR 및 개체 감지 (1초 미만, CAPTCHA 없음)
이미지에서 텍스트 또는 경계 상자를 추출하려면 (Chromium Protobuf 엔드포인트 사용, 브라우저 오버헤드 없음):
google-lens search "<image-url-or-path>" --ocr-only --json-output
4. 전자상거래 및 재판매 차익거래 인텔리전스 (Pro)
정리된 표준 URL, 정규화된 가격 범위(최소/최대/평균)를 확인하고 최저 가격의 검증된 판매자("최적 거래")를 식별하려면:
google-lens search "<image-url-or-path>" --enrich --json-output
보강된 상거래 데이터를 깨끗한 JSON으로 직접 내보내려면:
google-lens search "<image-url-or-path>" --export-json deals.json
5. 실시간 토큰 및 비용 회계
모든 Gemini API 호출(Gemini 3.8 Flash 및 Nano Banana Pro)은 내장된 gemini-cost-calculator를 사용하여 자동으로 추적됩니다. CLI 또는 SDK를 통해 호출할 때 results.cost는 정확한 토큰 사용량과 USD 비용을 반환합니다:
"cost": {
"model": "gemini-3.8-flash",
"calls_count": 1,
"tokens": { "prompt": 450, "output": 180, "total": 630 },
"cost_usd": { "total": 0.001013 }
}
6. 라이선스 활성화 및 설정 (Pro)
Pro 기능(시장 가격 인텔리전스, 깔끔한 URL, JSON 내보내기, 스튜디오 팩)을 사용하려면 활성 Polar.sh 라이선스가 필요합니다.
라이선스 구매 (브라우저):
google-lens buy pro
# 또는 요금제 지정:
google-lens buy --plan annual
브라우저에서 Polar.sh 결제 페이지를 열어 요금제(평생, 연간, 월간)를 선택할 수 있습니다.
터미널에서 활성화:
google-lens pro activate "<your-polar-license-key>"
# 또는 대화형으로 실행:
google-lens pro activate
# 또는 환경 변수 설정:
export LENS_LICENSE_KEY="<your-polar-license-key>"
라이선스 상태 확인:
google-lens pro status
이 머신에서 비활성화:
google-lens pro deactivate
7. Google AI Studio 키 (선택 사항, --studio 전용)
Google Lens Scraper는 일반 검색이나 제품 속성에 Gemini API 키가 필요하지 않습니다. 이러한 정보는 Lens 메타데이터에서 기본적으로 제공되어 원활하게 작동합니다.
8K AI 스튜디오 팩샷(--studio)을 합성하려면 키를 한 번 구성하세요:
google-lens setup-ai --key "<your-gemini-api-key>"
# 또는 환경 변수 설정:
export GEMINI_API_KEY="<your-gemini-api-key>"
8. 세션 상태 및 Google 인증
Google Lens는 완전한 시각적 매칭을 위해 인증된 Google 세션이 필요하며 /sorry/index 속도 제한을 방지합니다:
google-lens status
인증되지 않았고 대화형 데스크톱 환경에서 실행 중인 경우:
google-lens login
헤드리스/클라우드/CI 환경의 경우 환경 변수를 통해 세션 상태를 전달하세요:
export LENS_STORAGE_STATE_JSON="<base64-또는-raw-json-스토리지-상태>"
번들 헬퍼 스크립트
프로그래매틱 워크플로 및 배치 작업을 위해 scripts/ 디렉토리에 있는 번들 스크립트를 사용하세요. 이 스크립트에는 PEP 723 인라인 종속성 메타데이터가 포함되어 있습니다.
단일 이미지 검색 및 필터링 (scripts/search_image.py)
내장된 가격, 결과 수 또는 모드별 필터링을 사용하여 이미지를 검색합니다:
# JSON 출력으로 기본 검색
python3 scripts/search_image.py "https://example.com/photo.jpg" --json
# 시각적 매칭 필터링 (예: 최대 5개 결과)
python3 scripts/search_image.py "path/to/image.png" --max-results 5 --json
# 빠른 OCR 추출
python3 scripts/search_image.py "path/to/receipt.jpg" --ocr-only --json
배치 이미지 처리 (scripts/batch_search.py)
이미지 디렉토리 또는 URL 목록을 비동기적으로 처리합니다:
# 디렉토리의 모든 이미지 처리
python3 scripts/batch_search.py --dir ./images/ --output ./batch_results.json
# 파일에서 URL 목록 처리
python3 scripts/batch_search.py --urls-file ./image_urls.txt --output ./batch_results.json --concurrency 3
출력 해석
--json-output을 사용할 때 JSON 페이로드는 다음 구조를 따릅니다:
{
"query": "https://example.com/item.jpg",
"ocr_text": "이미지에서 감지된 텍스트...",
"knowledge_graph": {
"title": "식별된 개체/엔터티 이름",
"subtitle": "분류 (예: 신발 / 식물)",
"description": "간단한 백과사전적 설명",
"website": "https://..."
},
"visual_matches": [
{
"title": "제품 제목",
"link": "https://store.com/item",
"source": "스토어 이름",
"price": "$99.00",
"thumbnail": "https://..."
}
],
"detected_objects": [
{
"id": "item_1",
"bounding_box": {
"center_x": 0.5,
"center_y": 0.5,
"width": 0.3,
"height": 0.4
}
}
]
}
문제 해결 및 모범 사례
- 봇 차단 (HTTP 429 / CAPTCHA): 시각적 매칭 요청이 속도 제한을 받는 경우
--ocr-only로 전환하거나(CAPTCHA 없음 보장)google-lens login또는LENS_STORAGE_STATE_JSON을 통해 인증하세요. - 로컬 이미지: 로컬 파일 경로 (
.png,.jpg,.jpeg,.webp,.bmp,.gif)는 Google의 빠른 업로드 엔드포인트에 자동으로 업로드됩니다. - 헤드리스 실행: 검색은 기본적으로 헤드리스로 실행됩니다. 디버깅 환경에서는
--no-headless를 전달하여 브라우저를 검사하세요.
전체 CLI 플래그, 구성 매개변수 및 상세 JSON 스키마는 references/REFERENCE.md를 참조하세요.