Neo4j는 Neo4j, Inc에서 개발한 그래프 데이터베이스 관리 시스템입니다.
Neo4j가 저장하는 데이터 요소는 노드, 노드들을 연결하는 엣지, 그리고 노드와 엣지의 속성입니다. 개발자들은 이를 네이티브 그래프 스토리지 및 처리 기능을 갖춘 ACID 준수 트랜잭션 데이터베이스로 설명합니다.Neo4j는 GNU General Public License를 수정한 라이선스로 제공되는 비오픈소스 “커뮤니티 에디션”과, 온라인 백업 및 고가용성 확장 기능이 포함된 상용 라이선스 버전으로 제공됩니다. Neo는 이러한 확장 기능이 포함된Neo4j를 상용 라이선스로도 제공합니다.
이 노트북은 LLM을 사용하여 Cypher 쿼리 언어로 조회할 수 있는 그래프 데이터베이스에 자연어 인터페이스를 제공하는 방법을 보여줍니다.
Cypher는 속성 그래프에서 효율적이고 표현력 있는 데이터 쿼리를 가능하게 하는 선언적 그래프 쿼리 언어입니다.
설정하기
실행 중인Neo4j 인스턴스가 필요합니다. 한 가지 옵션은 Aura 클라우드 서비스에서 무료 Neo4j 데이터베이스 인스턴스를 생성하는 것입니다. Neo4j Desktop 애플리케이션을 사용하여 로컬에서 데이터베이스를 실행하거나, Docker 컨테이너를 실행할 수도 있습니다.
다음 스크립트를 실행하여 로컬 Docker 컨테이너를 실행할 수 있습니다:
데이터베이스에 데이터 추가하기
데이터베이스가 비어 있다고 가정하고, Cypher 쿼리 언어를 사용하여 데이터를 추가할 수 있습니다. 다음 Cypher 문은 멱등성을 가지므로, 한 번 실행하든 여러 번 실행하든 데이터베이스 정보는 동일하게 유지됩니다.그래프 스키마 정보 새로고침
데이터베이스 스키마가 변경되면, Cypher 문을 생성하는 데 필요한 스키마 정보를 새로고침할 수 있습니다.향상된 스키마 정보
향상된 스키마 버전을 선택하면 시스템이 데이터베이스 내의 예시 값을 자동으로 스캔하고 일부 분포 메트릭을 계산합니다. 예를 들어, 노드 속성이 10개 미만의 고유 값을 가지면 스키마에서 모든 가능한 값을 반환합니다. 그렇지 않으면 노드 및 관계 속성당 하나의 예시 값만 반환합니다.그래프 쿼리하기
이제 그래프 Cypher QA 체인을 사용하여 그래프에 질문할 수 있습니다.결과 수 제한하기
top_k 매개변수를 사용하여 Cypher QA 체인의 결과 수를 제한할 수 있습니다.
기본값은 10입니다.
중간 결과 반환하기
return_intermediate_steps 매개변수를 사용하여 Cypher QA 체인의 중간 단계를 반환할 수 있습니다.
직접 결과 반환하기
return_direct 매개변수를 사용하여 Cypher QA 체인에서 직접 결과를 반환할 수 있습니다.
Cypher 생성 프롬프트에 예시 추가하기
특정 질문에 대해 LLM이 생성할 Cypher 문을 정의할 수 있습니다.Cypher 생성과 답변 생성에 서로 다른 LLM 사용하기
cypher_llm과 qa_llm 매개변수를 사용하여 서로 다른 LLM을 정의할 수 있습니다.
특정 노드 및 관계 유형 무시하기
Cypher 문을 생성할 때 그래프 스키마의 일부를 무시하려면include_types 또는 exclude_types를 사용할 수 있습니다.
생성된 Cypher 문 검증하기
validate_cypher 매개변수를 사용하여 생성된 Cypher 문의 관계 방향을 검증하고 수정할 수 있습니다.
데이터베이스 결과의 컨텍스트를 도구/함수 출력으로 제공하기
use_function_response 매개변수를 사용하여 데이터베이스 결과의 컨텍스트를 LLM에 도구/함수 출력으로 전달할 수 있습니다. 이 방법은 LLM이 제공된 컨텍스트를 더 밀접하게 따르기 때문에 답변의 정확성과 관련성을 향상시킵니다.
이 기능을 사용하려면 네이티브 함수 호출을 지원하는 LLM이 필요합니다.
function_response_system을 제공하여 모델에게 답변 생성 방법을 지시하는 사용자 정의 시스템 메시지를 제공할 수 있습니다.
use_function_response를 사용할 때 qa_prompt는 효과가 없습니다
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.