llama-index-networks로 지식 네트워크 질의하기
ContributorService와 NetworkQueryEngine로 여러 RAG를 네트워크처럼 연결한다.
llama-index-networks 확장으로 외부 데이터 공급자는 자기 데이터 위에 RAG를 만들고, 이를 ContributorService로 노출해 네트워크에 참여시킬 수 있다. 소비자는 여러 서비스에 연결한 NetworkQueryEngine으로 각 RAG를 한 번에 질의한다.
예시로 Bob과 Beth는 각자 문서로 만든 QueryEngine을 ContributorService 뒤에 올리고, Alex는 ContributorClient.from_config_file로 두 서비스에 접속한 뒤 Groq LLM을 붙여 NetworkQueryEngine.from_args를 구성한다. 이후 평소의 QueryEngine처럼 query()를 호출하면, 요청이 모든 contributor로 전송되고 응답은 새 Nodes로 저장된 뒤 ResponseSynthesizer로 합쳐진다. 비동기 호출도 지원한다.
핵심은 공급자가 원시 데이터를 넘기는 대신, 이미 잘 만든 질의 계층을 그대로 배포한다는 점이다.
- 공급자 측:
ContributorService가 QueryEngine을 REST 서비스로 감싼다. - 소비자 측:
NetworkQueryEngine이 여러 contributor의 응답을 모아 통합 답변을 만든다. - 설정: 서비스/클라이언트 정보와 API 키는 dotenv 파일에 둔다.
활용 가능성으로는 RAG marketplace가 제시된다. 신문사나 출판사가 자신의 콘텐츠를 RAG 형태로 공급하고, 사용자는 더 풍부한 지식을 가진 쿼리 시스템을 조립할 수 있다. 또 프랜차이즈처럼 여러 운영 단위를 가진 조직이 중앙집중형 거대 RAG 대신, 각 지점의 RAG를 묶어 더 효율적으로 조회하는 내부 네트워크도 가능하다.
다만 데이터 공유가 전제되는 만큼 privacy와 security 준수가 중요하다고 강조한다. 실제 데모는 GitHub의 llama-index-networks 저장소 examples/demo에서 확인할 수 있다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.