Diffbot은 웹 데이터를 쉽게 구조화할 수 있는 ML 기반 제품 모음입니다. Diffbot의 Natural Language Processing API는 비구조화된 텍스트 데이터에서 엔티티, 관계 및 의미론적 의미를 추출할 수 있습니다.![]()
사용 사례
텍스트 데이터는 다양한 분석, 추천 엔진 또는 지식 관리 애플리케이션에 사용되는 풍부한 관계와 인사이트를 포함하는 경우가 많습니다.Diffbot의 NLP API를 graph database인 Neo4j와 결합하면 텍스트에서 추출한 정보를 기반으로 강력하고 동적인 graph 구조를 만들 수 있습니다. 이러한 graph 구조는 완전히 쿼리 가능하며 다양한 애플리케이션에 통합될 수 있습니다.
이 조합을 통해 다음과 같은 사용 사례가 가능합니다:
- 텍스트 문서, 웹사이트 또는 소셜 미디어 피드에서 knowledge graph(Diffbot의 Knowledge Graph와 같은)를 구축합니다.
- 데이터의 의미론적 관계를 기반으로 추천을 생성합니다.
- 엔티티 간의 관계를 이해하는 고급 검색 기능을 만듭니다.
- 사용자가 데이터의 숨겨진 관계를 탐색할 수 있는 분석 대시보드를 구축합니다.
개요
LangChain은 Graph Database와 상호작용하기 위한 도구를 제공합니다:- graph transformer 및 storage integration을 사용하여
텍스트에서 knowledge graph 구축 - query 생성 및 실행을 위한 chain을 사용하여
graph database 쿼리 - 강력하고 유연한 쿼리를 위해 agent를 사용하여
graph database와 상호작용
설정
먼저 필요한 패키지를 설치하고 환경 변수를 설정합니다:Diffbot NLP API
Diffbot의 NLP API는 비구조화된 텍스트 데이터에서 엔티티, 관계 및 의미론적 컨텍스트를 추출하는 도구입니다.
추출된 정보는 knowledge graph를 구성하는 데 사용할 수 있습니다.
API를 사용하려면 Diffbot에서 무료 API token을 받아야 합니다.
DiffbotGraphTransformer를 사용하여 엔티티와 관계를 추출합니다.
DiffbotGraphTransformer는 구조화된 데이터인 GraphDocument를 출력하며, 이는 graph database를 채우는 데 사용할 수 있습니다.
Diffbot의 API 요청당 문자 제한으로 인해 텍스트 청킹은 피합니다.
knowledge graph에 데이터 로드하기
실행 중인 Neo4j 인스턴스가 필요합니다. 한 가지 옵션은 Aura 클라우드 서비스에서 무료 Neo4j database 인스턴스를 생성하는 것입니다. Neo4j Desktop 애플리케이션을 사용하여 로컬에서 database를 실행하거나 docker container를 실행할 수도 있습니다. 다음 스크립트를 실행하여 로컬 docker container를 실행할 수 있습니다:GraphDocuments는 add_graph_documents 메서드를 사용하여 knowledge graph에 로드할 수 있습니다.
graph schema 정보 새로고침
database의 schema가 변경되면 Cypher statement를 생성하는 데 필요한 schema 정보를 새로고침할 수 있습니다.graph 쿼리하기
이제 graph cypher QA chain을 사용하여 graph에 질문할 수 있습니다. 최상의 경험을 얻으려면 Cypher query를 구성하는 데 gpt-4를 사용하는 것이 좋습니다.Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.