Chat With LLMs는 사용자가 주요 AI 제공업체의 다양한 LLM(대형 언어 모델)과 채팅할 수 있는 웹 앱입니다. 이를 통해 사용자는 채팅 컨텍스트를 잃지 않고 대화 중에 모델을 전환할 수 있습니다.
이 프로젝트는 다양한 LLM(대형 언어 모델)을 사용하여 API 기반 텍스트 생성을 통합합니다. 이러한 상호 작용을 조율하는 데 사용되는 프레임워크는 LangChain이며, 다양한 공급자 간에 원활한 통합과 동적 모델 선택이 가능합니다.
현재 이 플랫폼은 6개의 LLM 제공업체를 지원하며, 각각은 다양한 채팅 모델을 제공합니다.
그것들은
인증 : 웹 애플리케이션은 안전한 사용자 인증 및 로그인을 위해 Google OAuth 2.0을 사용합니다.
백엔드 서버 : Python의 FastAPI 프레임워크를 사용하여 사용자 메시지가 처리되고 LLM의 응답이 생성됩니다. 백엔드는 또한 다양한 LLM 공급자에 대한 API 호출을 프롬프트 생성하고 관리하는 역할을 담당하는 LangChain 프레임워크를 통합합니다.
이벤트 스트리밍 : SSE(Server-Sent Events)는 HTTP를 통해 서버에서 클라이언트로 실시간 단방향 통신을 위한 표준입니다. SSE를 사용하면 클라이언트가 반복적으로 요청할 필요 없이 서버가 생성된 데이터 토큰을 토큰별로 클라이언트에 푸시할 수 있습니다.
Firestore 데이터베이스 : 사용자 정보, 채팅 세부정보, 채팅 기록은 Google의 Firestore 데이터베이스에 저장됩니다. Firestore는 무료 등급, 고성능, 자동 확장 기능을 위해 선택되었으므로 동적으로 성장하는 애플리케이션에 이상적입니다.
ReactJS 프론트엔드 : 프론트엔드는 ReactJS로 구축되어 채팅 애플리케이션과의 원활한 상호작용을 위한 대화형 및 반응형 사용자 인터페이스를 제공합니다.
.env.example
파일의 복사본을 만들고 이름을 .env
로 바꿉니다.
cp .env.example .env # For Unix/Linux
copy .env.example .env # For Windows
텍스트 편집기에서 .env
파일을 열고 해당 값과 함께 필요한 변수를 입력하십시오. 이러한 변수는 일반적으로 API 키 및 기타 환경별 구성입니다.
docker-compose up
모든 서비스는 다음 포트에서 실행됩니다.
Backend FastAPI : localhost:8080
ReactJS Frontend : localhost:3000
pip install pipenv
pipenv install
nodemon
or
uvicorn app:app --port 5000
cd web
npm install
npm start
아래 링크를 사용하여 Swagger 문서에 액세스하세요.
http://localhost:8080/docs