Bharat ChatAI ist eine KI-gestützte Chatbot-Anwendung, die verschiedene KI-Modelle und Dokumentenverarbeitungsfunktionen integriert. Mit dieser Anwendung können Benutzer mithilfe verschiedener Modelle mit der KI chatten, Dokumente hochladen und verarbeiten sowie Informationen von URLs abrufen.
Klonen Sie das Repository:
git clone https://github.com/itsmohitkumar/bharat-chatbot-groq.git
cd bharat-chatbot-groq
Erstellen Sie eine virtuelle Umgebung und aktivieren Sie sie:
python -m venv env
source env/bin/activate # On Windows, use `envScriptsactivate`
Installieren Sie die erforderlichen Pakete:
pip install -r requirements.txt
Erstellen Sie eine .env
Datei im Projektstammverzeichnis und fügen Sie Ihren API-Schlüssel hinzu:
GROQ_API_KEY=your_api_key_here
Führen Sie die Streamlit-Anwendung aus:
streamlit run app.py
Gehen Sie folgendermaßen vor, um die Bharat ChatAI-Anwendung mithilfe von Docker zu containerisieren:
Erstellen Sie eine Docker-Datei: Erstellen Sie im Stammverzeichnis Ihres Projekts eine Dockerfile
mit folgendem Inhalt:
# 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" ]
Erstellen Sie das Docker-Image: Führen Sie den folgenden Befehl im Terminal aus, um Ihr Docker-Image zu erstellen:
docker build -t bharat-chatai .
Führen Sie den Docker-Container aus: Nachdem das Image erstellt wurde, können Sie die Anwendung in einem Container ausführen mit:
docker run -p 8501:8501 bharat-chatai
Auf die Anwendung kann unter http://localhost:8501
zugegriffen werden.
Führen Sie die folgenden Schritte aus, um die Bharat ChatAI-Anwendung auf AWS EC2 bereitzustellen:
Starten Sie eine EC2-Instanz:
t2.micro
(kostenloses Kontingent möglich).Stellen Sie eine Verbindung zur EC2-Instanz her:
ssh -i " your-key.pem " [email protected]
Installieren Sie Docker auf der EC2-Instanz:
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Klonen Sie das Bharat ChatAI-Repository:
git clone https://github.com/itsmohitkumar/bharat-chatbot-groq.git
cd bharat-chatbot-groq
Erstellen Sie den Docker-Container und führen Sie ihn aus:
sudo docker build -t bharat-chatai .
sudo docker run -p 80:8501 bharat-chatai
Greifen Sie auf die Anwendung zu:
http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com
). Die Dateistruktur des Projekts ist wie folgt:
bharat-chatai/
├── src/
│ ├── __init__.py
│ ├── logger.py
│ ├── prompt.py
│ ├── bharatchat/
│ │ ├── __init__.py
│ │ └── chatbot.py
├── setup.py
├── app.py
src/__init__.py
: Initialisierungsdatei für das src
-Paket.src/logger.py
: Modul zur Protokollierungskonfiguration.src/prompt.py
: Modul zum Definieren von Eingabeaufforderungsvorlagen.src/bharatchat/__init__.py
: Initialisierungsdatei für das bharatchat
-Paket.src/bharatchat/chatbot.py
: Hauptmodul für die Chatbot-Logik.setup.py
: Setup-Skript für das Paket.app.py
: Hauptanwendungsdatei zum Ausführen der Streamlit-Schnittstelle. Die Config
-Klasse übernimmt die Konfiguration der Anwendung, einschließlich des Abrufens des API-Schlüssels und des Abrufens verfügbarer Modelloptionen von der Groq-API.
Die DocumentProcessor
Klasse verarbeitet Dokumente aus hochgeladenen Dateien oder URLs, teilt sie in Blöcke auf und speichert sie in einem FAISS-Vektorspeicher. Außerdem werden Zusammenfassungen der verarbeiteten Dokumente erstellt.
Die ChatHandler
Klasse verarbeitet Chat-Anfragen, zeigt den Chat-Verlauf an und ruft Antworten mithilfe der Dokumentvektoren ab.
Die ToolsAndAgentsInitializer
-Klasse initialisiert die Tools und Agenten für die Chat-Schnittstelle, einschließlich der Einrichtung des Modells und der Erstellung kombinierter Ketten für die Dokumenten- und Abfrageverarbeitung.
Die BharatChatAI
Klasse initialisiert die Anwendung, einschließlich Einbettungen, Dokumentverarbeitung und Chat-Verarbeitung. Es führt auch die Streamlit-App-Schnittstelle aus.
Die StreamlitInterface
Klasse rendert die Streamlit-App-Oberfläche, einschließlich der Initialisierung der Seitenleiste und der Handhabung von Benutzerauswahlen.
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Einzelheiten finden Sie in der LICENSE-Datei.
Bei Fragen oder Unterstützung wenden Sie sich bitte an:
Autor: Mohit Kumar
E-Mail: [email protected]