반응형

GenAI 애플리케이션을 위한 새로운 리소스! Neo4j GraphRAG 생태계 도구를 소개하게 되어 정말 기뻐요. 이러한 오픈 소스 도구를 사용하면 Knowledge Graph를 기반으로 하는 GenAI 애플리케이션을 쉽게 시작할 수 있어서 응답 품질과 설명 가능성을 개선하고 앱 개발 및 채택을 가속화하는 데 도움이 될 거예요.

GraphRAG는 Retrieval-Augmented Generation (RAG)을 Knowledge Graph와 결합해서 환각이나 도메인별 컨텍스트 부족과 같은 중요한 LLM 문제를 해결해요. Knowledge Graph는 LLM이 질문에 안정적으로 대답하고 복잡한 작업 흐름에서 신뢰할 수 있는 에이전트 역할을 하는 데 필요한 상황별 메모리를 제공하죠. 텍스트 데이터의 단편에만 액세스할 수 있는 대부분의 RAG 솔루션과는 달리, GraphRAG는 구조화된 정보와 반구조화된 정보를 검색 프로세스에 통합한답니다.

이러한 새로운 도구는 구조화되지 않은 텍스트에서 Knowledge Graph를 생성하고, 해당 그래프 또는 기존 Graph Database를 사용하여 vector 및 그래프 검색을 통해 생성 작업에 대한 관련 정보를 검색하는 데 도움을 줄 거예요.

이 도구를 사용해서 GenAI 개발을 시작하고, 자체 시스템에 통합하거나, 사용자 정의 구현을 구축하기 위한 참조 템플릿으로 사용할 수 있어요. 현재 구현에서는 Python 및 Javascript용 LangChain 통합을 사용하지만, 다른 언어 및 프레임워크를 사용하여 구축할 수도 있답니다.

이번 포스팅에서는 LLM Knowledge Graph Builder, NeoConverse 및 GenAI 프레임워크 통합에 대한 개요를 제공할게요.

구조화되지 않은 텍스트를 Knowledge Graph로 빠르게 전환

The Neo4j 지식 그래프 빌더는 마법처럼 보일 수도 있어요. 구조화되지 않은 텍스트를 로드하면 데이터 내의 숨겨진 entity와 relationship을 드러내는 구조화된 그래프를 생성할 수 있거든요. PDF, Word 문서, YouTube 스크립트, Wikipedia 페이지 및 기타 다양한 종류의 구조화되지 않은 텍스트와 함께 사용할 수 있어요.

그래프 기술을 처음 사용하신다면, Knowledge Graph Builder를 사용해서 익숙한 도메인 정보로부터 쉽게 그래프를 만들 수 있어요. 경험이 더 많은 그래프 개발자라면, 이걸 사용해서 새로운 프로젝트를 시작할 수도 있고요. 그래프 빌더를 온라인으로 사용해 보세요. 만약 Neo4j 인스턴스가 없다면, 무료로 Neo4j AuraDB 데이터베이스를 생성할 수 있답니다.

그래프 빌더는 소스 문서와 해당 청크, 그리고 임베딩을 어휘 그래프로 추출하는 것 뿐만 아니라, 엔터티와 그 관계 그래프를 추출해서 청크에 연결해 줘요.

답변 뒤에 숨겨진 비정형 컨텍스트 데이터와 구조화된 컨텍스트 데이터를 확인하기 위해 수집된 데이터를 시각화하고 질문할 수 있어요. 그리고 저희는 GraphRAG를 사용하기 때문에, 모든 Vector Embedding 검색 결과에 대해 백그라운드에서 관련 엔터티를 가져와 LLM에 제공해서 답변을 생성할 수 있는 거죠.

Graph Builder 프론트 엔드는 Neo4j 디자인 시스템을 사용하는 React 애플리케이션이에요. (바늘 스타터 키트) 그리고 최근 발표된 Neo4j 시각화 라이브러리를 사용하죠. 백엔드는 LangChain 통합을 통해 Neo4j와 상호작용하면서, Knowledge Graph 추출, Vector Search와 그래프 검색 쿼리를 결합한 GraphRAG 검색을 수행해요. Python으로 작성되었고 FastAPI를 사용하며 Google Cloud Run에서 컨테이너로 실행된답니다.

Knowledge Graph 구성을 위해 아래와 같이 자신의 코드에서 LangChain 통합을 사용할 수 있어요.

from langchain_experimental.graph_transformers import LLMGraphTransformer
from langchain_openai import ChatOpenAI
from langchain_community.graphs import Neo4jGraph

graph = Neo4jGraph()
llm = ChatOpenAI(temperature=0, model_name="gpt-4o")

kg_transformer = LLMGraphTransformer( llm=llm,
  allowed_nodes=["Person", "Country", "Company"],
  allowed_relationships=["LOCATED_IN","WORKED_AT"])

results = kg_transformer.convert_to_graph_documents(documents)
graph.add_graph_documents(results)

Knowledge Graph Builder에 대해 자세히 알아보고, 소스 코드를 찾고, 연습 동영상을 보려면 다음을 확인해 보세요. 그래프 빌더 페이지. 더 좋은 건, 직접 시도해 보는 것이죠! 자신의 파일로요. 여기에서 짧은 데모 비디오를 시청할 수도 있답니다.

자연어를 사용하여 그래프 쿼리

저희 NeoConverse 도구는 기존 Knowledge Graph의 구조를 활용해서 사용자의 질문으로부터 Cypher 그래프 `Query`를 생성하고, Neo4j 데이터베이스에 대해 실행해요. 이렇게 얻은 `Query` 결과는 텍스트 또는 차트 응답을 만드는 데 사용되죠. (NeoConverse를 직접 테스트해볼 수도 있어요!)

NeoConverse의 흐름은 다음과 같아요:

  1. 사용자는 데이터 세트를 선택하고, 응답을 텍스트로 받을지 차트로 받을지 선택해요.
  2. 사용자가 질문을 입력해요.
  3. 시스템은 데이터베이스에서 데이터베이스 `Schema`를 추출하고, 이를 사용자 질문과 결합해서 구성된 LLM에 대한 `Prompt`를 생성해요.
  4. LLM은 데이터베이스에 대해 실행할 Cypher `Query`를 생성하죠.
  5. `Query`가 검증되고 실행돼요.
  6. `Query` 결과는 사용자 질문 및 차트 라이브러리에 대한 마크다운 텍스트 또는 구성과 함께 응답을 생성하기 위한 특정 `Prompt`와 함께 LLM으로 전송돼요.

NeoConverse는 기능을 보여주기 위해 미리 구성된 여러 데이터 세트와 함께 제공돼요. 각각에 대해 데이터베이스의 `Schema`와 예제 질문을 볼 수 있죠 (세로 줄임표 클릭!). NeoConverse에서 추가 데이터 세트를 구성해서 여러분의 Neo4j 데이터베이스에 연결할 수도 있답니다.

NeoConverse에 대해 더 자세히 알아보고 추가 비디오, 블로그 게시물, GitHub 저장소 링크를 찾고 싶으시다면 네오컨버스 페이지를 방문해 보세요.

선호하는 LLM 프레임워크 사용

Neo4j는 Python, JavaScript, Java 및 .Net용 대부분의 오픈 소스 GenAI 생태계 라이브러리와 정말 원활하게 통합된다는 사실!

저희는 LangChain Python과 LangChain Javascript를 통합했어요. 이걸로 Vector 및 Graph Search, 텍스트-Cypher, 대화형 메모리, Knowledge Graph 구성, 고급 RAG 템플릿 등을 제공할 수 있게 되었답니다.

저희 LlamaIndex 통합에는 Cypher Search, Vector Search, Knowledge Graph 표현 및 구성, 텍스트-Cypher 쿼리가 포함되어 있어요. 최근에는 LlamaIndex 팀과 협력해서 Knowledge Graph 통합을 구성과 쿼리 모두에 사용하고 있답니다.

Deepset의 Haystack의 경우, Vector Search 및 Cypher 쿼리에 대한 귀중한 커뮤니티 기여를 얻었고, 앞으로 더 많은 기능을 추가할 예정이에요.

이러한 통합 페이지 중 상당수는 Edgar SEC 서류에 대한 GraphRAG 애플리케이션 데이터세트를 빌드하는 방법을 설명하는 관련 스타터 키트 구현을 가리키고 있어요.

GraphRAG 및 GenAI 개발을 위한 기술 향상

Neo4j GraphRAG 도구와 GenAI 생태계에 대해 더 자세히 알고 싶으시다면, GenAI 생태계 페이지를 한번 살펴보세요.

이 페이지에서는 임베딩 생성 및 벡터 검색과 같은 Neo4j GenAI 기능에 대한 자세한 정보는 물론, Google(Vertex AI), AWS(Bedrock) 및 Azure(OpenAI)와의 클라우드 네이티브 GenAI 통합에 대한 정보를 제공해요. 각 서비스에 대한 비디오 튜토리얼도 준비되어 있답니다.

GraphRAG 데모, NeoConverse, 그리고 Knowledge Graph Builder를 포함한 GenAI 프로젝트 예시도 찾아볼 수 있어요. 각 도구의 기능에 대해 자세히 설명해 드릴게요.

직접 실습할 수 있는 기회도 준비했어요! Deeplearning AI와 협력해서 Knowledge Graph 코스를 만들었는데요, 그래프 기반 GenAI 애플리케이션을 구축하는 과정을 차근차근 알려드릴 거예요.

GenAI 앱 개발을 심도 있게 가르치는 무료 GraphAcademy 강좌도 있답니다.

  • GraphRAG
  • RAG

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

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

반응형

+ Recent posts