LLM Graph Builder 소개
PDF, 문서, 유튜브 영상, 웹 페이지처럼 구조가 없는 데이터는 그 안에 풍부한 정보를 담고 있어도 기계가 곧바로 질의하기 어렵습니다. 어떤 개체(entity)가 등장하고 그 개체들이 서로 어떻게 연결되는지는 사람이 읽어야 알 수 있고, 단순 키워드 검색이나 벡터 검색만으로는 문서 사이를 잇는 관계를 따라가기 어렵습니다.
LLM Graph Builder는 이런 비정형 데이터를 대형 언어 모델(LLM)로 분석해 Neo4j에 저장되는 지식 그래프(Knowledge Graph)로 변환하는 오픈소스 도구 입니다. Neo4j Labs가 만들었으며, LangChain 프레임워크를 활용해 텍스트에서 노드(node)와 관계(relationship), 그리고 각 속성을 추출합니다. 사용자는 로컬 파일이나 GCS, S3 버킷, 웹 소스에서 자료를 올리고, 원하는 LLM을 골라 그래프를 생성한 뒤, 그 그래프를 대상으로 대화하듯 질문할 수 있습니다.
백엔드는 Python과 FastAPI, 프런트엔드는 React로 구현되어 있고, 데이터는 Neo4j 그래프 데이터베이스에 저장됩니다. 무료 등급을 포함한 Neo4j Aura에서도 동작하며, 로컬 Docker Compose부터 Google Cloud Run 배포까지 여러 방식을 지원합니다. 본 게시물에서는 LLM Graph Builder의 동작 방식, 주요 기능과 질의 모드, 설치 방법을 정리합니다.
LLM Graph Builder의 동작 방식
LLM Graph Builder의 처리 흐름은 네 단계로 요약됩니다. 먼저 PDF·문서·영상·웹 같은 비정형 데이터를 입력으로 받고, LLM이 텍스트에서 개체와 관계를 추출합니다. 추출된 결과는 노드와 엣지로 구성된 Neo4j 지식 그래프에 저장되며, 마지막으로 사용자는 그 그래프를 대상으로 대화형 질의를 수행합니다. 답변에는 어떤 소스에서 나온 내용인지에 대한 메타데이터도 함께 제공됩니다.
추출 단계에서는 사용자가 직접 정의한 커스텀 스키마나 설정에 미리 구성해 둔 스키마를 적용해, 어떤 종류의 노드와 관계 라벨을 만들지 제어할 수 있습니다. 생성된 그래프는 Neo4j Bloom에서 단일 또는 여러 데이터 소스를 동시에 시각화해 볼 수 있습니다.
LLM Graph Builder의 주요 기능
LLM Graph Builder는 지식 그래프 생성부터 질의까지를 하나의 애플리케이션으로 묶어 제공합니다.
- 지식 그래프 생성 : LLM으로 비정형 데이터에서 노드, 관계, 속성을 추출해 구조화된 그래프를 만듭니다.
- 스키마 지원 : 커스텀 스키마 또는 설정에 구성된 기존 스키마를 사용해 그래프 생성 방식을 제어합니다.
- 그래프 시각화 : Neo4j Bloom에서 특정 소스 또는 여러 소스의 그래프를 동시에 확인합니다.
- 데이터와 대화 : 대화형 질의로 데이터베이스의 내용을 탐색하고, 응답의 출처 메타데이터를 함께 받습니다. 채팅 전용 인터페이스가 필요하면
/chat-only경로를 사용할 수 있습니다. - 토큰 사용량 추적 :
TRACK_USER_USAGE환경 변수를true로 설정하면 사용자·데이터베이스 연결별 LLM 토큰 사용량과 일·월 단위 한도를 모니터링할 수 있습니다.
다양한 LLM 제공자를 지원하는 점도 특징입니다. 기본 Docker Compose 구성에서는 OpenAI와 Diffbot이 활성화되어 있고, 설정을 통해 Gemini, Azure OpenAI, Anthropic, Fireworks, Groq, Amazon Bedrock, Ollama, Deepseek, 그리고 OpenAI 호환 엔드포인트를 사용하는 모델까지 연결할 수 있습니다. 임베딩 모델도 OpenAI, Gemini, Amazon Titan, Sentence Transformers 중에서 선택할 수 있으며, 별도 지정이 없으면 Sentence Transformer 모델이 기본값으로 쓰입니다.
LLM Graph Builder의 질의 모드
LLM Graph Builder의 채팅은 데이터를 어떻게 검색할지에 따라 여러 모드를 제공합니다. VITE_CHAT_MODES 변수로 활성화할 모드를 지정하며, 벡터 검색(vector), 그래프 검색(graph), 그래프와 벡터를 함께 쓰는 모드(graph_vector), 전문 검색(fulltext), 그리고 이들을 결합한 graph_vector_fulltext, entity_vector, global_vector 등이 있습니다.
벡터 검색은 임베딩 유사도로 관련 청크(chunk)를 찾고, 그래프 검색은 노드와 관계를 따라 답을 구성합니다. 두 방식을 결합하면 의미적 유사성과 명시적 관계를 함께 활용할 수 있어, 단일 방식보다 풍부한 맥락을 끌어올 수 있습니다.
LLM Graph Builder 설치 및 사용법
로컬에서 직접 실행하려면 Python 3.12 이상과 APOC가 설치된 Neo4j 5.23 이상 데이터베이스가 필요합니다. 백엔드는 Cypher의 변수 스코프 서브쿼리 문법(CALL (variable) { ... })을 사용하기 때문에 5.20 같은 이전 5.x 릴리스에서는 동작하지 않습니다.
백엔드는 backend 폴더의 example.env 를 복사해 .env 를 만들고 Neo4j 접속 정보를 채운 뒤 실행합니다.
cd backend
python3.12 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn score:app --reload
프런트엔드는 frontend 폴더에서 yarn 으로 의존성을 설치하고 yarn run dev 로 개발 서버를 띄웁니다. 로컬 기본 구성은 Docker Compose로도 실행할 수 있으며, Ollama를 띄워 로컬 LLM으로 그래프를 만드는 구성도 지원합니다. Google Cloud Platform에 배포하려면 gcloud run deploy 또는 cloudbuild.yaml 기반의 Cloud Build를 사용합니다.
설치 후에는 Neo4j 인스턴스에 연결하고, 비정형 소스를 선택해 그래프를 생성한 다음, 처리된 소스에 대해 챗봇으로 질문하는 순서로 사용합니다. 환경 변수의 전체 목록과 기본값은 저장소의 backend/example.env와 frontend/example.env에서 확인할 수 있습니다.
LLM Graph Builder의 라이선스
LLM Graph Builder는 Apache License 2.0으로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
LLM Graph Builder 데모
LLM Graph Builder 데모 영상
LLM Graph Builder 프로젝트 GitHub 저장소
더 읽어보기
-
LightRAG: 지식 그래프 기반의 이중 검색 구조로 GraphRAG보다 빠른 RAG 프레임워크 (feat. EMNLP 2025)
-
MiniKG - LLM 기반 (소규모) 지식 그래프(Knowledge Graph) 작성 및 검색, GraphRAG 시스템 구축 프로젝트
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

