Weaviate 기반 오픈 소스 검색 증강 생성(RAG) 챗봇으로, 엔드 투 엔드, 유연하고 사용자 친화적인 RAG 솔루션을 제공합니다.

BSD-3-ClausePythonVerbaweaviate 7.4k Last Updated: July 14, 2025

Verba 프로젝트 상세 소개

프로젝트 개요

Verba는 Weaviate가 개발한 오픈소스 검색 증강 생성(RAG) 애플리케이션으로, "The Golden RAGtriever"라고 불립니다. 이 애플리케이션은 로컬에서 Ollama 및 Huggingface를 사용하거나 Anthropic, Cohere, OpenAI와 같은 LLM 제공업체를 통해 사용자가 간단한 단계로 데이터셋을 탐색하고 통찰력을 추출할 수 있는 엔드투엔드 방식의 원활하고 사용자 친화적인 RAG 솔루션을 제공합니다.

핵심 기능

🤖 모델 지원

  • 로컬 모델: Ollama(예: Llama3) 및 HuggingFace 모델 지원
  • 클라우드 모델: OpenAI, Anthropic, Cohere, Groq, Novita AI, Upstage 등 주요 AI 서비스 제공업체 통합
  • 임베딩 모델: Weaviate, SentenceTransformers, VoyageAI 등 다양한 임베딩 모델 지원

📁 데이터 지원

  • 파일 유형: .txt, .md, .pdf, .csv, .docx, .pptx 등 다양한 형식 지원
  • 데이터 소스: 로컬 파일 시스템, GitHub 저장소, URL 등에서 데이터 가져오기 가능
  • 특수 기능:
    • Firecrawl을 통한 웹 크롤링
    • UpstageDocumentParse를 통한 문서 파싱
    • AssemblyAI를 통한 오디오 파일 처리

✨ RAG 기능 특성

  • 하이브리드 검색: 의미 검색과 키워드 검색 결합
  • 자동 완성 제안: 쿼리 제안 기능 제공
  • 스마트 필터링: 문서, 문서 유형 등으로 필터링 지원
  • 맞춤형 메타데이터: 메타데이터 설정 완전 제어
  • 비동기 데이터 수집: 처리 속도 향상을 위한 비동기 데이터 수집

🗡️ 문서 분할 기술

  • 토큰 분할: 토큰 기반 문서 분할
  • 문장 분할: spaCy를 사용한 문장 단위 분할
  • 단락 분할: 단락 단위 문서 분할 지원

기술 아키텍처

Verba는 RAG 프로세스를 몇 가지 독립적인 모듈식 단계로 분해하는 모듈식 아키텍처로 설계되었습니다.

  1. ReaderManager: 문자열 목록(경로, URL 또는 텍스트)을 받아 Verba 문서 목록으로 출력
  2. ChunkerManager: 문서 목록을 받아 각 문서 텍스트를 더 작은 조각으로 분할
  3. EmbeddingManager: 문서 목록을 받아 Weaviate에 임베딩

배포 방식

💻 로컬 배포

Weaviate Embedded를 사용하여 로컬에서 실행:

pip install goldenverba
verba start

🐳 Docker 배포

git clone https://github.com/weaviate/Verba
docker compose up -d --build

🌩️ 클라우드 배포

Weaviate Cloud Services (WCS) 인스턴스에 연결

⚙️ 사용자 정의 배포

자체 호스팅 Weaviate 인스턴스 연결 지원

사용 절차

1. 환경 설정

.env 파일을 생성하여 API 키 구성:

# OpenAI 설정
OPENAI_API_KEY=your_openai_key

# Anthropic 설정  
ANTHROPIC_API_KEY=your_anthropic_key

# Weaviate 클라우드 설정
WEAVIATE_URL_VERBA=your_weaviate_url
WEAVIATE_API_KEY_VERBA=your_weaviate_key

# Ollama 로컬 설정
OLLAMA_URL=http://localhost:11434

2. 데이터 가져오기

  • 웹 인터페이스에서 "Import Data" 선택
  • 파일, 디렉토리 또는 URL 추가 지원
  • 각 파일에 대한 개별 설정 가능

3. RAG 파이프라인 구성

"Config" 페이지에서 구성:

  • 임베딩 모델 선택
  • 생성 모델 선택
  • 분할 전략 설정
  • 검색 매개변수 구성

4. 대화 시작

"Chat" 페이지에서:

  • 질문을 입력하여 관련 답변 얻기
  • 의미적으로 관련된 문서 조각 확인
  • AI가 생성한 종합 답변 받기

특색 기능

📊 3D 벡터 시각화

사용자가 데이터 분포를 이해하는 데 도움이 되는 벡터 데이터의 3D 시각화 인터페이스 제공

🎨 맞춤형 프런트엔드

브랜드 맞춤화를 지원하는 완전 맞춤형 프런트엔드 인터페이스

🔄 의미론적 캐싱

Weaviate의 의미론적 캐싱 기능을 활용하여 생성된 응답과 쿼리를 임베딩하고, 반복되는 쿼리가 캐시에서 이전에 처리된 의미적으로 동일한 쿼리를 확인하여 빠르게 처리되도록 보장합니다.

🤝 RAG 라이브러리 통합

  • LangChain: LangChain RAG 파이프라인 이미 지원
  • Haystack: 지원 예정
  • LlamaIndex: 지원 예정

활용 사례

  1. 개인 지식 관리: 개인 문서 라이브러리를 위한 지능형 쿼리 시스템 구축
  2. 기업 문서 검색: 직원이 관련 기업 문서 및 정보를 신속하게 찾도록 지원
  3. 연구 보조: 연구원이 연구 자료를 분석하고 쿼리하는 데 도움
  4. 고객 서비스: 기업 지식 기반의 지능형 고객 서비스 시스템 구축
  5. 교육 훈련: 대화형 학습 자료 쿼리 시스템 생성

프로젝트 상태

이 프로젝트는 커뮤니티 주도로 Weaviate가 오픈소스 지원을 제공합니다. 팀은 문제를 신속하게 해결하기 위해 노력하지만, 유지보수 긴급성은 상용 소프트웨어만큼 높지 않을 수 있습니다. 프로젝트의 안정적인 운영을 돕기 위한 커뮤니티 기여를 환영합니다.

기술 요구 사항

  • Python 버전: >=3.10.0, <3.13.0
  • 운영 체제: Linux, macOS (Windows의 Weaviate Embedded는 현재 지원되지 않음)
  • 하드웨어: 선택한 모델 및 데이터 양에 따라 다름

오픈소스 기여

프로젝트는 다양한 형태의 기여를 환영합니다:

  • 기능 개선 및 버그 수정
  • 문서 보완
  • 새로운 기능 제안
  • 테스트 및 피드백

자세한 내용은 프로젝트의 기여 가이드기술 문서를 참조하십시오.

미래 발전

프로젝트 로드맵에 따르면, 계획된 기능은 다음과 같습니다:

  • 고급 쿼리 기능 (LLM 평가 기반 작업 위임)
  • 재정렬 기능 (컨텍스트 기반 결과 재정렬)
  • RAG 평가 인터페이스
  • 더 많은 RAG 라이브러리 통합

Verba는 RAG 기술의 모범 사례 구현을 대표하며, 사용자에게 강력하고 사용하기 쉬운 지능형 문서 쿼리 솔루션을 제공합니다.

Star History Chart