Upstash Vector를 사용하여 수백만 개의 Wikipedia 기사 색인화
이 저장소에는 블로그 게시물에 설명된 대로 Upstash Vector를 사용하여 수백만 개의 Wikipedia 기사를 색인화하는 프로젝트에 대한 코드와 문서가 포함되어 있습니다.
프로젝트 개요
Upstash Vector 및 RAG Chat SDK의 기능을 보여주기 위해 Wikipedia 데이터를 사용하여 시맨틱 검색 엔진과 Upstash RAG Chat SDK를 만들었습니다. 프로젝트에는 다음이 포함됩니다.
- Wikipedia 기사 준비 및 삽입
- Upstash Vector를 사용하여 벡터 인덱싱
- Wikipedia 의미 체계 검색 엔진 구축
- RAG 챗봇 구현
주요 특징
- 11개 언어로 된 Wikipedia 기사에서 1억 4,400만 개가 넘는 벡터를 색인화했습니다.
- 다국어 지원을 위해 BGE-M3 임베딩 모델 사용
- 교차 언어 기능을 갖춘 의미 검색 구현
- Upstash RAG Chat SDK를 사용하여 RAG 챗봇 생성
사용된 기술
- Upstash Vector: 벡터 임베딩을 저장하고 쿼리하는 데 사용됩니다.
- Upstash Redis: 채팅 세션 저장용
- Upstash RAG Chat SDK: RAG Chat 애플리케이션 구축용
- SentenceTransformers: 임베딩 생성용
- Meta-Llama-3-8B-Instruct: QStash LLM API를 통한 LLM 공급자
개발
프로젝트를 로컬에서 실행하려면 다음 단계를 따르세요.
- 데이터베이스를 관리하려면 Upstash 콘솔로 이동하세요.
- 임베딩 모델 지원을 통해 새로운 벡터 데이터베이스를 생성합니다. 다국어 지원을 위해 BGE-M3 모델을 선택할 수 있습니다.
- 채팅 세션을 저장하기 위한 새 Redis 데이터베이스를 만듭니다.
- Redis와 Vector 모두에 대한 자격 증명을 복사합니다. 또한 upstash 호스팅 LLM 모델을 사용하기 위한 QStash 자격 증명을 복사합니다.
프로젝트 루트의 .env
파일에 자격 증명을 입력합니다. .env
파일은 다음과 같아야 합니다.
UPSTASH_VECTOR_REST_URL=
UPSTASH_VECTOR_REST_TOKEN=
UPSTASH_REDIS_REST_TOKEN=
UPSTASH_REDIS_REST_URL=
QSTASH_TOKEN=
- 벡터 인덱스를 채웁니다.
이 프로젝트는 네임스페이스를 사용하여 기사를 다양한 언어로 저장합니다. 따라서 올바른 네임스페이스의 벡터를 upsert해야 합니다. 영어의 경우 벡터를 en
네임스페이스에 삽입하세요.
- 종속성을 설치합니다.
- 개발 서버를 실행합니다.
기여
우리는 이 프로젝트를 개선하기 위한 기여를 환영합니다. 문제나 풀 요청을 자유롭게 제출해 주세요.
감사의 말
- 데이터 세트 제공을 위한 Wikipedia
- 벡터 데이터베이스 및 RAG Chat SDK를 위한 Upstash
- 이 프로젝트에 사용된 오픈 소스 라이브러리의 모든 기여자
연락하다
프로젝트 또는 Upstash Vector에 대한 질문이나 피드백이 있는 경우 (연락처 정보 추가)로 문의해 주세요.
실제 프로젝트를 보려면 라이브 데모를 확인하세요!