Bharat ChatAI é um aplicativo de chatbot baseado em IA que integra vários modelos de IA e funcionalidades de processamento de documentos. Este aplicativo permite que os usuários conversem com a IA usando diferentes modelos, carreguem e processem documentos e recuperem informações de URLs.
Clone o repositório:
git clone https://github.com/itsmohitkumar/bharat-chatbot-groq.git
cd bharat-chatbot-groq
Crie um ambiente virtual e ative-o:
python -m venv env
source env/bin/activate # On Windows, use `envScriptsactivate`
Instale os pacotes necessários:
pip install -r requirements.txt
Crie um arquivo .env
no diretório raiz do projeto e adicione sua chave API:
GROQ_API_KEY=your_api_key_here
Execute o aplicativo Streamlit:
streamlit run app.py
Para conteinerizar o aplicativo Bharat ChatAI usando Docker, siga estas etapas:
Crie um Dockerfile: No diretório raiz do seu projeto, crie um Dockerfile
com o seguinte conteúdo:
# Use an official Python runtime as a parent image
FROM python:3.9-slim
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 8501 available to the world outside this container
EXPOSE 8501
# Define environment variable
ENV GROQ_API_KEY=your_api_key_here
# Run the application
CMD [ "streamlit" , "run" , "app.py" ]
Construa a imagem Docker: execute o seguinte comando no terminal para construir sua imagem Docker:
docker build -t bharat-chatai .
Execute o contêiner Docker: após a criação da imagem, você pode executar o aplicativo em um contêiner com:
docker run -p 8501:8501 bharat-chatai
O aplicativo estará acessível em http://localhost:8501
.
Para implantar o aplicativo Bharat ChatAI no AWS EC2, siga estas etapas:
Inicie uma instância EC2:
t2.micro
(elegível para nível gratuito).Conecte-se à instância EC2:
ssh -i " your-key.pem " [email protected]
Instale o Docker na instância EC2:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Clone o repositório Bharat ChatAI:
git clone https://github.com/itsmohitkumar/bharat-chatbot-groq.git
cd bharat-chatbot-groq
Crie e execute o contêiner Docker:
sudo docker build -t bharat-chatai .
sudo docker run -p 80:8501 bharat-chatai
Acesse o aplicativo:
http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com
). A estrutura de arquivos do projeto é a seguinte:
bharat-chatai/
├── src/
│ ├── __init__.py
│ ├── logger.py
│ ├── prompt.py
│ ├── bharatchat/
│ │ ├── __init__.py
│ │ └── chatbot.py
├── setup.py
├── app.py
src/__init__.py
: Arquivo de inicialização do pacote src
.src/logger.py
: Módulo para configuração de log.src/prompt.py
: Módulo para definir modelos de prompt.src/bharatchat/__init__.py
: Arquivo de inicialização para o pacote bharatchat
.src/bharatchat/chatbot.py
: Módulo principal para a lógica do chatbot.setup.py
: script de configuração do pacote.app.py
: arquivo principal do aplicativo para executar a interface Streamlit. A classe Config
cuida da configuração do aplicativo, incluindo a recuperação da chave de API e a busca de opções de modelo disponíveis na API Groq.
A classe DocumentProcessor
processa documentos de arquivos ou URLs carregados, divide-os em partes e os armazena em um armazenamento de vetores FAISS. Também gera resumos dos documentos processados.
A classe ChatHandler
lida com consultas de chat, exibe o histórico de chat e recupera respostas usando os vetores de documento.
A classe ToolsAndAgentsInitializer
inicializa as ferramentas e os agentes para a interface de chat, incluindo a configuração do modelo e a criação de cadeias combinadas para processamento de documentos e consultas.
A classe BharatChatAI
inicializa o aplicativo, incluindo incorporações, processamento de documentos e manipulação de chat. Ele também executa a interface do aplicativo Streamlit.
A classe StreamlitInterface
renderiza a interface do aplicativo Streamlit, incluindo a inicialização da barra lateral e o tratamento das seleções do usuário.
Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para obter detalhes.
Para qualquer dúvida ou suporte, entre em contato:
Autor: Mohit Kumar
E-mail: [email protected]