| 124 | } |
| 125 | |
| 126 | int LocalModelUtils::ListLocalModels() { |
| 127 | // Iterate through all known providers |
| 128 | static const std::vector<std::string> kProviders = { |
| 129 | "HuggingFace", "ModelScope", "Modelers" |
| 130 | }; |
| 131 | |
| 132 | std::vector<std::string> all_models; |
| 133 | auto &config_mgr = ConfigManager::GetInstance(); |
| 134 | auto config = config_mgr.LoadConfig(); |
| 135 | |
| 136 | mnn::downloader::Config downloader_config; |
| 137 | downloader_config.cache_dir = config.cache_dir; |
| 138 | downloader_config.download_provider = config.download_provider; |
| 139 | |
| 140 | for (const auto& provider : kProviders) { |
| 141 | auto models = ListLocalModelsInner(provider, config_mgr.GetBaseCacheDir()); |
| 142 | all_models.insert(all_models.end(), models.begin(), models.end()); |
| 143 | } |
| 144 | if (!all_models.empty()) { |
| 145 | std::cout << "Local models:\n"; |
| 146 | for (const auto &name : all_models) { |
| 147 | std::cout << mnn::downloader::ModelNameUtils::GetDisplayModelName(name, downloader_config) |
| 148 | << "\n"; |
| 149 | } |
| 150 | } else { |
| 151 | std::cout << "No local models found.\n"; |
| 152 | std::cout << "Use 'mnncli search <keyword>' to search remote models\n"; |
| 153 | std::cout << "Use 'mnncli download <name>' to download models\n"; |
| 154 | } |
| 155 | return 0; |
| 156 | } |
| 157 | |
| 158 | } // namespace mnncli |
nothing calls this directly
no test coverage detected