llm-app-II / README.md
Ali Kadhim
Update README.md
8162023 unverified
|
raw
history blame
2.15 kB

Beyond-ChatGPT

Chainlit App using Python streaming for Level 0 MLOps

LLM Application with Chainlit, Docker, and Huggingface Spaces In this guide, we'll walk you through the steps to create a Language Learning Model (LLM) application using Chainlit, then containerize it using Docker, and finally deploy it on Huggingface Spaces.

Prerequisites A GitHub account Docker installed on your local machine A Huggingface Spaces account

Building our App

Clone this repo.

git clone https://github.com/AI-Maker-Space/Beyond-ChatGPT.git

Navigate inside this repo

cd Beyond-ChatGPT

Install the packages required for this python envirnoment in requirements.txt.

pip install -r requirements.txt

Add your OpenAI Key to .env file and save the file.


Let's try deploying it locally. Make sure you're in the python environment where you installed Chainlit and OpenAI.

Run the app using Chainlit

chainlit run app.py -w

Great work! Let's see if we can interact with our chatbot.

Time to throw it into a docker container a prepare it for shipping

Build the Docker Image

docker build -t llm-app .

Test the Docker Image Locally (Optional)

docker run -p 7860:7860 llm-app

Visit http://localhost:7860 in your browser to see if the app runs correctly.

Great! Time to ship!

Deploy to Huggingface Spaces

Make sure you're logged into Huggingface Spaces CLI

huggingface-cli login

Follow the prompts to authenticate.

Deploy to Huggingface Spaces

Deploying on Huggingface Spaces using a custom Docker image involves using their web interface. Go to Huggingface Spaces and create a new space, then set it up to use your Docker image from the Huggingface Container Registry.

Access the Application

Once deployed, access your app at:

ruby Copy code https://huggingface.co/spaces/your-username/llm-app Conclusion You've successfully created an LLM application with Chainlit, containerized it with Docker, and deployed it on Huggingface Spaces. Visit the link to interact with your deployed application.