일반 소개
NodeRAG는 GitHub에서 호스팅되고 Terry-Xu-666이 개발한 오픈 소스 검색 증강 생성(RAG) 시스템으로, 이기종 그래프 구조를 통해 정보 검색 및 생성을 최적화하여 검색 정확도와 문맥 관련성을 크게 향상시킵니다. 이기종 그래프 구조를 통해 정보 검색 및 생성을 최적화하여 검색 정확도와 문맥 관련성을 크게 개선하며, 로컬 배포를 지원하고 학술 연구, 지식 관리 및 데이터 분석을 위한 사용자 친화적인 인터페이스와 시각화 도구를 제공합니다. 이 프로젝트의 첫 번째 안정 버전(v0.1.0)은 2025년 3월에 출시될 예정이며 PyPI를 통해 설치할 수 있습니다. 공식 문서는 철저하며 커뮤니티는 활발하고 최신 상태입니다. 기존의 RAG 시스템보다 멀티홉 추론, 검색 속도, 저장 효율성이 더 뛰어나며 특히 복잡한 데이터 세트를 처리하는 데 적합합니다.

기능 목록
- 이기종 그래프 구조: 검색 정확도를 높이기 위해 여러 노드 유형(예: 문서, 엔터티, 키워드)을 지원합니다.
- 정확한 검색: 그래프 분해, 증강, 보강 및 검색을 통해 멀티홉 추론 및 문맥 관련 쿼리가 지원됩니다.
- 데이터 시각화: 복잡한 데이터 관계를 쉽게 이해할 수 있도록 대화형 그래픽 구조 시각화를 제공합니다.
- 로컬 배포 인터페이스: 로컬 작업을 지원하고 직관적인 사용자 상호 작용 환경을 제공합니다.
- 크로스 플랫폼 설치: 여러 환경과 호환되는 Conda, Docker 및 PyPI 설치를 지원합니다.
- 증분 업데이트: 전체 그래프 데이터베이스를 다시 구축하지 않고도 그래프 구조의 동적 업데이트를 지원합니다.
- 고성능 최적화: 대규모 데이터 세트 처리를 위한 빠른 인덱싱 및 쿼리.
- 공개 문서: 쉽게 배울 수 있도록 자세한 튜토리얼, 샘플 코드 및 학술 논문을 제공합니다.
도움말 사용
설치 프로세스
NodeRAG는 다양한 설치 방법을 지원합니다. 다음은 Conda 및 PyPI를 통한 설치 단계에 대해 설명합니다. 시스템에 Python 3.10 이상이 설치되어 있는지 확인합니다.
1. 콘다를 통한 설치
- 가상 환경 만들기
터미널을 열고 다음 명령을 실행하여 Conda 환경을 만들고 활성화합니다:conda create -n NodeRAG python=3.10 conda activate NodeRAG
- 코드 베이스 복제(선택 사항)
소스 코드나 개발 버전이 필요한 경우 GitHub에서 복제할 수 있습니다:git clone https://github.com/Terry-Xu-666/NodeRAG.git cd NodeRAG
- 종속성 설치
프로젝트 디렉토리에서 다음 명령을 실행하여 종속 요소를 설치합니다:pip install -r requirements.txt
종속성은 다음과 같습니다.
networkx
(그림 작업),numpy
(숫자 계산),flask
(웹 인터페이스) 등 - NodeRAG 설치
코드베이스를 복제하지 않은 경우 PyPI에서 직접 설치할 수 있습니다:pip install NodeRAG
- 로컬 인터페이스 실행
다음 명령을 실행하여 로컬 웹 인터페이스를 시작합니다:python -m NodeRAG.app
브라우저를 열고 다음 사이트를 방문하세요.
http://localhost:5000
NodeRAG 인터페이스에 액세스할 수 있습니다.
2. UV를 사용한 빠른 설치(선택 사항)
설치 속도를 높이려면 uv
도구:
- 마운팅
uv
::pip install uv
- 활용
uv
NodeRAG를 설치합니다:uv pip install NodeRAG
3. 설치 확인
인터페이스를 실행한 후 공식적으로 제공된 예제 데이터 세트( data/sample
카탈로그 또는 온라인 문서)를 참조하여 다이어그램 시각화가 올바르게 표시되는지 확인하세요. 문제가 있는 경우 공식 FAQ를 참조하세요.
주요 기능 사용
NodeRAG의 핵심은 이기종 그래프의 구성, 검색 및 생성에 있습니다. 다음은 그 작동 과정을 자세히 설명합니다.
1. 이기종 맵 구축하기
NodeRAG는 이기종 그래프를 사용하여 데이터를 저장하며, 노드 유형에는 문서, 엔티티, 키워드 등이 포함됩니다. 사용자는 텍스트와 메타데이터(예: 제목, 작성자)가 포함된 JSON 또는 CSV 형식의 데이터를 준비해야 합니다. 단계:
- 웹 인터페이스에 로그인하고 '데이터 가져오기'를 클릭합니다.
- 데이터 파일을 선택하고 노드 유형(예: "문서")과 에지 관계(예: "문서-키워드")를 설정합니다.
- '다이어그램 만들기'를 클릭하면 시스템이 다이어그램 구조를 생성하여 로컬 데이터베이스에 저장합니다.
예: 학술 논문 데이터세트를 가져오면 시스템이 제목, 저자, 키워드를 추출하여 지식 그래프를 생성합니다.
2. 임원 정보 검색
NodeRAG의 검색은 그래프 검색 알고리즘을 기반으로 하며 멀티홉 추론을 지원합니다. 작업 단계:
- 인터페이스에 '의료 분야의 딥 러닝'과 같은 검색어를 입력합니다.
- 검색 깊이(2~3홉 권장)를 선택하고 '검색'을 클릭합니다.
- 시스템은 관련 노드, 에지 및 경로를 반환하여 컨텍스트 관계를 보여줍니다.
- 결과는 목록과 그래프 형식으로 표시되며, 사용자는 노드를 클릭하여 세부 정보를 볼 수 있습니다.
이 검색은 다중 기준 조합 또는 교차 필드 검색과 같은 복잡한 쿼리를 지원합니다.
3. 콘텐츠 생성
NodeRAG는 빅 모델과 함께 상황에 맞는 답변을 생성합니다. 운영 단계:
- 검색 결과 화면에서 '답변 생성'을 클릭합니다.
- 시스템은 빅 모델을 호출하여 검색된 노드를 기반으로 텍스트를 생성합니다.
- 사용자가 조정 가능한 매개변수(예
temperature
및max_tokens
)는 출력 스타일을 제어합니다.
예: "최근 양자 컴퓨팅의 발전"이라는 쿼리는 최근 연구 개발이 포함된 답변을 생성합니다.
4. 데이터 시각화
NodeRAG는 사용자가 데이터 관계를 시각적으로 분석할 수 있는 대화형 그래프 시각화 도구를 제공합니다. 작업 단계:
- 인터페이스에서 '그래프 시각화'를 선택합니다.
- 시스템은 그래프의 노드와 가장자리를 표시하고 확대/축소, 드래그 및 필터링을 지원합니다.
- 노드를 클릭하면 속성(예: 텍스트 콘텐츠)을 볼 수 있고 가장자리를 클릭하면 관계 유형을 볼 수 있습니다.
이 기능은 지식 그래프 및 소셜 네트워크와 같은 복잡한 데이터 집합을 탐색하는 데 적합합니다.
5. 점진적 업데이트
NodeRAG는 전체 그래프를 다시 빌드하지 않고도 그래프 구조의 동적 업데이트를 지원합니다. 작업 단계:
- 화면에서 '증분 업데이트'를 선택합니다.
- 새 데이터 파일을 업로드하면 시스템이 기존 다이어그램 구조에 자동으로 통합합니다.
- 업데이트 후 쿼리를 다시 실행하여 결과를 확인합니다.
이 기능은 뉴스 데이터베이스나 기업 문서 저장소와 같은 지속적인 업데이트 시나리오에 적합합니다.
6. 사용자 지정 구성
고급 사용자는 config.yaml
이 파일은 노드 가중치, 에지 유형, 검색 깊이와 같은 그래프 구조와 알고리즘 매개변수를 조정합니다. 수정 후 다음 명령을 실행하여 다시 로드합니다:
python -m NodeRAG.reload_config
주요 기능 작동
다음 네 단계를 통해 검색과 생성을 최적화하는 NodeRAG의 이기종 그래프 구조는 핵심적인 강점입니다:
- 그래픽 분해 복잡한 쿼리를 하위 작업으로 분할하여 다른 노드 유형에 할당합니다.
- 그래픽 향상 컨텍스트 무결성을 향상시키기 위한 노드 간의 상호 보완적인 암시적 관계.
- 차트 보강 외부 지식(예: 공개적으로 사용 가능한 데이터 세트)을 그래프에 통합합니다.
- 이미지 검색 : 효율적인 알고리즘을 사용하여 관련 노드를 빠르게 찾습니다.
운영 절차: - 인터페이스의 '고급 설정'에서 '그래프 향상' 또는 '그래프 강화'를 활성화합니다.
- 쿼리를 입력하면 시스템이 자동으로 이러한 단계를 적용하여 보다 정확한 결과를 생성합니다.
이러한 기능은 멀티홉 추론을 크게 향상시키며 복잡한 문제 분석에 적합합니다.
자주 묻는 질문
- 설치 실패 파이썬 버전(3.10 이상 필요) 및 네트워크 연결을 확인하세요. 설치 속도를 높이려면 국내 미러 소스를 사용하세요:
pip install NodeRAG -i https://pypi.tuna.tsinghua.edu.cn/simple
- 인터페이스에 액세스할 수 없습니다. : 인정
NodeRAG.app
가 실행 중이면 포트 5000이 사용 중인지 확인하세요. - 부정확한 검색 결과 입력 데이터를 최적화하거나(메타데이터가 완전한지 확인) 검색 깊이를 높입니다.
- 대규모 모델 통합 문제 : in
config.yaml
모델 API 또는 로컬 모델 경로가 올바르게 구성되었습니다.
더 많은 질문은 공식 문서에서 확인할 수 있습니다:NodeRAG_web.
보충 참고 사항
- 데이터 준비 입력 데이터는 구조화되어야 하며, 다음을 포함하는 JSON 형식을 권장합니다.
content
(텍스트) 및metadata
(메타데이터) 필드에 입력합니다. - 성능 최적화 NodeRAG는 통합 알고리즘과 인덱싱 메커니즘을 사용하며, 대규모 데이터 세트를 처리하는 경우에도 쿼리 응답 시간은 일반적으로 초 범위 내에 있습니다.
- 커뮤니티 지원 GitHub 리포지토리에서는 사용자가 이슈를 제출하거나 토론에 참여할 수 있는 이슈 페이지를 제공합니다.
애플리케이션 시나리오
- 학술 연구
연구자는 NodeRAG를 사용해 문헌 데이터를 정리하고 논문 관계 그래프를 구성할 수 있습니다. 논문 데이터 세트를 가져온 후 시스템은 키워드, 저자, 인용 관계를 추출하여 지식 그래프를 생성합니다. 사용자는 연구 주제를 쿼리하고 관련 문헌과 문맥 분석을 얻을 수 있어 문헌 검토 또는 주제 기획에 적합합니다. - 엔터프라이즈 지식 관리
기업에서는 NodeRAG를 사용하여 내부 문서를 관리하고 지식 베이스를 구축할 수 있습니다. 기술 문서와 프로젝트 보고서를 가져온 후 시스템은 문서 관계 다이어그램을 생성합니다. 직원들은 신속하게 정보를 검색하고 지식 공유의 효율성을 높일 수 있어 기술팀이나 부서 간 협업에 적합합니다. - 데이터 분석 및 시각화
데이터 분석가들은 소셜 네트워크나 고객 관계 데이터와 같은 복잡한 데이터 세트를 분석하는 데 NodeRAG를 사용할 수 있습니다. 이 시스템은 그래프를 통해 데이터 연결을 시각화하여 숨겨진 패턴을 발견하는 데 도움을 주며, 시장 분석, 위험 평가 또는 추천 시스템 개발에 적합합니다. - 실시간 정보 처리
NodeRAG의 증분 업데이트 기능은 뉴스나 소셜 미디어 콘텐츠와 같은 동적 데이터를 처리하는 데 적합합니다. 사용자는 계속해서 새로운 데이터를 가져올 수 있으며, 시스템은 검색 결과를 최신 상태로 유지하기 위해 그래프 구조를 자동으로 업데이트합니다.
QA
- NodeRAG는 어떤 데이터 형식을 지원하나요?
JSON, CSV 및 TXT 형식이 지원됩니다. JSON이 권장되며 다음을 포함해야 합니다.content
(텍스트) 및metadata
(예: 작성자, 날짜) 필드에 입력합니다. - 검색 정확도를 높이려면 어떻게 해야 하나요?
데이터에 풍부한 메타 정보가 포함되어 있는지 확인하고, 그래프 향상 또는 그래프 보강을 활성화하고, 검색 깊이를 적절히(2~3홉) 늘립니다. - NodeRAG는 실시간 업데이트를 지원하나요?
증분 업데이트를 지원하므로 사용자는 전체 그래프를 다시 작성하지 않고도 새 데이터를 업로드하여 그래프 구조를 동적으로 업데이트할 수 있습니다. - 대형 모델 지원이 필요한가요?
NodeRAG는 LLaMA, GPT 등과 같은 모델과 통합할 수 있습니다. 이를 위해서는config.yaml
에서 모델 API 또는 로컬 경로를 구성합니다. - 성능 벤치마크는 어떻게 볼 수 있나요?
공식 문서에서는 검색 품질과 속도 측면에서 NodeRAG의 이점을 입증하는 성능 비교 차트를 제공합니다. NodeRAG_web.
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 게시물
댓글 없음...