R2R: 최신 오픈소스 RAG 답변 엔진 소개
목차
R2R이란?
R2R(Retrieval-to-Response)은 최신 AI 기술을 활용한 오픈소스 검색 및 답변 시스템입니다. RAG(Retrieval-Augmented Generation) 기술을 기반으로 하여, 로컬 환경에서의 실험부터 실제 프로덕션 환경에서의 사용까지 폭넓게 활용할 수 있는 종합적인 솔루션을 제공합니다.
주요 특징
- 다양한 파일 형식 지원: .txt, .pdf, .json부터 .png, .mp3 등 다양한 형식의 파일 처리
- 하이브리드 검색: 의미 기반 검색과 키워드 검색을 결합한 정확한 결과 제공
- 그래프 RAG: 자동 관계 추출 및 지식 그래프 구축
- 앱 관리: 효율적인 문서 및 사용자 관리, 상세한 모니터링과 분석 기능
- RESTful API 지원: 클라이언트-서버 모델 기본 지원
- 구성 가능성: 직관적인 설정 파일을 통한 쉬운 애플리케이션 구성
- 확장성: 빌더 및 팩토리 패턴을 사용한 쉬운 확장
- 대시보드: R2R Dashboard를 통한 사용자 친화적 인터페이스 제공
설치 방법
pip를 이용한 설치
pip install r2r
# 환경 변수 설정
export OPENAI_API_KEY=sk-...
export POSTGRES_USER=YOUR_POSTGRES_USER
export POSTGRES_PASSWORD=YOUR_POSTGRES_PASSWORD
export POSTGRES_HOST=YOUR_POSTGRES_HOST
export POSTGRES_PORT=YOUR_POSTGRES_PORT
export POSTGRES_DBNAME=YOUR_POSTGRES_DBNAME
export POSTGRES_VECS_COLLECTION=demo_vecs
Docker를 이용한 설치
pip install r2r
docker run -d \
--name r2r \
-p 8000:8000 \
-e POSTGRES_USER=$POSTGRES_USER \
-e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \
-e POSTGRES_HOST=$POSTGRES_HOST \
-e POSTGRES_PORT=$POSTGRES_PORT \
-e POSTGRES_DBNAME=$POSTGRES_DBNAME \
-e OPENAI_API_KEY=$OPENAI_API_KEY \
emrgntcmplxty/r2r:main
기본 사용 방법
R2R 서버 시작하기:
python -m r2r.examples.quickstart serve --port=8000
파일 입력하기:
python -m r2r.examples.quickstart ingest --client-server-mode
검색하기:
python -m r2r.examples.quickstart search --query="your question here" --client-server-mode
RAG 수행하기:
python -m r2r.examples.quickstart rag --query="your question here" --client-server-mode
스트리밍 RAG 응답 받기:
python -m r2r.examples.quickstart rag --query="your question here" --client-server-mode --stream
고급 사용 예시
from r2r import Document, GenerationConfig, R2R
app = R2R()
app.ingest_documents(
[
Document(
type="txt",
data="John is a person that works at Google.",
metadata={},
)
]
)
rag_results = app.rag(
"Who is john", GenerationConfig(model="gpt-3.5-turbo", temperature=0.0)
)
print(f"Search Results:\n{rag_results.search_results}")
print(f"Completion:\n{rag_results.completion}")
추가 기능 및 리소스
R2R은 다음과 같은 고급 기능들을 제공합니다:
- 여러 LLM 사용하기
- 하이브리드 검색
- 멀티모달 RAG
- 지식 그래프 생성
- 로컬 RAG 실행
이러한 기능들에 대한 자세한 가이드는 R2R 공식 문서의 쿡북 섹션에서 확인할 수 있습니다.
또한, R2R Dashboard를 사용하면 그래픽 인터페이스를 통해 R2R의 기능을 더 쉽게 사용할 수 있습니다.
커뮤니티 및 지원
- Discord: 실시간으로 개발자 및 커뮤니티 멤버들과 대화
- GitHub Issues: 버그 리포트 및 기능 요청
R2R은 오픈소스 프로젝트로, 여러분의 기여를 환영합니다. 새로운 기능을 제안하거나, 버그를 리포트하거나, 직접 코드를 개선해 프로젝트에 기여할 수 있습니다.
R2R을 통해 최신 AI 기반 검색 및 응답 시스템을 직접 구축하고 실험해보세요. AI와 검색 기술의 최신 트렌드를 반영한 R2R은 이 분야에 관심 있는 모든 분들에게 훌륭한 학습 도구가 될 것입니다.
즐거운 R2R 사용 되세요!
이 글은 R2R 레포지토리의 README.md를 참고하여 작성되었습니다.
Posted through the ECblog app (https://blog.etain.club)
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Congratulations, your post has been upvoted by @upex with a 0.22% upvote. We invite you to continue producing quality content and join our Discord community here. Keep up the good work! #upex