| --- |
| title: RasaBot |
| emoji: 💬 |
| colorFrom: yellow |
| colorTo: purple |
| sdk: docker |
| sdk_version: 5.35.0 |
| app_file: app.py |
| pinned: false |
| license: mit |
| --- |
| |
| # RasaBot |
|
|
| ## Project Overview |
|
|
| RasaBot is an intelligent chatbot leveraging Rasa (version 2.8.3) for conversational management and a classifier microservice built with FastAPI and Outlines. It is composed of two main components running in separate Docker containers: |
|
|
| * **Rasa Server**: Handles conversations using Rasa. |
| * **Classifier Microservice**: Classifies user intents using an LLM hosted by Together AI. |
|
|
| ## Requirements |
|
|
| * Docker |
| * Docker Compose |
| * Together AI API Key |
|
|
| ## Setup |
|
|
| ### 1. Clone Repository |
|
|
| ```bash |
| git clone <repository-url> |
| cd RasaBot |
| ``` |
|
|
| ### 2. Provide Together AI API Key |
|
|
| Set the Together AI API Key as an environment variable: |
|
|
| ```bash |
| export TOGETHERAI_API_KEY="your_together_ai_api_key_here" |
| ``` |
|
|
| Ensure this environment variable is set before running the classifier. |
|
|
| ### 3. Build Docker Images |
|
|
| Execute the provided build script to create the necessary Docker images: |
|
|
| ```bash |
| sh build.sh |
| ``` |
|
|
| ### 4. Create Docker Network |
|
|
| Before running the services, create a Docker network named `rasa-net` to allow communication between the containers: |
|
|
| ```bash |
| docker network create rasa-net |
| ``` |
|
|
| ### 5. Run Services |
|
|
| Start the classifier service on the `rasa-net` network: |
|
|
| ```bash |
| sh run_classifier.sh |
| ``` |
|
|
| Then, in a separate terminal, start the Rasa server on the `rasa-net` network: |
|
|
| ```bash |
| sh run_rasa.sh |
| ``` |
|
|
| Your chatbot services will now be running locally and connected via the `rasa-net` network. |
|
|
| ## Usage |
|
|
| Interact with the chatbot via the provided UI or API endpoints. |
|
|
| ## Stopping Services |
|
|
| To stop the running services, press `Ctrl+C` in the respective terminals or stop the Docker containers manually. |
|
|
| ## Notes |
|
|
| * The classifier microservice relies on Together AI for classification. Ensure the `TOGETHERAI_API_KEY` environment variable is properly configured to avoid runtime errors. |
|
|