Chat With LLMs é um aplicativo da web que permite aos usuários conversar com vários modelos de linguagem grandes (LLMs) dos principais provedores de IA. Ele permite que os usuários troquem de modelo no meio da conversa sem perder o contexto do bate-papo.
Este projeto integra a geração de texto orientada por API usando vários Large Language Models (LLMs). A estrutura usada para orquestrar essas interações é LangChain, permitindo integração perfeita e seleção dinâmica de modelos entre diferentes provedores.
Atualmente, a plataforma oferece suporte a seis provedores LLM distintos, cada um oferecendo uma variedade de modelos de chat:
Esses são
Autenticação : o aplicativo da web utiliza Google OAuth 2.0 para autenticação e login seguros do usuário.
Servidor back-end : as mensagens do usuário são processadas e as respostas dos LLMs são geradas usando a estrutura FastAPI do Python. O backend também integra o framework LangChain, que é responsável pela geração de prompts e gerenciamento de chamadas de API para diferentes provedores de LLM.
Streaming de eventos : eventos enviados pelo servidor (SSE) é um padrão para comunicação unidirecional em tempo real de um servidor para um cliente por HTTP. Com o SSE, o servidor pode enviar o token de dados gerado por token para o cliente sem que o cliente precise solicitá-los repetidamente.
Banco de dados Firestore : informações do usuário, detalhes de bate-papo e histórico de bate-papo são armazenados no banco de dados Firestore do Google. O Firestore foi escolhido por seu nível gratuito, alto desempenho e recursos de escalonamento automático, tornando-o ideal para aplicativos dinâmicos e em crescimento.
Frontend ReactJS : O frontend é construído com ReactJS, fornecendo uma interface de usuário interativa e responsiva para interação perfeita com o aplicativo de chat.
Faça uma cópia do arquivo .env.example
e renomeie-o para .env
:
cp .env.example .env # For Unix/Linux
copy .env.example .env # For Windows
Abra o arquivo .env
em um editor de texto e insira as variáveis necessárias com seus valores correspondentes. Essas variáveis normalmente são chaves de API e outras configurações específicas do ambiente.
docker-compose up
Todos os serviços estarão funcionando nas seguintes portas:
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
Acesse os documentos do swagger usando o link abaixo
http://localhost:8080/docs