52 lines
3.3 KiB
Markdown
52 lines
3.3 KiB
Markdown
|
|
# Google Cloud 기반 Vector RAG 구축 가이드
|
||
|
|
|
||
|
|
"순수 RAG" 즉, **Vector Search** 기반의 고도화된 시스템을 Google Cloud Platform(GCP)에서 구축하기 위한 가이드입니다.
|
||
|
|
|
||
|
|
## 1. 핵심 구글 서비스 (필요한 도구들)
|
||
|
|
|
||
|
|
고도화된 RAG를 구축하려면 다음 Vertex AI 서비스들을 조합해야 합니다.
|
||
|
|
|
||
|
|
| 단계 | 역할 | Google 서비스명 | 설명 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| **두뇌 (LLM)** | 답변 생성 | **Vertex AI Gemini** | 최종 답변을 작성하는 생성형 AI 모델 (Flash/Pro) |
|
||
|
|
| **번역기 (Embedding)** | 텍스트 → 숫자 변환 | **Vertex AI Embeddings** | 문서를 AI가 이해하는 숫자(Vector)로 변환 (`text-embedding-004`) |
|
||
|
|
| **저장소 (DB)** | 숫자 검색 (Vector DB) | **Vertex AI Vector Search** | 수억 개의 벡터 중 가장 유사한 것을 0.1초 내에 찾는 엔진 |
|
||
|
|
| **저장소 (Raw)** | 원본 파일 저장 | **Cloud Storage (GCS)** | Notion에서 추출한 텍스트/JSON 파일을 저장하는 공간 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. 구축 과정 (Step-by-Step)
|
||
|
|
|
||
|
|
### Phase 1: 데이터 파이프라인 구축 (Data Ingestion)
|
||
|
|
매일 밤 또는 주기적으로 문서를 최신화하는 자동화 시스템입니다.
|
||
|
|
|
||
|
|
1. **Notion 데이터 추출**:
|
||
|
|
* Python 스크립트(Cloud Functions)가 Notion API를 호출해 모든 페이지를 텍스트로 가져옵니다.
|
||
|
|
* 데이터를 500~1000자 단위로 자릅니다(Chunking).
|
||
|
|
2. **임베딩 생성 (Embedding)**:
|
||
|
|
* 자른 텍스트 조각들을 **Vertex AI Embeddings API**에 보냅니다.
|
||
|
|
* API가 각 조각을 768차원(혹은 그 이상)의 숫자 배열(Vector)로 변환해 줍니다.
|
||
|
|
3. **Vector DB 적재**:
|
||
|
|
* 변환된 Vector와 원본 텍스트 ID를 **Vertex AI Vector Search** 인덱스에 업로드(Upsert)하여 저장합니다.
|
||
|
|
|
||
|
|
### Phase 2: 검색 및 답변 시스템 (RAG Application)
|
||
|
|
실제 사용자가 채팅할 때 일어나는 실시간 프로세스입니다.
|
||
|
|
|
||
|
|
1. **질문 임베딩**:
|
||
|
|
* 사용자: "SaaS 용어가 뭐야?"
|
||
|
|
* 시스템: 이 질문을 **Embeddings API**에 보내 숫자로 변환합니다.
|
||
|
|
2. **유사도 검색 (Retrieval)**:
|
||
|
|
* 시스템: 변환된 숫자를 **Vector Search**에 던져 "가장 거리가 가까운(의미가 비슷한) 문서 조각 5개 줘"라고 요청합니다.
|
||
|
|
* Vector Search: Notion에 없는 단어라도 의미가 비슷하면 찾아냅니다. (예: 'SaaS' ↔ '클라우드 소프트웨어')
|
||
|
|
3. **답변 생성 (Generation)**:
|
||
|
|
* 시스템: 찾아낸 문서 조각 5개 + 사용자 질문을 모아 **Gemini**에게 보냅니다.
|
||
|
|
* Gemini: 근거 자료를 바탕으로 정확한 답변을 작성합니다.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. (참고) 더 쉬운 방법: Vertex AI Agent Builder
|
||
|
|
위 과정을 일일이 개발하기 부담스럽다면, Google의 완전 관리형 서비스인 **Vertex AI Agent Builder (구 Search & Conversation)**를 사용할 수 있습니다.
|
||
|
|
|
||
|
|
* **방식**: Notion 데이터(PDF/HTML 등)를 Google Cloud Storage에 넣고 "이거 검색기 만들어줘"라고 클릭 몇 번 하면, **위의 1~3번 과정(임베딩, 벡터 DB, 검색 로직)을 구글이 알아서 처리**해 줍니다.
|
||
|
|
* **추천**: 개발 리소스가 부족하고 빠른 구축이 필요하다면 이 방식이 효율적입니다. "순수 RAG"를 직접 코딩으로 제어하고 싶다면 위의 Vector Search 방식을 씁니다.
|