# Project Overview This is a Python-based web application that uses the Gradio framework to create a user interface for a machine learning model. The project includes LiteLLM, which suggests it interacts with various Large Language Model (LLM) APIs. The application is containerized using Docker and is likely intended for deployment on a platform like Hugging Face Spaces. **Key Technologies:** * **Python:** The core programming language. * **Gradio:** Used to build the web-based UI for the machine learning model. * **LiteLLM:** A library to simplify calls to various LLM APIs. * **Uvicorn:** An ASGI server used to run the Gradio application. * **Docker:** Used for containerizing the application for deployment. * **uv:** A fast Python package installer and resolver, used for dependency management. # Building and Running The project is set up to be run as a Docker container. **Running the Application:** The `Dockerfile` specifies the command to run the application using `uvicorn`: ```bash uvicorn app:app --host 0.0.0.0 --port 7860 ``` This command starts the Uvicorn server, which serves the Gradio application defined in `app.py`. **Dependencies:** Project dependencies are managed in the `pyproject.toml` file and installed using `uv`. The main dependencies are: * `gradio` * `litellm` To install dependencies, you can use the following command: ```bash uv sync --dev ``` # Development Conventions * **Application Entrypoint:** The main application logic is expected to be in `app.py`. The Gradio application instance should be named `app`. * **Dependency Management:** Dependencies are managed with `uv` and the `pyproject.toml` file. * **Containerization:** The application is designed to be built and run as a Docker container. The `Dockerfile` in the root of the project defines the container image.