mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-10-31 20:02:53 +08:00 
			
		
		
		
	 b71cbb466d
			
		
	
	b71cbb466d
	
	
	
		
			
			* remove dependency on enable_mm * fix codestyle check error * fix codestyle check error * update docs * resolve conflicts on model config * fix unit test error * fix code style check error --------- Co-authored-by: shige <1021937542@qq.com> Co-authored-by: Jiang-Jia-Jun <163579578+Jiang-Jia-Jun@users.noreply.github.com>
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
| # Copyright (c) 2025  PaddlePaddle Authors. All Rights Reserved.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License"
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #     http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| """
 | |
| 
 | |
| from typing import Callable
 | |
| 
 | |
| 
 | |
| class MultimodalRegistry:
 | |
|     """
 | |
|     A registry for multimodal models
 | |
|     """
 | |
| 
 | |
|     mm_models: set[str] = set()
 | |
| 
 | |
|     @classmethod
 | |
|     def register_model(cls, name: str = "") -> Callable:
 | |
|         """
 | |
|         Register model with the given name, class name is used if name is not provided.
 | |
|         """
 | |
| 
 | |
|         def _register(model):
 | |
|             nonlocal name
 | |
|             if len(name) == 0:
 | |
|                 name = model.__name__
 | |
|             if name in cls.mm_models:
 | |
|                 raise ValueError(f"multimodal model {name} is already registered")
 | |
|             cls.mm_models.add(name)
 | |
|             return model
 | |
| 
 | |
|         return _register
 | |
| 
 | |
|     @classmethod
 | |
|     def contains_model(cls, name: str) -> bool:
 | |
|         """
 | |
|         Check if the given name exists in registry.
 | |
|         """
 | |
|         return name in cls.mm_models
 |