🏠 전략선택

장기적 AI 챗봇 솔루션 전략

Vertex AI Search 기반 지능형 문서 검색 시스템

노트북LM 수준의 자연어 질의응답 시스템

RAG (검색 증강 생성) 기반 고객 지원 자동화

프로젝트 개요

배경

중소기업의 고객 지원 자동화 필요성 증가
문서 기반 즉각적 답변 제공으로 업무 효율성 향상

핵심 목표

  • 자연어 질문 즉각 답변: 복잡한 질의에 대한 정확한 답변 제공
  • 노트북LM 유사 기술: Google의 Vertex AI Search RAG 기술 활용
  • 고객 지원 비용 절감: 자동화를 통한 인력 비용 및 시간 절약
  • 문서 기반 검색: PDF, DOCX, HTML 등 다양한 형식 지원

프로젝트 범위

✅ 포함 범위

Vertex AI Search 연동, Laravel 백엔드 구현, 챗봇 UI, 문서 인덱싱, 참고 자료 제공

❌ 제외 범위

음성 인식, 이미지 분석, 실시간 영상 통화, 복잡한 워크플로우 자동화

Vertex AI Search 기술 분석

🤖 완전 관리형 서비스

인프라 관리 불필요, Google이 스케일링 및 유지보수 담당

🔍 RAG (검색 증강 생성)

문서 검색 + LLM 생성 결합으로 정확하고 맥락있는 답변

🎯 Google 수준의 검색 품질

Google 검색 기술 기반의 고품질 문서 검색

📚 다양한 문서 형식 지원

PDF, DOCX, HTML, JSON, 웹사이트 크롤링

핵심 특징

  • Semantic Search: 키워드 매칭이 아닌 의미 기반 검색
  • Personalization: 사용자별 맞춤 검색 결과 제공
  • Multi-modal: 텍스트, 이미지, 비디오 등 다양한 데이터 타입
  • Enterprise-grade Security: IAM 기반 접근 제어 및 데이터 격리

RAG (검색 증강 생성) 작동 원리

1단계: 데이터 수집 (Ingestion)

문서를 Vertex AI Search Data Store에 업로드 (PDF, DOCX, HTML 등)

자동으로 청크 단위로 분할 및 임베딩 벡터 생성

2단계: 인덱싱 (Indexing)

문서의 의미를 벡터로 변환하여 벡터 데이터베이스에 저장

메타데이터(제목, 작성자, 날짜 등)와 함께 인덱싱

3단계: 검색 및 생성 (Search & Generation)

검색: 사용자 질문을 벡터로 변환 후 유사 문서 검색

생성: 검색된 문서를 컨텍스트로 LLM(Gemini)이 답변 생성

참조: 답변에 사용된 원본 문서 링크 제공

시스템 아키텍처

┌─────────────┐
│   사용자     │
└──────┬──────┘
       │ 질문 입력
       ↓
┌──────────────────┐
│  SAM Frontend    │
│   (Vue.js/       │
│    React)        │
└────────┬─────────┘
         │ HTTP Request
         ↓
┌──────────────────────────┐
│   SAM Backend (Laravel)  │
│ ┌──────────────────────┐ │
│ │   ChatController     │ │
│ │  - searchVertexAI()  │ │
│ └──────────┬───────────┘ │
└────────────┼─────────────┘
             │ API Call
             ↓
┌────────────────────────────┐
│   Google Cloud Platform    │
│ ┌────────────────────────┐ │
│ │  Vertex AI Search      │ │
│ │  - Data Store          │ │
│ │  - Search Engine       │ │
│ └───────────┬────────────┘ │
│             │              │
│ ┌───────────▼────────────┐ │
│ │  LLM (Gemini 1.5)      │ │
│ │  - Answer Generation   │ │
│ └────────────────────────┘ │
└────────────────────────────┘
                    

데이터 흐름

  1. 사용자가 프론트엔드에서 질문 입력
  2. Laravel 백엔드가 Vertex AI Search API 호출
  3. Vertex AI가 문서 검색 후 Gemini에 전달
  4. Gemini가 검색 결과 기반 답변 생성
  5. 백엔드가 답변 + 참고 자료를 프론트엔드로 반환

Phase 1: Google Cloud 설정

1. GCP 프로젝트 생성

# 프로젝트 ID: sam-chatbot-project
# 위치: asia-northeast3 (서울)

2. 필수 API 활성화

  • Discovery Engine API (Vertex AI Search)
  • Vertex AI API
  • Cloud Storage API (문서 저장용)

3. 서비스 계정 생성

# 서비스 계정 이름: sam-chatbot-sa
# 역할:
#   - Discovery Engine Admin
#   - Vertex AI User

4. JSON 인증 키 다운로드

⚠️ 보안 주의사항

  • JSON 키 파일은 절대 Git에 커밋하지 않기
  • .gitignore에 추가 필수
  • 환경 변수로 관리

Phase 2: Vertex AI Search 데이터 스토어 구축

1. 앱 생성

  • 앱 유형: Chat (대화형)
  • 데이터 타입: Unstructured (비정형 문서)
  • 솔루션 타입: Search with Chat

2. 문서 업로드

📂 Cloud Storage

대량 문서 업로드 (gs://bucket-name/)

🌐 웹사이트 크롤링

sitemap.xml 기반 자동 수집

📄 개별 업로드

콘솔에서 직접 파일 업로드

3. 인덱싱

업로드 후 자동 인덱싱 시작 (10-30분 소요)

인덱싱 상태: Console → Vertex AI Search에서 확인

4. 테스트

GCP Console의 Preview 기능으로 샘플 질문 테스트

Phase 3: Laravel 백엔드 구현

1. Google Cloud PHP 클라이언트 설치

composer require google/cloud-discoveryengine

2. 환경 변수 설정 (.env)

GOOGLE_CLOUD_PROJECT_ID=sam-chatbot-project
GOOGLE_CLOUD_LOCATION=asia-northeast3
GOOGLE_CLOUD_DATA_STORE_ID=your-data-store-id
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json

3. ChatController 구현

use Google\Cloud\DiscoveryEngine\V1\SearchServiceClient;
use Google\Cloud\DiscoveryEngine\V1\SearchRequest;

public function searchVertexAI(Request $request)
{
    $query = $request->input('query');

    $client = new SearchServiceClient([
        'credentials' => env('GOOGLE_APPLICATION_CREDENTIALS')
    ]);

    $servingConfig = sprintf(
        'projects/%s/locations/%s/collections/default_collection/dataStores/%s/servingConfigs/default_config',
        env('GOOGLE_CLOUD_PROJECT_ID'),
        env('GOOGLE_CLOUD_LOCATION'),
        env('GOOGLE_CLOUD_DATA_STORE_ID')
    );

    $searchRequest = new SearchRequest([
        'serving_config' => $servingConfig,
        'query' => $query,
        'page_size' => 5
    ]);

    $response = $client->search($searchRequest);

    return response()->json([
        'answer' => $response->getSummary(),
        'references' => $response->getResults()
    ]);
}

Phase 4: 프론트엔드 구현

1. 챗봇 UI 컴포넌트

<template>
  <div class="chatbot-container">
    <div class="messages">
      <div v-for="msg in messages" :key="msg.id">
        <div :class="['message', msg.role]">
          {{ msg.content }}
        </div>
        <div v-if="msg.references" class="references">
          참고: <a v-for="ref in msg.references" :href="ref.url">
            {{ ref.title }}
          </a>
        </div>
      </div>
    </div>
    <input v-model="userInput" @keyup.enter="sendMessage" />
  </div>
</template>

2. API 호출 로직

async sendMessage() {
  const response = await axios.post('/api/chatbot/search', {
    query: this.userInput
  });

  this.messages.push({
    role: 'user',
    content: this.userInput
  });

  this.messages.push({
    role: 'assistant',
    content: response.data.answer,
    references: response.data.references
  });

  this.userInput = '';
}

초기 투자 비용 분석

Vertex AI Search 비용 (월간 예상)

항목 단가 예상 사용량 월 비용
데이터 저장 $0.10/GB 50GB $5.00
질의 비용 $0.0025/query 3,000 queries $7.50
총 합계 $12.50

추가 비용 (선택사항)

  • Cloud Storage: $0.023/GB (문서 백업용)
  • Gemini API: 별도 호출 시 추가 비용 (RAG는 포함)
  • 네트워크 송신: $0.12/GB (아시아 → 외부)

💰 월 $12.50 수준의 저렴한 운영 비용

초기 3개월: 무료 크레딧 $300 활용 가능

인프라 확장 권고사항

⚠️ 현재 인프라 분석

  • 현재 스펙: 2Core 4GB (부족)
  • 문제점: Laravel + MySQL + 챗봇 동시 운영 시 메모리 부족
  • 동시 사용자: 10-20명 수준으로 제한적

권장 인프라 구성

구분 현재 권장 비고
웹 서버 2Core 4GB 4Core 8GB Laravel + 챗봇 동시 운영
DB 서버 통합 분리 (4Core 8GB) MySQL 전용 서버
저장공간 100GB 200GB SSD 문서 저장 및 로그
백업 수동 자동 일일 백업 GCS 또는 별도 스토리지

Cloud VM 이전 필수

이유: Vertex AI와의 네트워크 레이턴시 최소화

권장 위치: GCP asia-northeast3 (서울) 리전

예상 비용: 웹서버 $80/월 + DB서버 $80/월 = $160/월

데이터 품질 관리 전략

핵심 원칙

문서의 품질이 곧 답변의 품질을 결정합니다

1. 문서 최신화

📅 정기 업데이트

월 1회 문서 검토 및 업데이트

🗑️ 구버전 제거

오래된 문서는 자동 아카이빙

✅ 변경 추적

버전 관리 시스템 도입

2. 문서 표준화

  • 구조화: 제목, 소제목, 본문이 명확한 구조
  • 포맷: PDF 또는 DOCX 권장 (일관된 포맷)
  • 언어: 한국어 또는 영어 중 하나로 통일
  • 메타데이터: 제목, 작성자, 작성일, 카테고리 필수 입력

3. 품질 검증

방법: 샘플 질문 10-20개로 주기적 테스트

지표: 답변 정확도 90% 이상 유지

개선: 부정확한 답변 발견 시 문서 보완

보안: API 키 및 인증 관리

1. 서비스 계정 키 보안

⚠️ 절대 금지 사항

  • JSON 키 파일을 Git에 커밋
  • 클라이언트 사이드 코드에 키 노출
  • 공개 저장소에 키 업로드
  • 불필요한 권한 부여

2. .gitignore 설정

# Google Cloud 인증 키
service-account.json
google-credentials.json
*.json

# 환경 변수
.env
.env.local
.env.production

3. 최소 권한 원칙

역할 권한 용도
Discovery Engine User 검색 API 호출 일반 검색 요청
Storage Object Viewer 문서 읽기 문서 다운로드
Discovery Engine Admin 데이터 스토어 관리 관리자 전용 (제한적)

4. 환경 변수 관리

개발: .env.local 사용

운영: 서버 환경 변수 또는 Secret Manager

CI/CD: GitHub Secrets 또는 GitLab Variables

개발 로드맵 (10-12주)

단계 기간 주요 작업 산출물
Phase 1 W1-2 GCP 설정, Vertex AI Search 앱 생성, 샘플 문서 업로드 테스트용 데이터 스토어
Phase 2 W3-4 Laravel 백엔드 API 개발, 인증 구현 ChatController + API 엔드포인트
Phase 3 W5-6 프론트엔드 챗봇 UI 개발, 답변 표시, 참고자료 링크 챗봇 인터페이스
Phase 4 W7-8 전체 문서 업로드 및 인덱싱, 품질 테스트 프로덕션 데이터 스토어
Phase 5 W9 사용자 피드백 수집, 답변 품질 개선 베타 테스트 리포트
Phase 6 W10 인프라 확장 (4Core 8GB), DB 분리 스케일링 완료
Phase 7 W11 모니터링 및 로깅 시스템 구축 운영 대시보드
Phase 8 W12 정식 오픈, 운영 가이드 작성 프로덕션 런칭

테스트 시나리오

1. 문서 기반 질의응답

질문 예시 기대 결과
"제품 A의 가격은 얼마인가요?" 제품 가격표 문서에서 정확한 가격 추출 및 답변
"반품 정책이 어떻게 되나요?" 반품 규정 문서 기반 상세 답변 + 링크
"Laravel 설치 방법 알려줘" 기술 문서에서 단계별 설치 가이드 제공

2. 참조 자료 제공

모든 답변에 원본 문서 링크 포함

사용자가 상세 정보를 직접 확인할 수 있도록 지원

3. 다국어 지원 테스트

  • 한국어 질문 → 한국어 문서 검색 → 한국어 답변
  • 영어 질문 → 영어 문서 검색 → 영어 답변

4. 답변 정확도 평가

✅ 정확도

사실 기반 답변 90% 이상

⏱️ 응답 속도

평균 2-3초 이내

📊 관련성

질문과 답변 일치도 85% 이상

성공 지표 (KPI)

지표 목표 측정 방법
응답 정확도 90% 이상 샘플 질문 100개 테스트, 사람이 정확도 평가
평균 응답 시간 3초 이내 API 응답 시간 모니터링
고객 만족도 85% 이상 답변 후 👍/👎 피드백 수집
지원 티켓 감소 50% 감소 챗봇 도입 전후 비교
일일 활성 사용자 100명 Google Analytics 추적
문서 커버리지 80% 이상 질문 중 문서에서 답변 가능한 비율

ROI 분석

💰 비용 절감

고객 지원 인력 50% 절감

월 $500 인건비 절약

⏱️ 시간 절약

평균 응답 시간 30분 → 3초

고객 대기 시간 99% 감소

📈 만족도 향상

즉각적 답변 제공

24/7 서비스 가능

감사합니다

장기적 AI 챗봇 솔루션 전략

Vertex AI Search 기반 지능형 문서 검색 시스템

프로젝트 요약

🎯 목표: 노트북LM 수준의 자연어 질의응답 시스템 구축

💰 비용: 월 $12.50 (Vertex AI Search) + $160 (인프라)

⏱️ 기간: 10-12주

📊 기대효과: 고객 지원 비용 50% 절감, 응답 시간 99% 단축

문의 및 피드백

본 계획안에 대한 의견이나 추가 논의가 필요하신 경우

프로젝트 팀으로 연락 주시기 바랍니다.

1 / 17