BPMN Assistant is an application that uses Large Language Models (LLMs) to assist with creating, editing, and interpreting Business Process Model and Notation (BPMN) diagrams.
- Clone the repository
git clone https://github.com/jtlicardo/bpmn-assistant.git
cd bpmn-assistant
- Set up your environment variables
Linux, macOS
cd src/bpmn_assistant
cp .env.example .env
Windows
cd src\bpmn_assistant
copy .env.example .env
-
Open the
.env
file and replace the placeholder values with your actual API keys. -
Build and run the application
docker-compose up --build
- Open your browser and go to
http://localhost:8080
- Docker
- Docker Compose
- At least one of the following API keys:
Note: You can use any combination of the API keys above, but at least one is required to use the app.
- GPT-4o mini
- GPT-4o
- o1-preview (reasoning model)
- o1-mini (reasoning model)
Note: o1-preview and o1-mini are used as reasoning models to enhance the application's capabilities:
- They "think through" the process before creating BPMN diagrams, leading to more logical and coherent results
- They analyze and define change requests when editing diagrams, improving accuracy and consistency
These models are used in conjunction with their respective GPT-4o counterparts as they don't support structured outputs yet. While providing enhanced performance, they have longer response times and can incur significant costs.
- Claude 3.5 Haiku
- Claude 3.5 Sonnet
- Gemini 2.0 Flash
- Gemini 1.5 Pro
- Llama 3.3 70B Instruct
- Qwen 2.5 72B Instruct
- Deepseek V3
- Deepseek R1 (reasoning model)
Note: Deepseek R1 is used together with Deepseek V3, similar to the OpenAI model pairings.
- Diagram creation - Generates BPMN diagrams based on text descriptions.
- Diagram editing - Modifies BPMN diagrams based on user input.
- Diagram interpretation - Provides text descriptions of BPMN diagrams.
- Drag-and-drop functionality - Users can drag and drop BPMN files (containing only supported elements) into the editor, then ask the LLM to edit or explain the process.
The application currently supports a subset of BPMN elements:
- Task
- User task
- Service task
- Exclusive gateway
- Parallel gateway
- Start event
- End event
- The AI assistant does not "see" manual edits made to the diagram. It always responds based on its last generated version. Keep this in mind when interacting with the assistant after making manual changes.
- Pools and lanes are not and will not be supported.
If you have any questions or feedback, please open an issue on this GitHub repository.