반응형

LLM Knowledge Graph Builder를 사용해서 GenAI 애플리케이션에서 Knowledge Graph를 추출하고 활용해 보세요!

The LLM Knowledge Graph Builder는 Neo4j의 GraphRAG 생태계 도구 중 하나인데요. 이걸 사용하면 구조화되지 않은 데이터를 동적인 Knowledge Graph로 변환할 수 있어요. 또, RAG(Retrieval-Augmented Generation) 챗봇과 통합해서 자연어 쿼리와 데이터에 대한 설명 가능한 통찰력을 얻을 수도 있답니다.

자, 그럼 한번 살펴볼까요?

Neo4j LLM Knowledge Graph Builder란 무엇일까요?

Neo4j LLM Knowledge Graph Builder는 정말 혁신적인 온라인 애플리케이션이에요. 코딩이나 Cypher 없이도 구조화되지 않은 텍스트를 Knowledge Graph로 변환해서 마법 같은 텍스트-그래프 경험을 선사하죠.

Machine Learning 모델(LLM: OpenAI, Gemini, Diffbot)을 사용해서 PDF, 웹 페이지, YouTube 비디오를 엔터티와 그 관계에 대한 Knowledge Graph로 변환해 준답니다.

프론트엔드는 Neo4j의 React 기반 Needle Starter Kit을 사용하고, 백엔드는 Python FastAPI 애플리케이션을 사용해요. 그리고 llm-graph-transformer 모듈은 Neo4j가 LangChain에 기여한 모듈이랍니다.

이 애플리케이션은 다음 네 가지 간단한 단계를 거쳐서 매끄러운 환경을 제공해 줘요.

  1. 데이터 수집(Data Collection) —PDF 문서, Wikipedia 페이지, YouTube 동영상 등 다양한 데이터 소스를 지원해요.
  2. 엔터티 인식(Entity Recognition) —LLM을 사용해서 구조화되지 않은 텍스트에서 엔터티와 관계를 식별하고 추출해요.
  3. 그래프 구성(Graph Construction) —Neo4j 그래프 기능을 사용해서 인식된 엔터티와 관계를 그래프 형식으로 변환하죠.
  4. 사용자 인터페이스(User Interface) —사용자가 애플리케이션과 상호 작용할 수 있는 직관적인 웹 인터페이스를 제공해서 데이터 소스 업로드, 생성된 그래프 시각화, RAG 에이전트와의 상호 작용을 쉽게 만들어 줘요. 특히 이 기능은 Knowledge Graph 자체와 대화하는 것처럼 데이터와 직관적으로 상호 작용할 수 있게 해줘서 정말 흥미롭죠! 기술적인 지식이 없어도 괜찮아요.

한번 시도해 보세요

저희는 애플리케이션을 Neo4j 호스팅 환경에서 제공하고 있어요. 신용카드나 LLM 키도 필요 없으니 부담 없이 사용해 보세요.

아니면 로컬 환경에서 실행하고 싶다면 GitHub 저장소를 방문해서 이 글에서 설명하는 단계를 따라 해 보세요.

LLM Knowledge Graph Builder를 열기 전에 새로운 Neo4j 데이터베이스를 만들어 볼게요. 무료 AuraDB 데이터베이스를 사용하면 되는데요, 다음 단계를 따라 하면 돼요.

  • 새로운 AuraDB 무료 데이터베이스 인스턴스를 생성하세요.
  • 자격 증명 파일을 다운로드하세요.
  • 인스턴스가 실행될 때까지 기다리세요.

이제 Neo4j 데이터베이스가 실행되고 자격 증명도 준비됐으니, LLM Knowledge Graph Builder를 열고 오른쪽 상단의 Neo4j에 연결을 클릭하세요.

연결 대화 상자에 다운로드한 자격 증명 파일을 끌어다 놓으세요. 모든 정보가 자동으로 채워질 거예요. 물론 직접 입력할 수도 있고요.

Knowledge Graph 만들기

프로세스는 구조화되지 않은 데이터를 수집하는 것으로 시작하는데요, 이 데이터는 LLM을 통해 전달되어 주요 엔터티와 관계를 식별하게 돼요.

PDF나 다른 파일을 왼쪽의 첫 번째 입력 영역으로 끌어다 놓을 수 있어요. 두 번째 입력 영역에는 사용하고 싶은 YouTube 동영상 링크를 복사해서 붙여넣으면 되고요, 세 번째 입력 영역에는 Wikipedia 페이지 링크를 넣을 수 있어요.

예를 들어 GraphACME라는 공급망 회사에 대한 PDF 파일 몇 개와 Forbes의 관련 기사, 그리고 YouTube 영상 (Corporate Sustainability Due Diligence Directive, CSDDD에 대한 내용), Wikipedia 페이지 (기업 지속 가능성 실사 지침, 방글라데시) 두 개를 넣어볼게요.

파일을 업로드하는 동안 애플리케이션은 업로드된 소스를 LangChain 문서 로더와 YouTube 파서를 사용해서 그래프의 문서 Node로 저장해요. 모든 파일이 업로드되면 다음과 비슷한 화면이 보일 거예요.

이제 사용할 모델을 선택하고 클릭하면 나머지는 자동으로 처리될 거예요!

파일 선택만 생성하려면 먼저 파일을 선택하고 (테이블의 첫 번째 열에 있는 확인란을 사용하여) 클릭하면 돼요.

⚠️ 사전 정의된 그래프 스키마 또는 자체 그래프 스키마를 사용하고 싶다면 오른쪽 상단에 있는 설정 아이콘을 클릭하고 드롭다운에서 사전 정의된 스키마를 선택하거나, Node Label 및 Relationship을 기록해서 자신만의 스키마를 사용하거나, 기존 Neo4j 데이터베이스에서 기존 스키마를 가져오거나, 텍스트를 복사/붙여넣고 LLM에 요청해서 이를 분석하고 제안된 스키마를 제시하도록 요청할 수 있어요.

파일을 처리하고 지식 정보를 생성하는 동안 내부적으로 어떤 일들이 일어나는지 한번 살펴볼까요?

  1. 콘텐츠는 여러 개의 덩어리(chunk)로 분할돼요.
  2. Chunk는 그래프에 저장되고 문서 Node에 연결되며, 고급 RAG 패턴을 위해 서로 연결돼요.
  3. 매우 유사한 Chunk는 SIMILAR Relationship으로 연결되어 K-Nearest Neighbors 그래프를 형성하죠.
  4. Vector Embedding은 Chunk와 벡터 Index에 계산되어 저장돼요.
  5. llm-graph-transformer 또는 diffbot-graph-transformer를 사용하면 텍스트에서 항목과 Relationship이 추출돼요.
  6. 엔터티는 그래프에 저장되고 원래 Chunk에 연결돼요.

Knowledge Graph 탐색

문서에서 추출된 정보는 엔터티가 Node가 되고 Relationship이 이러한 Node를 연결하는 Edge로 바뀌는 그래프 형식으로 구성돼요. Neo4j 사용의 장점은 이러한 복잡한 데이터 네트워크를 효율적으로 저장하고 Query하여 생성된 Knowledge Graph를 다양한 애플리케이션에 즉시 유용하게 만드는 능력에 있죠.

RAG 에이전트를 사용하여 데이터에 대해 질문하기 전에 확인란을 사용하여 하나 이상의 문서를 선택하고 클릭할 수 있어요. 그러면 선택한 문서에 대해 생성된 엔터티가 표시될 거예요. 해당 보기에 문서 및 Chunk Node를 표시할 수도 있답니다.

Open Graph in Bloom 버튼을 누르면 새로운 탭에서 Neo4j Bloom이 열릴 거예요. Bloom은 새로 생성된 Knowledge Graph를 시각화하고 탐색하는 데 도움을 준답니다. 다음 액션은 Delete File이에요. 그래프에서 선택한 문서와 청크 (그리고 옵션에서 선택했다면 엔터티)를 삭제하는 기능이죠.

당신의 Knowledge Graph와 대화하기

이제 마지막 부분! 오른쪽 패널에 표시되는 RAG 에이전트 차례에요.

검색 프로세스 - 어떻게 작동하나요?

아래 이미지는 GraphRAG 프로세스를 간단하게 보여주고 있어요.

사용자가 질문을 하면, 검색 쿼리와 함께 Neo4j 벡터 인덱스를 사용해서 질문과 가장 관련 있는 청크와 최대 2홉 깊이까지 연결된 엔티티를 찾아요. 그리고 채팅 기록을 요약해서 맥락을 풍부하게 만드는 요소로 활용하죠.

다양한 입력 및 소스(질문, 벡터 결과, 채팅 기록)는 모두 사용자 정의 프롬프트를 통해 선택된 LLM 모델로 전송돼요. 제공된 요소와 컨텍스트를 기반으로 질문에 대한 응답을 제공하고 형식을 지정하도록 요청하는 거죠. 물론 프롬프트에는 형식 지정, 출처 인용 요청, 답변을 모를 경우 추측하지 않기 등 더 많은 "마법"이 숨어있어요. 전체 프롬프트와 지침은 QA_integration.py의 FINAL_PROMPT에서 확인할 수 있어요.

이 예시에서는 전체 공급망 전략과 제품을 생산하고 문서화하는 GraphACME(유럽 기반)라는 가짜 회사에 대한 내부 문서를 로드했어요. 새로운 CSDDD, 그 영향 및 규제를 설명하는 언론 기사와 YouTube 동영상도 로드했고요. 이제 챗봇에게 내부 (가짜) 회사 지식에 대한 질문(CSDDD 법률에 대한 질문)을 할 수 있어요. 또는 GraphACME가 생산하는 제품 목록, CSDDD 규정의 영향을 받는지, 그렇다면 회사에 어떤 영향을 미칠지 묻는 등 두 가지에 대한 질문도 가능하죠.

채팅 기능

홈 화면 오른쪽에는 채팅 창에 연결된 세 개의 버튼이 있어요.

  • : 챗봇 인터페이스가 닫혀요.
  • 채팅 기록 지우기: 현재 세션의 채팅 기록이 삭제돼요.
  • 창 최대화: 전체 화면 모드에서 챗봇 인터페이스가 열려요.

RAG 에이전트의 답변에서 응답 뒤에 세 가지 기능을 찾을 수 있을 거예요.

  • : RAG 에이전트가 소스(문서), 청크, 엔티티를 어떻게 수집하고 사용했는지 보여주는 검색 정보 팝업이 열려요. 사용된 모델 및 토큰 소비에 대한 정보도 포함되어 있죠.
  • Copy: 응답 내용을 클립보드에 복사해요.
  • 텍스트 음성 변환: 응답 내용을 소리 내어 읽어줘요.

마무리

LLM 지식 그래프 빌더에 대해 더 자세히 알고 싶으시다면, GitHub 저장소에서 소스 코드와 문서를 포함한 풍부한 정보를 얻을 수 있어요. 추가적으로 선적 서류 비치에서는 시작하는 방법에 대한 자세한 지침을 제공하고, GenAI 생태계에서는 사용 가능한 더 광범위한 도구와 애플리케이션에 대한 추가 통찰력을 얻을 수 있습니다.

다음 단계 — 기여 및 확장 기능

LLM 지식 그래프 빌더에 대한 여러분의 경험은 정말 중요해요. 버그를 발견했거나, 새로운 기능에 대한 제안이 있거나, 기여하고 싶거나, 특정 개선 사항을 보고 싶다면 커뮤니티 플랫폼이 여러분의 생각을 공유하기에 딱 좋은 곳이죠. 코딩에 능숙해서 직접 기여하고 싶은 분들에게는 가 프로젝트를 발전시키는 데 도움이 되는 보람 있는 방법이 될 수 있을 거예요. 여러분의 의견과 기여는 도구를 개선하는 데 도움이 될 뿐만 아니라, 협력적이고 혁신적인 커뮤니티를 육성하는 데에도 큰 도움이 된답니다.

  • Neo4j 온라인 커뮤니티
  • Neo4j Discord 서버에 참여하세요!

자원

GenAI 애플리케이션을 위한 새로운 리소스에 대해 더 자세히 알아보고 싶으신가요? Neo4j GraphRAG 생태계 도구를 한번 살펴보세요. 이러한 오픈 소스 도구를 사용하면 Knowledge Graph를 기반으로 하는 GenAI 애플리케이션을 쉽게 시작할 수 있어서 응답 품질과 설명 가능성을 개선하고 앱 개발 및 채택을 가속화하는 데 도움이 될 거예요.

동영상

  • GitHub – neo4j-labs/llm-graph-builder: 비정형 데이터에서 Neo4j 그래프 구성
  • Neo4j LLM Knowledge Graph Builder – 구조화되지 않은 텍스트(PDF, YouTube, 웹페이지)에서 Node 및 Relationship 추출 – Neo4j Labs
  • GenAI 생태계 – Neo4j Labs
  • Needle StarterKit 2.0: 템플릿, 챗봇 등!
  • GraphRAG
  • RAG

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

반응형

+ Recent posts