@startuml download_model actor User participant "Environment" as env participant "ModelDownloader" as downloader User -> downloader: download_model() activate downloader downloader -> env: Get MODEL_CLASS activate env env --> downloader: 'hf' or 'gguf' deactivate env alt MODEL_CLASS is 'hf' downloader -> downloader: download_hf_model() activate downloader downloader -> downloader: model_file_exists_and_valid() downloader -> downloader: write_model_path_to_txt_file() deactivate downloader else MODEL_CLASS is 'gguf' downloader -> downloader: download_gguf_model() activate downloader downloader -> downloader: model_file_exists_and_valid() downloader -> downloader: write_model_path_to_txt_file() deactivate downloader else Unsupported model class downloader -> User: Print "Unsupported model class" end deactivate downloader @enduml