728x90
반응형

GenAI 챗봇이 이해만 할 수 있다면 어떨까요? what 당신이 말하는 것뿐만 아니라 why도 중요하죠. 풍부하고 연결된 컨텍스트로 응답할 수 있도록 도와주는 건 바로 Knowledge Graph 랍니다.

GenAI 기반 검색의 새로운 지평, GraphRAG에 오신 것을 환영해요!

🎬 임베딩에서 인텔리전스까지: Vector RAG가 충분하지 않은 이유

Neo4j와 Google Vertex AI를 사용해서 영화 추천 챗봇을 처음 만들었을 때, 접근 방식은 간단하면서도 효과적이었어요. 영화 개요에서 텍스트 임베딩을 생성하고 이걸 Neo4j에 저장한 다음, 벡터 유사성 검색을 사용해서 사용자 쿼리를 기반으로 영화를 추천했죠. 이 버전은 꽤 잘 작동했어요. '인터스텔라 같은 영화'를 이해하고 줄거리 유사성을 기반으로 관련 결과를 반환했으니까요.

  • “네가 이 감독의 공상과학 작품을 좋아했으니까…”
  • “이 배우가 비슷한 주제의 다른 영화에 출연했어요…”
  • "이 장르 혼합은 같은 10년 동안 트렌드였어요..."

이런 도약을 위해서는 벡터 그 이상이 필요해요. 우리에겐 추론 능력이 필요한 거죠.

🔁 GraphRAG 입력: 관계를 생각하는 검색

그래프 기반 검색 증강 생성(GraphRAG)는 정말 혁신적이에요. 여전히 벡터 검색, 즉 임베딩을 사용해서 관련 문서나 Node의 범위를 좁히는 것부터 시작하죠. 하지만 마법은 바로 이 다음 단계에 있어요. 여기서 끝나지 않거든요!

관련 컨텍스트가 발견되면 GraphRAG는 LLM을 사용해서 사용자의 온톨로지를 기반으로 Cypher 쿼리(Neo4j의 경우)를 생성해요. Knowledge Graph를 활용하는 거죠. 이걸 통해 다음이 가능해져요.

  • 다중 홉 관계 탐색
  • 구조화된 맥락으로 응답 강화
  • 그래프에 대한 정확한 Query 실행
  • 다음과 같은 답변을 생성합니다. 접지된(grounded), 설명할 수 있는(explainable), 그리고 연결된(connected)

🧠 VectorRAG와 GraphRAG: 실제 차이점은 무엇인가요?

🛠️ GraphRAG에 생명을 불어넣기: 영화 챗봇 에디션

최근에 기존의 Neo4j 및 Vertex AI 영화 챗봇을 GraphRAG를 통합하도록 다시 만들었어요. 이제 아키텍처는 다음과 같아요.

  1. 영화, 배우, 장르, 감독 등으로 Knowledge Graph를 구축해요.
  2. Vertex AI의 text-embedding-004를 사용해서 영화 개요에 대한 Embedding을 생성해요.
  3. Semantic Search를 통해 의미상 유사한 영화를 찾아요.
  4. Gemini(Vertex AI를 통해)를 사용해서 다음을 수행해요:
    – 사용자 Query 해석
    – Cypher Query 생성
    – Neo4j에서 실행
    – 결과를 대화형으로 요약
  5. 서버리스 및 확장 가능한 환경에 챗봇을 배포하세요.

이제 사용자가 이렇게 질문한다고 가정해 볼게요:

“인터스텔라를 재밌게 봤는데, 비슷한 영화 추천해 줄 수 있어?”
시스템은 영화 줄거리를 이해하고, Vector Embedding을 활용해 유사한 영화를 찾을 거예요. 감독, 장르, 시대 같은 정보도 파악해서 맥락에 맞는 개인화된 추천을 해줄 수 있죠. 정말 똑똑하지 않나요?

🌐 클라우드 배포 (보너스!)

만약 챗봇을 로컬 환경에서 전 세계 사용자들이 쓸 수 있게 하고 싶다면, 전체 앱을 배포할 수 있어요. **Python**, **Gradio**, 그리고 **Docker**를 사용해서 Google Cloud의 완전 관리형 서버리스 플랫폼인 Google Cloud Run에 배포하는 거죠.

✅ 서버 관리 필요 없음
✅ GPU도 필요 없어요
✅ 안전하고 확장 가능하며 전 세계 어디서든 실행되는 Semantic Search 기반 인텔리전스

🚀 단계별 배포

1. 환경 변수 설정

export GCP_PROJECT='your-project-id'       # Change this
export GCP_REGION='us-central1'            # Or your preferred region
export AR_REPO='movies-reco'               # Artifact Registry repo name
export SERVICE_NAME='movies-reco'          # Cloud Run service name

2. Docker 이미지 생성 및 푸시

# Create Artifact Registry repo (if not already created)
gcloud artifacts repositories create "$AR_REPO" \
  --location="$GCP_REGION" \
  --repository-format=Docker

# Authenticate Docker to use Google Artifact Registry
gcloud auth configure-docker "$GCP_REGION-docker.pkg.dev"

# Build and submit your container image
gcloud builds submit \
  --tag "$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME"

3. 환경 구성 준비

프로젝트 루트에 `.env.yaml` 파일을 만들어서 환경 설정을 준비해 주세요.

NEO4J_URI: "bolt+s://<your-neo4j-uri>"
NEO4J_USER: "neo4j"
NEO4J_PASSWORD: "<your-password>"
PROJECT_ID: "<your-gcp-project-id>"
LOCATION: "<your-gcp-region>"

이 파일은 런타임 시 필요한 변수들을 Google Cloud Run 서비스에 안전하게 전달하는 역할을 해요.

4. Google Cloud Run에 배포

gcloud run deploy "$SERVICE_NAME" \
  --port=8080 \
  --image="$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME" \
  --allow-unauthenticated \
  --region=$GCP_REGION \
  --platform=managed \
  --project=$GCP_PROJECT \
  --env-vars-file=.env.yaml

🎯 바로 그거예요!

이제 이런 형태의 실제 URL을 받게 될 거예요: .

이 링크를 클릭하면 LLM 기반의 GraphRAG를 활용한 영화 추천 챗봇을 만날 수 있어요. 클라우드 환경에서 서버 없이 돌아간다니, 정말 멋지지 않나요?

🚀 직접 해보고 싶으신가요?

업데이트된 실습 자료를 통해 전체 과정을 따라해 볼 수 있어요. GraphRAG 기반 코드랩을 참고하면 돼요. Graph Database나 GenAI 경험이 없어도 괜찮아요!

💭 최종 생각

GenAI 기술이 계속 발전하면서 점점 더 분명해지는 점이 있어요. 바로 **데이터만으로는 충분하지 않다**는 거죠. 진정한 힘은 **구조** + **의미론** + **언어**에서 나오는데, GraphRAG는 바로 이 세 가지를 모두 제공한다는 점이 매력적이에요.

영화 추천, 기업 검색, 법률 조사 도구, 지식 도우미 등 어떤 분야든 관계가 중요할 땐 **GraphRAG가 최고의 선택**이 될 수 있어요.

자, 이제 Vector Embedding을 만들고, 연결하고, 새로운 것을 만들어 보세요! Graph Database는 여러분의 놀이터가 될 거예요.


  • GraphRAG

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts