35분
How: Text2Cypher 아키텍처와 스키마 활용
Day 1: Text2Cypher 개론
How: Text2Cypher 아키텍처와 스키마 활용
Text2Cypher & NL2Query > 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줄로 커스텀 프롬프트 기반 자연어 질의 시스템 완성!