Summary
Vector Retriever 기반 RAG의 한계(텍스트 유사도 의존)를 극복하고, LLM이 자동으로 Cypher 쿼리를 생성하는 Text2Cypher Retriever를 통해 더 정확한 Graph RAG를 구현하는 심화 튜토리얼. 질문의 의도를 파악한 구조화 쿼리로 환각 현상이 없는 신뢰성 높은 답변 생성.
Key Claims
- Vector Retriever의 한계: 텍스트 유사도에만 의존하므로 특정 단어가 없으면 검색 실패
- Text2Cypher의 강점: 사용자 질문 → LLM이 Cypher 쿼리 자동 생성 → DB 실행 → 구조화 결과
- 질문 의도 인식: “로맨스 영화” 검색 시 줄거리의 “romance” 단어 여부와 무관하게 장르 필터링 가능
- 환각 제거: 검색 결과 기반 답변이므로 LLM의 거짓 정보 생성 불가능
- Cypher 자동 생성의 핵심: DB 스키마 정보 + 질문-쿼리 예시 제공 → 높은 정확도 달성
Key Concepts Introduced
- Text2Cypher Retriever: LLM을 사용하여 자연어 질문을 Cypher 쿼리로 변환
- DB 스키마 정보: 노드 타입, 프로퍼티, 관계를 LLM에 제공하는 구조화 텍스트
- 예시 기반 학습: Few-shot learning으로 LLM의 쿼리 생성 정확도 향상
- Graph RAG 프로세스: Vector Retriever vs Text2Cypher의 정확도 비교
Implementation Flow
사용자 질문
↓
[Text2Cypher Retriever]
├─ DB 스키마 참조
├─ 예시 쿼리 참조
├─ LLM이 Cypher 쿼리 생성
↓
[Neo4j 실행]
↓
[구조화 결과]
↓
[Graph RAG]
├─ 검색 결과 + 질문 → 프롬프트
├─ LLM 답변 생성
↓
[최종 답변]
Key Quotes
“벡터 유사도 검색 기반의 리트리버뿐만 아니라 오늘은 사이퍼 쿼리를 자동으로 생성해 주는 텍스트 투 사이퍼 리트리버를 활용해서 래그를 구현해 볼 거”
“질문의 의도를 파악해서 그 사용자가 필요로 하는 걸 가지고 있는 데이터라면 모두 대상이 되어서 LM 참조를 할 수 있게끔 환경이 만들어지는 거”
“창조적인 답변이나 어떤 화려한 답변을 원하는 것이 아니라 실제로 정말 정확한 정보만을 전달해야 하는 상황이라면 이 그래프 디비를 활용한 그래프 래그 방식이 정말 필요하다”
Connections
Entities
Concepts
- Graph RAG — 그래프 기반 RAG (심화)
- Text2Cypher — 새로운 개념: Cypher 자동 생성
- Cypher Query Language — 쿼리 언어
- RAG — 기본 RAG 개념
- Vector Retriever — 이전 방식과의 비교
- Embedding — 벡터 기반 기초
Vector vs Text2Cypher Comparison
Vector Retriever
- 검색: 임베딩 벡터 유사도
- 의도: 암시적 (단어 유사도)
- 정확도: 중간
- 문제: 특정 단어 부재 시 검색 실패
Text2Cypher Retriever
- 검색: LLM 생성 Cypher 쿼리 실행
- 의도: 명시적 (쿼리 구조)
- 정확도: 높음
- 장점: 의도 기반 검색, 환각 없음
Real-World Examples
예제 1: 배우 검색
MATCH (actor:Actor)-[r:ACTED_IN]->(movie:Movie)
WHERE actor.name = "Tom Hanks"
RETURN movie.title→ 단순한 속성 필터링으로 정확한 결과
예제 2: 장르 필터링
MATCH (movie:Movie)-[r:BELONGS_TO]->(genre:Genre)
WHERE genre.name = "Comedy"
RETURN movie.title
LIMIT 5→ 줄거리에 “comedy” 단어가 없어도 검색 가능
예제 3: 복합 집계
MATCH (genre:Genre)<-[r1:BELONGS_TO]-(movie:Movie)<-[r2:RATED]-(user:User)
WHERE genre.name = "Romance"
RETURN movie.title, COUNT(user) AS review_count
ORDER BY review_count DESC
LIMIT 5→ 다중 홉 및 집계 쿼리 자동 생성
Technical Highlights
DB 스키마 추출 함수
- 노드의 프로퍼티 + 타입 자동 추출
- 관계의 방향성 + 프로퍼티 추출
- 딕셔너리 → 구조화 텍스트 변환
프롬프트 템플릿 (Text2Cypher)
"Neo4j 그래프 DB 스키마를 사용하여 Cypher 쿼리를 생성하세요"
[DB 스키마 정보]
[질문-쿼리 예시]
[사용자 질문]
할루시네이션 방지
- 스키마에 없는 프로퍼티/관계 사용 금지
- 결과는 순수 Cypher만 반환
Project Relevance
✅ 온톨로지 → 지식그래프 → Graph RAG 완전체:
- 온톨로지 = DB 스키마
- 지식그래프 = 인스턴스 저장
- Text2Cypher = 자동 쿼리 생성
- 답변 = 신뢰성 높은 출력
인정: YouTube 공원나연 채널 | 녹화본 요약 및 개념 추출