Bharat ChatAI es una aplicación de chatbot impulsada por IA que integra varios modelos de IA y funcionalidades de procesamiento de documentos. Esta aplicación permite a los usuarios chatear con la IA utilizando diferentes modelos, cargar y procesar documentos y recuperar información de las URL.
Clonar el repositorio:
git clone https://github.com/itsmohitkumar/bharat-chatbot-groq.git
cd bharat-chatbot-groq
Crea un entorno virtual y actívalo:
python -m venv env
source env/bin/activate # On Windows, use `envScriptsactivate`
Instale los paquetes necesarios:
pip install -r requirements.txt
Cree un archivo .env
en el directorio raíz del proyecto y agregue su clave API:
GROQ_API_KEY=your_api_key_here
Ejecute la aplicación Streamlit:
streamlit run app.py
Para contener la aplicación Bharat ChatAI usando Docker, siga estos pasos:
Cree un Dockerfile: en el directorio raíz de su proyecto, cree un Dockerfile
con el siguiente contenido:
# 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" ]
Cree la imagen de Docker: ejecute el siguiente comando en la terminal para crear su imagen de Docker:
docker build -t bharat-chatai .
Ejecute el contenedor Docker: una vez creada la imagen, puede ejecutar la aplicación en un contenedor con:
docker run -p 8501:8501 bharat-chatai
Se podrá acceder a la aplicación en http://localhost:8501
.
Para implementar la aplicación Bharat ChatAI en AWS EC2, siga estos pasos:
Inicie una instancia EC2:
t2.micro
(elegible para el nivel gratuito).Conéctese a la instancia EC2:
ssh -i " your-key.pem " [email protected]
Instale Docker en la instancia EC2:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Clona el repositorio de Bharat ChatAI:
git clone https://github.com/itsmohitkumar/bharat-chatbot-groq.git
cd bharat-chatbot-groq
Construya y ejecute el contenedor Docker:
sudo docker build -t bharat-chatai .
sudo docker run -p 80:8501 bharat-chatai
Accede a la aplicación:
http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com
). La estructura de archivos del proyecto es la siguiente:
bharat-chatai/
├── src/
│ ├── __init__.py
│ ├── logger.py
│ ├── prompt.py
│ ├── bharatchat/
│ │ ├── __init__.py
│ │ └── chatbot.py
├── setup.py
├── app.py
src/__init__.py
: archivo de inicialización para el paquete src
.src/logger.py
: Módulo para configuración de registro.src/prompt.py
: Módulo para definir plantillas de mensajes.src/bharatchat/__init__.py
: Archivo de inicialización para el paquete bharatchat
.src/bharatchat/chatbot.py
: Módulo principal para la lógica del chatbot.setup.py
: script de configuración para el paquete.app.py
: archivo de aplicación principal para ejecutar la interfaz Streamlit. La clase Config
maneja la configuración de la aplicación, incluida la recuperación de la clave API y la obtención de opciones de modelo disponibles desde la API de Groq.
La clase DocumentProcessor
procesa documentos a partir de archivos o URL cargados, los divide en fragmentos y los almacena en un almacén de vectores FAISS. También genera resúmenes de los documentos procesados.
La clase ChatHandler
maneja consultas de chat, muestra el historial de chat y recupera respuestas utilizando los vectores del documento.
La clase ToolsAndAgentsInitializer
inicializa las herramientas y los agentes para la interfaz de chat, incluida la configuración del modelo y la creación de cadenas combinadas para el procesamiento de documentos y consultas.
La clase BharatChatAI
inicializa la aplicación, incluidas las incrustaciones, el procesamiento de documentos y el manejo del chat. También ejecuta la interfaz de la aplicación Streamlit.
La clase StreamlitInterface
representa la interfaz de la aplicación Streamlit, incluida la inicialización de la barra lateral y el manejo de las selecciones del usuario.
Este proyecto está bajo la licencia MIT. Consulte el archivo de LICENCIA para obtener más detalles.
Para cualquier pregunta o soporte, por favor contacte:
Autor: Mohit Kumar
Correo electrónico: [email protected]