비정형 데이터는 늘 우리 주변에 많습니다. PDF 문서, 긴 영상 스크립트, 웹 페이지 같은 자료들입니다. 이런 비정형 자료들은 귀한 정보를 품고 있지만 기계가 바로 이해하고 질의하기는 쉽지 않습니다. LLM Graph Builder가 이 문제를 어떻게 해결하는지 살펴봅니다.

LLM Graph Builder, 비정형 데이터의 길을 닦습니다

LLM Graph Builder 는 비정형 데이터를 Neo4j 지식 그래프로 바꾸는 오픈소스 도구입니다. LLM 이 텍스트 속에서 개체와 관계를 뽑아내고 이 정보를 Neo4j에 저장합니다. 처리 과정은 크게 네 단계로 진행됩니다. 먼저 PDF, 문서, 영상, 웹 같은 다양한 비정형 데이터를 입력으로 받습니다. LLM이 텍스트를 분석해 노드와 관계를 추출합니다. 추출된 정보는 Neo4j 지식 그래프 형태로 저장됩니다. 마지막으로 사용자는 이 그래프에 대화형 질의를 합니다. 답변에는 원본 소스 메타데이터가 함께 제공됩니다.

스키마 제어 기능도 눈에 띕니다. 사용자 정의 스키마로 어떤 노드와 관계를 만들지 세밀하게 조절합니다. 생성된 그래프는 Neo4j Bloom 에서 시각화하며 탐색합니다.

LLM Graph Builder의 핵심 기능과 질의 모드

LLM Graph Builder는 지식 그래프 생성부터 질의까지 한 번에 처리합니다. LLM이 노드, 관계, 속성을 추출해 구조화된 그래프를 만듭니다. 다양한 LLM 제공자를 지원하며 OpenAI, Gemini, Azure OpenAI, Anthropic 등 널리 쓰이는 모델들을 연결합니다. 임베딩 모델도 OpenAI, Gemini, Amazon Titan, Sentence Transformers 중에서 고릅니다. 기본값은 Sentence Transformer 모델입니다.

다양한 질의 모드를 제공합니다. VITE_CHAT_MODES 변수로 활성화할 모드를 지정합니다. 벡터 검색(vector), 그래프 검색(graph), 둘을 함께 쓰는 graph_vector 모드가 있습니다. fulltext 검색이나 entity_vector 같은 복합 모드도 제공합니다. 벡터 검색은 임베딩 유사도로 관련 청크를 찾습니다. 그래프 검색은 노드와 관계를 따라 답을 구성합니다. 두 방식을 결합하면 의미적 유사성과 명시적 관계를 함께 활용해 더 풍부한 맥락을 끌어올립니다.

로컬 환경에서 LLM Graph Builder 시작하기

LLM Graph Builder를 직접 실행하려면 Python 3.12 이상과 APOC 가 설치된 Neo4j 5.23 이상 데이터베이스가 필요합니다. 특히 Neo4j는 Cypher 의 변수 스코프 서브쿼리 문법(CALL (variable) { ... })을 사용하기 때문에 5.20 같은 이전 버전에서는 동작하지 않습니다. 백엔드는 backend 폴더의 example.env를 복사해 .env 파일을 만들고 Neo4j 접속 정보를 채운 뒤 실행합니다. 프런트엔드는 frontend 폴더에서 yarn으로 의존성을 설치하고 yarn run dev로 개발 서버를 띄웁니다. 로컬 Docker Compose 로도 쉽게 실행합니다. Ollama 를 띄워 로컬 LLM으로 그래프를 만드는 구성도 지원합니다. 설치 후에는 Neo4j에 연결하고 비정형 소스를 선택해 그래프를 생성합니다. 처리된 소스에 챗봇으로 질문하며 지식 그래프를 탐색합니다. 이 도구는 Apache License 2.0 으로 공개되어 자유롭게 활용합니다.

LLM Graph Builder는 비정형 데이터의 잠재력을 끌어내는 훌륭한 시도입니다. 복잡한 정보를 구조화하고 대화하듯 탐색하는 경험은 분명 흥미롭습니다.

요약

  • 비정형 데이터를 LLM으로 Neo4j 지식 그래프로 자동 변환하는 오픈소스 도구의 등장
  • 다양한 LLM 및 임베딩 모델 지원, 벡터/그래프/하이브리드 질의 모드로 유연한 정보 탐색
  • 로컬 환경에서 클라우드 배포까지 폭넓은 설치 옵션을 제공하여 접근성 높음