36분
How: KG Service 구현 (Neo4j + Cypher)
RAG + Agent 파이프라인 통합
How: KG Service 구현 (Neo4j + Cypher)
통합 프로젝트 > RAG + Agent 파이프라인 통합
학습 목표
- Neo4j 연결 및 Cypher 쿼리 서비스를 구현할 수 있다
- 설비 관계 탐색, 영향도 분석 기능을 만들 수 있다
- Neo4j 연결 실패 시 폴백을 구현할 수 있다
KG Service 구현
구현 범위
- Neo4j 드라이버 연결/해제
- Cypher 쿼리 실행
- 설비 관계 탐색 (find_related)
- 영향도 분석 (get_impact)
- 연결 실패 시 폴백
Cypher 에서 변수 이름으로 쓰면 안 되는 것
경로 매칭의 끝 노드를 (end) 라고 이름 붙이고 싶어지는데, END 는 Cypher 예약어다
(CASE ... END). 예약어를 변수로 쓰려면 백틱으로 감싸야 하고, 감싸지 않으면 구문 오류가
난다. 이름을 (other) 로 바꾸면 감쌀 일도 없다. 같은 이유로 start 대신 쓰는 이름도
확인해 두는 편이 좋다.
에디터 로딩 중...
힌트 보기
- • Neo4j 연결이 실패해도 RAG만으로 동작해야 한다
- • END는 Cypher 예약어라 끝 노드 변수를 (end)로 쓰면 구문 오류가 난다 — (other)로 쓴다
- • OPTIONAL MATCH는 결과가 없어도 에러가 나지 않는다
- • find_related_as_text는 Agent가 이해할 수 있는 텍스트 형태로 반환
- • _serialize는 Neo4j 전용 타입을 Python dict로 변환
정답 보기
에디터 로딩 중...
AI로 학습하기 — 꿀팁
Neo4j Cypher 서비스 쿼리 안전성 점검AI 학습 팁
AI에게 Cypher 쿼리 서비스에서 SQL injection 유사 취약점, 가변 길이 경로의 성능 위험, 연결 실패 처리를 점검하게 하세요.
이 Neo4j Cypher 쿼리 서비스 코드에서 사용자 입력이 Cypher 쿼리에 직접 삽입되는 취약점, MATCH (a)-[*]->(b) 같은 무제한 경로 탐색 성능 위험, 연결 끊김 시 재연결 로직 누락을 분석하고 파라미터화 쿼리와 깊이 제한 적용 방법을 제안해줘.
이 팁이 도움이 됐나요?
실습 — 직접 해보기
LLM Graph Builder
텍스트에서 그래프를 뽑아 묻는 흐름을 끝까지 따라가 볼 수 있습니다. 다만 기본값인 Mock 모드가 만드는 관계는 전부 `RELATED_TO` 하나입니다 — 한 문장에 함께 나온 것을 이었을 뿐이라 관계의 뜻이 없습니다. 지금 짜는 KG Service 가 관계 타입을 왜 갈라야 하는지 거꾸로 확인하는 자리로 쓰세요.