Azure-Samples/serverless-chat-langchainjs

Build your own serverless AI Chat with Retrieval-Augmented-Generation using LangChain.js, TypeScript and Azure

What it solves

이 프로젝트는 특정 기업 문서를 기반으로 질문에 답변할 수 있는 서버리스 AI 챗봇을 구축하기 위한 레퍼런스 구현을 제공합니다. JavaScript/TypeScript를 사용한 Retrieval‑Augmented Generation(RAG) 구현 과정을 단순화하여, 개발자가 서버를 관리하지 않고도 확장 가능하고 비용 효율적인 채팅 경험을 만들 수 있도록 합니다.

How it works

애플리케이션은 여러 통합 컴포넌트로 구성된 서버리스 아키텍처를 사용합니다:

  • Frontend: Lit으로 만든 채팅 웹 컴포넌트이며 Azure Static Web Apps에 호스팅됩니다.
  • Backend API: Azure Functions와 LangChain.js로 만든 서버리스 API로, 문서 수집 및 쿼리 생성을 처리합니다.
  • Vector Database: 추출된 텍스트와 생성된 벡터를 효율적으로 검색하기 위해 Azure Cosmos DB for NoSQL에 저장합니다.
  • Storage: 원본 문서는 Azure Blob Storage에 보관됩니다.
  • Local Option: 개발 중 클라우드 비용을 절감하기 위해 LLM 및 임베딩 모델에 Ollama를 사용하여 시스템을 완전히 로컬에서 실행할 수 있습니다.

Who it’s for

JavaScript 생태계와 Azure 서버리스 인프라를 활용해 RAG 기반 AI 애플리케이션을 구축하고자 하는 개발자 또는 엔터프라이즈 급 챗봇을 만들기 위한 시작점을 찾는 분들에게 적합합니다.

Highlights

  • Serverless Deployment: Azure Functions와 Static Web Apps를 이용한 완전 서버리스 스택.
  • RAG Implementation: LangChain.js를 사용한 문서 수집 및 검색 파이프라인 통합.
  • Histry Management: 사용자별 채팅 세션 히스토리를 유지합니다.
  • Flexible Model Hosting: Azure OpenAI와 Ollama를 통한 로컬 모델을 모두 지원합니다.