노트북LM 수준의 자연어 질의응답 시스템
RAG (검색 증강 생성) 기반 고객 지원 자동화
중소기업의 고객 지원 자동화 필요성 증가
문서 기반 즉각적 답변 제공으로 업무 효율성 향상
Vertex AI Search 연동, Laravel 백엔드 구현, 챗봇 UI, 문서 인덱싱, 참고 자료 제공
음성 인식, 이미지 분석, 실시간 영상 통화, 복잡한 워크플로우 자동화
인프라 관리 불필요, Google이 스케일링 및 유지보수 담당
문서 검색 + LLM 생성 결합으로 정확하고 맥락있는 답변
Google 검색 기술 기반의 고품질 문서 검색
PDF, DOCX, HTML, JSON, 웹사이트 크롤링
문서를 Vertex AI Search Data Store에 업로드 (PDF, DOCX, HTML 등)
자동으로 청크 단위로 분할 및 임베딩 벡터 생성
문서의 의미를 벡터로 변환하여 벡터 데이터베이스에 저장
메타데이터(제목, 작성자, 날짜 등)와 함께 인덱싱
검색: 사용자 질문을 벡터로 변환 후 유사 문서 검색
생성: 검색된 문서를 컨텍스트로 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 │ │
│ └────────────────────────┘ │
└────────────────────────────┘
# 프로젝트 ID: sam-chatbot-project # 위치: asia-northeast3 (서울)
# 서비스 계정 이름: sam-chatbot-sa # 역할: # - Discovery Engine Admin # - Vertex AI User
대량 문서 업로드 (gs://bucket-name/)
sitemap.xml 기반 자동 수집
콘솔에서 직접 파일 업로드
업로드 후 자동 인덱싱 시작 (10-30분 소요)
인덱싱 상태: Console → Vertex AI Search에서 확인
GCP Console의 Preview 기능으로 샘플 질문 테스트
composer require google/cloud-discoveryengine
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
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()
]);
}
<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>
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 = '';
}
| 항목 | 단가 | 예상 사용량 | 월 비용 |
|---|---|---|---|
| 데이터 저장 | $0.10/GB | 50GB | $5.00 |
| 질의 비용 | $0.0025/query | 3,000 queries | $7.50 |
| 총 합계 | $12.50 | ||
초기 3개월: 무료 크레딧 $300 활용 가능
| 구분 | 현재 | 권장 | 비고 |
|---|---|---|---|
| 웹 서버 | 2Core 4GB | 4Core 8GB | Laravel + 챗봇 동시 운영 |
| DB 서버 | 통합 | 분리 (4Core 8GB) | MySQL 전용 서버 |
| 저장공간 | 100GB | 200GB SSD | 문서 저장 및 로그 |
| 백업 | 수동 | 자동 일일 백업 | GCS 또는 별도 스토리지 |
이유: Vertex AI와의 네트워크 레이턴시 최소화
권장 위치: GCP asia-northeast3 (서울) 리전
예상 비용: 웹서버 $80/월 + DB서버 $80/월 = $160/월
문서의 품질이 곧 답변의 품질을 결정합니다
월 1회 문서 검토 및 업데이트
오래된 문서는 자동 아카이빙
버전 관리 시스템 도입
방법: 샘플 질문 10-20개로 주기적 테스트
지표: 답변 정확도 90% 이상 유지
개선: 부정확한 답변 발견 시 문서 보완
# Google Cloud 인증 키 service-account.json google-credentials.json *.json # 환경 변수 .env .env.local .env.production
| 역할 | 권한 | 용도 |
|---|---|---|
| Discovery Engine User | 검색 API 호출 | 일반 검색 요청 |
| Storage Object Viewer | 문서 읽기 | 문서 다운로드 |
| Discovery Engine Admin | 데이터 스토어 관리 | 관리자 전용 (제한적) |
개발: .env.local 사용
운영: 서버 환경 변수 또는 Secret Manager
CI/CD: GitHub Secrets 또는 GitLab Variables
| 단계 | 기간 | 주요 작업 | 산출물 |
|---|---|---|---|
| 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 | 정식 오픈, 운영 가이드 작성 | 프로덕션 런칭 |
| 질문 예시 | 기대 결과 |
|---|---|
| "제품 A의 가격은 얼마인가요?" | 제품 가격표 문서에서 정확한 가격 추출 및 답변 |
| "반품 정책이 어떻게 되나요?" | 반품 규정 문서 기반 상세 답변 + 링크 |
| "Laravel 설치 방법 알려줘" | 기술 문서에서 단계별 설치 가이드 제공 |
모든 답변에 원본 문서 링크 포함
사용자가 상세 정보를 직접 확인할 수 있도록 지원
사실 기반 답변 90% 이상
평균 2-3초 이내
질문과 답변 일치도 85% 이상
| 지표 | 목표 | 측정 방법 |
|---|---|---|
| 응답 정확도 | 90% 이상 | 샘플 질문 100개 테스트, 사람이 정확도 평가 |
| 평균 응답 시간 | 3초 이내 | API 응답 시간 모니터링 |
| 고객 만족도 | 85% 이상 | 답변 후 👍/👎 피드백 수집 |
| 지원 티켓 감소 | 50% 감소 | 챗봇 도입 전후 비교 |
| 일일 활성 사용자 | 100명 | Google Analytics 추적 |
| 문서 커버리지 | 80% 이상 | 질문 중 문서에서 답변 가능한 비율 |
고객 지원 인력 50% 절감
월 $500 인건비 절약
평균 응답 시간 30분 → 3초
고객 대기 시간 99% 감소
즉각적 답변 제공
24/7 서비스 가능
장기적 AI 챗봇 솔루션 전략
Vertex AI Search 기반 지능형 문서 검색 시스템
🎯 목표: 노트북LM 수준의 자연어 질의응답 시스템 구축
💰 비용: 월 $12.50 (Vertex AI Search) + $160 (인프라)
⏱️ 기간: 10-12주
📊 기대효과: 고객 지원 비용 50% 절감, 응답 시간 99% 단축
본 계획안에 대한 의견이나 추가 논의가 필요하신 경우
프로젝트 팀으로 연락 주시기 바랍니다.