이 프로젝트는 사용자가 PDF 파일을 업로드하고 컨텐츠를 추출하며 업로드 된 컨텐츠에 대한 질문을 할 수있는 대화식 검색 방지 생성 (RAG) 시스템 입니다. 이 시스템은 채팅 기록을 추적하고 과거 대화를 기반으로 사용자 질문을 맥락화하여 관련 답변을 제공합니다.
이 응용 프로그램은 사용자 인터페이스 용 Sleamlit , LLM (Language Model) 용 Groq를 통합하고 Chroma를 벡터 저장소로 문서 임베드 및 검색을 처리합니다. 대화 흐름은 채팅 기록과 함께 유지되어 상태의 질문 응답을 가능하게합니다.
HuggingFaceEmbeddings 사용하여 문서 임베딩을 작성하고 관련 콘텐츠를 검색합니다. 이 프로젝트를 실행하려면 다음이 필요합니다.
저장소 복제 :
git clone https://github.com/yourusername/conversational-rag-with-pdf.git
cd conversational-rag-with-pdf가상 환경 생성 :
python3 -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`필요한 종속성 설치 :
pip install -r requirements.txt환경 변수 설정 :
루트 디렉토리에서 .env 파일을 만들고 API 키를 추가하십시오.
touch .env .env 파일 내부에 다음을 추가하십시오.
HF_TOKEN=your_huggingface_token
GROQ_API_KEY=your_groq_api_key응용 프로그램 실행 :
streamlit run utils.py앱을 시작하면 먼저 GroQ API 키를 입력해야합니다. 이것은 언어 모델링 및 질문 답변을 수행하는 데 필요합니다.
PDF 파일 선택 버튼을 클릭하여 하나 이상의 PDF 파일을 업로드하십시오. PDFS의 내용은 효율적인 검색을 위해 처리되어 청크로 분할됩니다.
PDF를 업로드 한 후 업로드 된 파일의 내용과 관련된 질문을 할 수 있습니다. 조수는 PDFS가 제공 한 맥락과 이전 채팅 기록에 따라 답변합니다.
시스템은 대화 내역을 추적합니다. 세션 기록을 볼 수 있으며 조수는이 역사를 사용하여 후속 질문에 맥락에서 답변합니다.
Gemma2-9b-It 모델을 사용하여 질문 응답 작업을 처리합니다.API 키 오류 또는 파일 업로드 문제와 같은 문제가 발생하면 다음을 확인하십시오.
pip install -r requirements.txt 통해 올바르게 설치됩니다.