35

How: Text2Cypher 아키텍처와 스키마 활용

Day 1: Text2Cypher 개론

학습 목표

Text2Cypher의 기본 흐름을 이해한다 LangChain GraphCypherQAChain을 사용할 수 있다 graph.get_schema()의 내부 동작을 이해한다 커스텀 프롬프트로 Cypher 생성 정확도를 높일 수 있다 temperature와 model 선택이 결과에 미치는 영향을 안다

Text2Cypher 파이프라인

에디터 로딩 중...

핵심 컴포넌트 상세

1. Schema Injection (스키마 주입) 심층 이해

LLM이 올바른 Cypher를 생성하려면 DB 구조를 알아야 한다.

에디터 로딩 중...

graph.schema가 반환하는 정보:

에디터 로딩 중...

스키마 추출의 내부 동작

graph.schema는 내부적으로 이런 Cypher를 실행한다:

에디터 로딩 중...

스키마가 크면? 선택적 주입

노드 레이블이 50개, 관계가 100개인 대형 그래프에서는 전체 스키마를 넣으면 토큰이 너무 많아진다. 이럴 때는 선택적 스키마 주입이 필요하다.

에디터 로딩 중...

2. LLM 설정: model과 temperature 선택

에디터 로딩 중...

temperature가 Cypher 생성에 미치는 영향

temperature효과Text2Cypher 적합도
0항상 같은 결과 (결정론적)최적
0.1~0.3약간의 변형허용 범위
0.5~0.7다양한 표현위험
1.0매우 다양 (창의적)절대 금지

왜 temperature=0이 필수인가?

에디터 로딩 중...
  • 캐싱 불가: 같은 질문에 다른 Cypher → 캐시 히트율 0%
  • 디버깅 어려움: 어떤 때는 되고 어떤 때는 안 되는 현상
  • 보안 위험: 예상치 못한 쿼리 패턴 생성 가능

model 선택 가이드

모델속도정확도비용추천 용도
gpt-4o보통최고높음복잡한 쿼리, 프로덕션
gpt-4o-mini빠름높음낮음단순~중간 쿼리, 개발
gpt-3.5-turbo매우 빠름중간매우 낮음프로토타입 (비추천)
claude-3.5-sonnet보통최고높음복잡한 쿼리, 프로덕션
에디터 로딩 중...

3. GraphCypherQAChain (LangChain 통합)

에디터 로딩 중...

커스텀 프롬프트로 정확도 높이기

기본 프롬프트 대신 도메인 맞춤 프롬프트를 사용하면 정확도가 크게 향상된다:

에디터 로딩 중...

한 눈에 보는 코드 흐름

에디터 로딩 중...

6줄로 커스텀 프롬프트 기반 자연어 질의 시스템 완성!