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개 미만의 고유 값이 있는 경우 스키마에서 가능한 모든 값을 반환합니다. 그렇지 않으면 노드 및 관계 속성당 단일 예제 값만 반환합니다.그래프 쿼리하기
이제 graph cypher QA chain을 사용하여 그래프에 질문할 수 있습니다결과 수 제한
top_k 매개변수를 사용하여 Cypher QA Chain의 결과 수를 제한할 수 있습니다.
기본값은 10입니다.
중간 결과 반환
return_intermediate_steps 매개변수를 사용하여 Cypher QA Chain의 중간 단계를 반환할 수 있습니다
직접 결과 반환
return_direct 매개변수를 사용하여 Cypher QA Chain의 직접 결과를 반환할 수 있습니다
Cypher 생성 프롬프트에 예제 추가
특정 질문에 대해 LLM이 생성하기를 원하는 Cypher 문을 정의할 수 있습니다Cypher 및 답변 생성에 별도의 LLM 사용
cypher_llm 및 qa_llm 매개변수를 사용하여 다른 llm을 정의할 수 있습니다
지정된 노드 및 관계 타입 무시
include_types 또는 exclude_types를 사용하여 Cypher 문을 생성할 때 그래프 스키마의 일부를 무시할 수 있습니다.
생성된 Cypher 문 검증
validate_cypher 매개변수를 사용하여 생성된 Cypher 문의 관계 방향을 검증하고 수정할 수 있습니다
데이터베이스 결과의 컨텍스트를 tool/function 출력으로 제공
use_function_response 매개변수를 사용하여 데이터베이스 결과의 컨텍스트를 tool/function 출력으로 LLM에 전달할 수 있습니다. 이 방법은 LLM이 제공된 컨텍스트를 더 밀접하게 따르므로 답변의 정확성과 관련성을 향상시킵니다.
이 기능을 사용하려면 네이티브 function calling을 지원하는 LLM을 사용해야 합니다.
function_response_system을 제공하여 모델이 답변을 생성하는 방법을 지시하는 사용자 정의 시스템 메시지를 제공할 수 있습니다.
use_function_response를 사용할 때 qa_prompt는 효과가 없습니다
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.