Work 7

GraphDB를 활용한 자연어질의 처리 with LLM

계속 graphRAG, graphDB, 일반 RAG랑 헷갈림... GraphRag란 GraphDB를 기반으로 RAG을 구현하는 것. 단순히 벡터 데이터베이스 기반의 retrieval 방식의 유사도 검색이 아닌, knowledge graph를 구축해 검색 대상들 (엔티티)간의 관계를 파악해 더 세분화된 지식 검색을 하는 것 wikidocs에 제시된 내용을 기반으로 구현 방법을 정리해보고, 포스트 마지막에 실제 구현한 내용을 정리해보고자 한다. ✏️ Part 2. 생성(Generation)을 위한 LLM 모델📌 프롬프트 구성하기 🔻 PromptTemplate기본적인 템플릿 구성으로, Langflow에서처럼 {} 중괄호를 이용해 입력받아야 할 파라미터를 정의내릴 수 있다.from neo4j_graphra..

Work/GraphDB 2025.05.19

[Neo4j Sandbox Data 활용 4] ICIJ OffShoreleaks

📌 ICIJ Data : 정치인, 범죄자, 그리고 그들의 자금을 숨기는 불법 산업을 연결하는 데이터 아래는 Neo4j Sandbox에 적혀있는 해당 데이터에 관한 설명이다 : Neo4j에서 작업 중인 ICIJ 오프쇼어 유출(Offshore Leaks) 데이터베이스는 Pandora Papers, Paradise Papers, Panama Papers 및 기타 오프쇼어 유출 조사에 포함된 80만 개 이상의 역외 법인 정보를 담고 있는 자료이다. 이 데이터는 오랜 기간에 걸친 활동을 다루고 있으며, 200개 이상의 국가와 지역에 있는 개인 및 기업들과의 연관성을 보여준다. 이 데이터베이스의 진정한 가치는 조세피난처에 설립된 회사 및 신탁을 둘러싼 비밀을 걷어내고, 그 뒤에 숨겨진 실제 인물을 드러낸다는 점에..

Work/GraphDB 2025.05.19

[Neo4j Sandbox Data 활용 3] OpenStreetMap 데이터 활용하기

📌 전체 데이터 확인하기 sandbox 예제에서는 위에서 두 개의 label만 가지고 설명을 하고 있다 :▪️OSMNode ▫️ 교차점(junction) 노드라고 생각하기 ▫️ 특정 지점들 사이의 경로들을 연결하는 역할을 함▪️PointOfInterest:OSMNode ▫️ 위의 OSMNode 특성을 포함하면서 관심 지점(Point of Interest, POI) - ex. 동상, 식당, 테니스장 등의 종류와 이름 정보를 포함함 Sandbox 예제에서는 오직 ROUTE 관계 타입만 사용해서 설명을 하고 있다.Sandbox의 설명을 모두 따른 후에 다른 관계들을 살펴보도록 하겠다. 🧩 노드 라벨 (Node Labels)라벨명설명OSMOSM 메타 정보 노드 (예: 전체 bbox, ..

Work/GraphDB 2025.05.07

[Neo4j Sandbox Data 활용 2] Graph Data Science 데이터 활용하기

📌 전체 데이터 파악CALL db.schema.visualization 이 샘플 데이터는 airplane routes에 관한 데이터로5개의 노드 레이블 (Airport, City, Country, Continent, Region)이 있고 5개의 관계 타입 (:HAS_ROUTE, :IN_CITY, :IN_COUNTRY, :IN_REGION, :ON_CONTINENT)이 있다. 이 데이터를 활용해서 만들 수 있는 시스템으로는 ▪️ 항공 노선 추천 시스템▪️ 최단 경로/최소 경유 비행기 경로 탐색기▪️ 대륙/국가 기반 항공 네트워크 분석▪️ 탐색형 지도 서비스▪️ 항공권 가격 예측 (비행 시간, 거리, 가격 데이터를 추가로 넣어야 함) 가 있을 것 같다. ▶ 최단 경로/최소 경유 비행기 경로 탐색기는..

Work/GraphDB 2025.04.29

[Neo4j Sandbox Data 활용 1] Movie 데이터로 영화추천시스템 만들기

데이터 파악하기 전체 데이터 파악CALL db.schema.visualization 레이블 파악MATCH (n)RETURN DISTINCT labels(n) AS labels, count(*) AS count 관계 파악person끼리 서로 팔로우 하고 있는 관계 : FOLLOWSPERSON과 MOVIE 객체(노드)와의 관계acted_in : 배우reviewed : 평가 (관객)produced : 제작자/스탭진wrote : 작가directed : 감독MATCH (p:Person)-[r:REVIEWED]->(m:Movie)RETURN p, r, m 속성 파악 elementId, id는 다 공통적으로 있는 속성노드moviereleased, tagline, titlepersonname관계follow..

Work/GraphDB 2025.04.28

[Youtube] Screencast: Graph Visualization With Neo4j Using Neovis.js

AgendaNeo4j SandboxRun some graph algorithmsUsing neo4j-graph-algorithmsVisualize the resultsUsing neovis.jsEmbed visualization in a web pageGoals그래프 탐색데이터 요약분석 결과 표시인터랙티브한 방식정적인 방식(웹) 애플리케이션 내에 포함독립형 애플리케이션Graph Visualization + Graph Algorithms 시각화에는 세가지 스타일 요소들이 있다Node Size → Centralitydegree, PageRank, betweennessColor → Communitylabel propagation, union find, LouvainRelationship Thickness →..

Work/GraphDB 2025.04.28

Neo4j Cypher 구문 기본 - [Youtube] Neo4j (Graph Database) Crash Course

cypher 구문 기본을 익히기 위해 유튜브 영상을 보고 정리해보았다. Fetching NodesMATCH(n) RETURN nMATCH(n: 특정 레이블) RETURN n⇒ 특정 레이블을 가진 노드를 가져올 수 있음ex. MATCH (player : PLAYER) RETURN player별칭 활용MATCH(player : PLAYER) RETURN player.name AS 별칭1, player.height AS 별칭2이런 식으로 속성을 특정해서 받아올 수도 있다 Filtering nodes특정 하나의 노드를 가져오는 방법 → 속성을 활용한다MATCH (player: PLAYER) WHERE player.name = “LeBron James” RETURN playerMATCH (player:PLAY..

Work/GraphDB 2025.04.24