pile·
AI / ML·마켓컬리마켓컬리 Hello World·

BigQuery와 Gemini로 리뷰 분석 업무 자동화하기

BigQuery 콘솔에서 SQL만으로 Gemini Pro를 호출해 리뷰 분석 업무를 자동화한 사례다. ML.GENERATE_TEXT 함수로 요약·키워드·감성·분류를 수행하고, 할루시네이션을 JSON 응답·배치·RAI로 다스린다.

핵심 포인트
  • BigQuery에서 Vertex AI 연결(Connection)과 모델(Model)을 등록하면 ML.GENERATE_TEXT(MODEL, (SELECT prompt), STRUCT(...))로 SQL만으로 Gemini를 호출할 수 있다.
  • CONCAT으로 프롬프트와 테이블 데이터를 합치면 요약·키워드 추출·카테고리 분류·감성 점수화 등을 프롬프트만 바꿔 수행한다.
  • LLM은 숫자 대신 문자열, 범위 초과(-5), 불필요한 설명 등 할루시네이션을 내므로, 응답을 JSON 형식으로 강제하고 정규식·JSON 쿼리로 정합성 검사 후 재생성한다.
  • 수만 건은 요청 제한·시간 문제가 있어 리뷰 100개씩 JSON으로 묶는 배치 기법을 쓰고, RAI 결과·finish_status로 안전 속성·종료 상태를 확인한다.
상세 정리
  • 사전 준비: Gemini는 Vertex AI에 있으므로 BigQuery에서 Vertex AI 연결 생성과 데이터셋에 Gemini 모델 추가가 필요하다.
  • 기본 호출: SELECT ml_generate_text_llm_result FROM ML.GENERATE_TEXT(MODEL ..., (SELECT "안녕" AS prompt), STRUCT(TRUE AS flatten_json_output)) 형태로 결과를 받는다.
  • 요약: CONCAT("이 리뷰를 한 단어로 요약해줘: ", review)로 리뷰를 한 단어로 요약하고, 설명이 붙으면 "설명 달지 말라"를 프롬프트에 추가한다.
  • 다양한 작업: 홍보 문구 작성(STRING_AGG로 리뷰 결합), 키워드 추출, [배송/포장/가격/품질/신선도] 중 분류, 0~10 감성 점수화 등을 프롬프트 변경만으로 수행한다.
  • 할루시네이션 사례: 숫자 요구에 "긍정적인 리뷰입니다" 문자열 반환, 범위 밖 -5, 요청하지 않은 설명 추가 등이 발생했다.
  • JSON 강제: {delivery, quality, price} 불리언처럼 응답 형식을 지정하면 JSON 쿼리로 정합성 검사가 쉽고, 여러 결과를 한 번에 받기 좋으며, 필드를 컬럼으로 분리 저장할 수 있다.
  • 대량 처리: 리뷰 여러 건을 batch_json으로 묶어 하나의 프롬프트로 처리해 전처리(묶기)·후처리(풀기)가 필요하지만 데이터가 많을수록 효율적이다.
  • RAI: ml_generate_text_rai_result로 안전 속성 위배를 확인하고, flatten_json_output을 False로 두면 종료 상태·안전 속성·토큰 수를 확인할 수 있다. finish_status는 1이 완료, 2가 max token 도달, 3이 안전 속성 종료를 뜻한다.
  • 소회: 딥러닝 모델 구축 경험 없이도 PM·엔지니어가 프롬프트로 원하는 분석을 도출할 수 있었고, 예약 쿼리·프로시저로 수작업을 자동화할 수 있다.
왜 읽나BigQuery 환경에서 별도 모델 구축 없이 LLM으로 텍스트 분석을 자동화하려는 데이터 엔지니어·분석가에게 SQL 호출법과 할루시네이션 제어(JSON·배치·RAI) 노하우를 주는 사례.
마켓컬리
마켓컬리 Hello World 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·LY CorporationLY Corporation·

    Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기

    LY Corporation Home SRE 팀이 장애 분석 시 메트릭·로그·트레이스가 각각 다른 화면에 흩어져 있는 문제를 해결하기 위해 Grafana 플러그인 SRELens를 개발했다. SRELens는 LLM 에이전트가 자연어 질의를 받아 실제 관측성 데이터를 조회하고, 근거와 함께 장애 원인 후보를 정리해 주는 도구다. LGTM-P 스택(Loki·Grafana·Tempo·Mimir·Pyroscope)과 FlavaMCP 게이트웨이를 통합해 단일 채팅 인터페이스에서 멀티시그널 분석이 가능하다.

    #llm-app#mcp#observability+2