# Model Config The `ModelConfig` class is used to define the configuration for various types of models you want to manage or use with BerryDB. It utilizes a builder pattern to allow for a clear and step-by-step definition of model attributes. You start by choosing a provider-specific builder, set the necessary attributes, and then call `build()` to get a `ModelConfig` instance. This instance can then be used, for example, with `ModelRepo.save()` to register the model in BerryDB. ## ModelConfig Static Methods ### Fetching Available Model Categories ```{eval-rst} .. automethod:: model_garden.model_config.ModelConfig.get_available_model_categories ``` ## `ModelConfig (Builder Entry Points)` These class methods are the starting points for creating a model configuration for a specific provider. ```{eval-rst} .. automethod:: model_garden.model_config.ModelConfig.huggingface_builder .. automethod:: model_garden.model_config.ModelConfig.vertexai_builder .. automethod:: model_garden.model_config.ModelConfig.custom_model_builder .. automethod:: model_garden.model_config.ModelConfig.berrydb_builder ``` ## `ModelConfig.Builder Methods` Once you have a builder instance (e.g., `HuggingFaceModelConfigBuilder`, `VertexAIModelConfigBuilder`, etc.), you can use the following methods to set the configuration attributes. Some methods are common across all builders, while others are specific to a particular model provider. ### Hugging Face Specific Builder Methods ```{eval-rst} .. automethod:: model_garden.model_config.ModelConfig.HuggingFaceModelConfigBuilder.name .. automethod:: model_garden.model_config.ModelConfig.HuggingFaceModelConfigBuilder.description .. automethod:: model_garden.model_config.ModelConfig.HuggingFaceModelConfigBuilder.hf_model_name .. automethod:: model_garden.model_config.ModelConfig.HuggingFaceModelConfigBuilder.build ``` ### Vertex AI Specific Builder Methods ```{eval-rst} .. automethod:: model_garden.model_config.ModelConfig.VertexAIModelConfigBuilder.name .. automethod:: model_garden.model_config.ModelConfig.VertexAIModelConfigBuilder.request_model .. automethod:: model_garden.model_config.ModelConfig.VertexAIModelConfigBuilder.notes .. automethod:: model_garden.model_config.ModelConfig.VertexAIModelConfigBuilder.build ``` ### Custom Model Specific Builder Methods ```{eval-rst} .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.name .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.description .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.self_hosted .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.upload_file_path .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.upload_file_url .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.predict_route .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.hosted_url .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.framework .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.framework_version .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.hardware_accelerator .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.build ``` ### BerryDB Model Specific Builder Methods ```{eval-rst} .. note:: BerryDB specific models are typically internal. .. # end .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.name .. automethod:: model_garden.model_config.ModelConfig.CustomModelConfigBuilder.description ``` ---