--- tags: - agent-demo-track title: Plantuml Agent emoji: 🦀 colorFrom: gray colorTo: pink sdk: gradio sdk_version: 5.33.0 app_file: app.py pinned: false license: apache-2.0 short_description: Generate UML diagrams from natural language description hf_oauth: true hf_oauth_scopes: - inference-api --- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference # PlantUML Agent PlantUML Agent Logo Powered by Mistral, BM25Retriever, LangChain, Docling, LRUCache, Gradio, and PlantUML. ## Objective The PlantUML Agent is an interactive tool that leverages Large Language Models (LLMs) to generate PlantUML diagrams from natural language descriptions and/or image scratches. It aims to simplify the creation of various UML diagrams (such as Use Case, Class, Sequence, Activity, and State Machine diagrams) by allowing users to describe their desired diagram in natural language, which the agent then translates into PlantUML code and visualizes in real-time. ## Features * **Natural Language to PlantUML:** Convert descriptive text or image scratch into PlantUML code. * **Real-time Visualization:** See your PlantUML diagrams rendered instantly as SVG images. * **Retriever-Augmented Generation (RAG):** Utilizes a retriever tool to search the PlantUML diagram information to enhance the generation process. * **Caching:** Avoid redundant analyses with an LRU cache for improved performance. ### Agent Flow ``` User Input Text -> User Input Image (optional) -> PlantUML Agent -> PlantUML Code + PlantUML Diagram ``` ## Setup and Installation To set up and run the PlantUML Agent locally, follow these steps: 1. **Clone the repository:** ```bash git clone cd project_directory ``` 2. **Create a conda environment:** ```bash conda create -n plantuml-agent python=3.13 --y conda activate plantuml-agent ``` 3. **Install dependencies:** Install the required Python packages using `pip`: ```bash pip install -r requirements.txt ``` ## Usage To start the PlantUML Agent application, run the `app.py` file: ```bash python app.py ```