Chat With LLM — это веб-приложение, которое позволяет пользователям общаться с различными моделями больших языков (LLM) от ведущих поставщиков искусственного интеллекта. Это позволяет пользователям переключать модели во время разговора, не теряя контекст чата.
Этот проект объединяет генерацию текста на основе API с использованием различных моделей большого языка (LLM). Для организации этих взаимодействий используется платформа LangChain, обеспечивающая плавную интеграцию и динамический выбор моделей между различными поставщиками.
В настоящее время платформа поддерживает шесть различных поставщиков LLM, каждый из которых предлагает ряд моделей чата:
Это
Аутентификация : веб-приложение использует Google OAuth 2.0 для безопасной аутентификации пользователя и входа в систему.
Внутренний сервер : пользовательские сообщения обрабатываются, а ответы от LLM генерируются с использованием платформы Python FastAPI. Бэкэнд также интегрирует структуру LangChain, которая отвечает за генерацию подсказок и управление вызовами API к различным поставщикам LLM.
Потоковая передача событий : события, отправленные сервером (SSE) — это стандарт односторонней связи в реальном времени от сервера к клиенту через 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