이 애플리케이션은 Next.js를 프런트엔드로, FastAPI를 백엔드로 활용하고 동적 웹 상호 작용을 위해 LangChain의 강력한 기능을 활용하여 챗봇을 촉진합니다.
애플리케이션은 Python/FastAPI 서버를 /api/
경로 아래의 Next.js 앱에 통합합니다. 이는 모든 /api/:path*
요청을 /api
폴더에 있는 FastAPI 서버로 전달하는 next.config.js
재작성을 통해 달성됩니다. 로컬에서 FastAPI는 127.0.0.1:8000
에서 실행되지만 프로덕션에서는 Vercel에서 서버리스 기능으로 작동합니다.
npm install
.env
파일을 만듭니다. OPENAI_API_KEY=[your-openai-api-key]
npm run dev
백엔드 전용 테스트의 경우:
conda create --name nextjs-fastapi-your-chat python=3.10
conda activate nextjs-fastapi-your-chat
pip install -r requirements.txt
uvicorn api.index:app --reload
채팅 기록을 보존하는 옵션은 다음과 같습니다.
RAG(Retrieval Augmented Generation)는 사용자 정의 지식 기반에서 검색된 컨텍스트를 사용하여 언어 모델을 향상합니다. 이 프로세스에는 HTML 문서를 가져와서 청크로 분할하고 OpenAI와 같은 임베딩 모델을 사용하여 이러한 청크를 벡터화하는 작업이 포함됩니다. 이 벡터화된 데이터는 벡터 저장소를 형성하여 사용자 쿼리를 기반으로 하는 의미 검색을 가능하게 합니다. 검색된 관련 청크는 언어 모델의 컨텍스트로 사용되어 사용자 문의에 대한 포괄적인 응답을 형성합니다.
get_vectorstore_from_url
함수는 주어진 URL에서 텍스트를 추출하고 처리하는 반면, get_context_retriever_chain
전체 대화 기록과 관련된 컨텍스트를 검색하는 체인을 형성합니다. 이 파이프라인 접근 방식은 응답이 상황에 맞게 인식되고 정확하도록 보장합니다.