Foundation Model

pydantic model ibm_watsonx_gov.entities.foundation_model.AzureOpenAIFoundationModel

Bases: FoundationModel

The Azure OpenAI foundation model details

Examples

  1. Create Azure OpenAI foundation model by passing the credentials during object creation.
    azure_openai_foundation_model = AzureOpenAIFoundationModel(
        model_id="gpt-4o-mini",
        provider=AzureOpenAIModelProvider(
            credentials=AzureOpenAICredentials(
                api_key=azure_api_key,
                url=azure_host_url,
                api_version=azure_api_model_version,
            )
        )
    )
    
  2. Create Azure OpenAI foundation model by setting the credentials in environment variables:
    • AZURE_OPENAI_API_KEY is used to set the api key for OpenAI.

    • AZURE_OPENAI_HOST is used to set the url for Azure OpenAI.

    • AZURE_OPENAI_API_VERSION is uses to set the the api version for Azure OpenAI.

      openai_foundation_model = AzureOpenAIFoundationModel(
          model_id="gpt-4o-mini",
      )
      

Show JSON schema
{
   "title": "AzureOpenAIFoundationModel",
   "description": "The Azure OpenAI foundation model details\n\nExamples:\n    1. Create Azure OpenAI foundation model by passing the credentials during object creation.\n        .. code-block:: python\n\n            azure_openai_foundation_model = AzureOpenAIFoundationModel(\n                model_id=\"gpt-4o-mini\",\n                provider=AzureOpenAIModelProvider(\n                    credentials=AzureOpenAICredentials(\n                        api_key=azure_api_key,\n                        url=azure_host_url,\n                        api_version=azure_api_model_version,\n                    )\n                )\n            )\n\n2. Create Azure OpenAI foundation model by setting the credentials in environment variables:\n    * ``AZURE_OPENAI_API_KEY`` is used to set the api key for OpenAI.\n    * ``AZURE_OPENAI_HOST`` is used to set the url for Azure OpenAI.\n    * ``AZURE_OPENAI_API_VERSION`` is uses to set the the api version for Azure OpenAI.\n\n        .. code-block:: python\n\n            openai_foundation_model = AzureOpenAIFoundationModel(\n                model_id=\"gpt-4o-mini\",\n            )",
   "type": "object",
   "properties": {
      "model_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The name of the foundation model.",
         "title": "Model Name"
      },
      "provider": {
         "$ref": "#/$defs/AzureOpenAIModelProvider",
         "description": "Azure OpenAI provider"
      },
      "model_id": {
         "description": "Model deployment name from Azure OpenAI",
         "title": "Model Id",
         "type": "string"
      }
   },
   "$defs": {
      "AzureOpenAICredentials": {
         "properties": {
            "url": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "description": "Azure OpenAI url. This attribute can be read from `AZURE_OPENAI_HOST` environment variable.",
               "title": "Url"
            },
            "api_key": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "description": "API key for Azure OpenAI. This attribute can be read from `AZURE_OPENAI_API_KEY` environment variable.",
               "title": "Api Key"
            },
            "api_version": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "description": "The model API version from Azure OpenAI. This attribute can be read from `AZURE_OPENAI_API_VERSION` environment variable.",
               "title": "Api Version"
            }
         },
         "required": [
            "url",
            "api_key",
            "api_version"
         ],
         "title": "AzureOpenAICredentials",
         "type": "object"
      },
      "AzureOpenAIModelProvider": {
         "properties": {
            "type": {
               "$ref": "#/$defs/ModelProviderType",
               "default": "azure_openai",
               "description": "The type of model provider."
            },
            "credentials": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/AzureOpenAICredentials"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Azure OpenAI credentials."
            }
         },
         "title": "AzureOpenAIModelProvider",
         "type": "object"
      },
      "ModelProviderType": {
         "description": "Supported model provider types for Generative AI",
         "enum": [
            "ibm_watsonx.ai",
            "azure_openai",
            "rits",
            "openai",
            "custom"
         ],
         "title": "ModelProviderType",
         "type": "string"
      }
   },
   "required": [
      "model_id"
   ]
}

Config:
  • protected_namespaces: tuple = ()

Fields:
field model_id: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Model deployment name from Azure OpenAI')] [Required]

Model deployment name from Azure OpenAI

field provider: Annotated[AzureOpenAIModelProvider, FieldInfo(annotation=NoneType, required=False, default_factory=AzureOpenAIModelProvider, description='Azure OpenAI provider')] [Optional]

Azure OpenAI provider

pydantic model ibm_watsonx_gov.entities.foundation_model.CustomFoundationModel

Bases: FoundationModel

Defines the CustomFoundationModel class.

This class extends the base FoundationModel to support custom inference logic through a user-defined scoring function. It is intended for use cases where the model is externally hosted and not in the list of supported frameworks. .. rubric:: Examples

  1. Define a custom scoring function and create a model:
    import pandas as pd
    
    def scoring_fn(data: pd.DataFrame):
        predictions_list = []
        # Custom logic to call an external LLM
        return pd.DataFrame({"generated_text": predictions_list})
    
    model = CustomFoundationModel(
        scoring_fn=scoring_fn
    )
    

Show JSON schema
{
   "title": "CustomFoundationModel",
   "type": "object",
   "properties": {
      "model_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The name of the foundation model.",
         "title": "Model Name"
      },
      "provider": {
         "$ref": "#/$defs/ModelProvider",
         "description": "The provider of the model."
      },
      "scoring_fn": {
         "default": null,
         "title": "Scoring Fn"
      }
   },
   "$defs": {
      "ModelProvider": {
         "properties": {
            "type": {
               "$ref": "#/$defs/ModelProviderType",
               "description": "The type of model provider."
            }
         },
         "required": [
            "type"
         ],
         "title": "ModelProvider",
         "type": "object"
      },
      "ModelProviderType": {
         "description": "Supported model provider types for Generative AI",
         "enum": [
            "ibm_watsonx.ai",
            "azure_openai",
            "rits",
            "openai",
            "custom"
         ],
         "title": "ModelProviderType",
         "type": "string"
      }
   }
}

Config:
  • protected_namespaces: tuple = ()

Fields:
field provider: Annotated[ModelProvider, FieldInfo(annotation=NoneType, required=False, default_factory=CustomModelProvider, description='The provider of the model.')] [Optional]

The provider of the model.

field scoring_fn: Annotated[Callable, FieldInfo(annotation=NoneType, required=True, description='A callable function that wraps the inference calls to an external LLM.')] [Required]

A callable function that wraps the inference calls to an external LLM.

pydantic model ibm_watsonx_gov.entities.foundation_model.FoundationModel

Bases: BaseModel

Defines the base FoundationModel class.

Show JSON schema
{
   "title": "FoundationModel",
   "description": "Defines the base FoundationModel class.",
   "type": "object",
   "properties": {
      "model_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The name of the foundation model.",
         "title": "Model Name"
      },
      "provider": {
         "$ref": "#/$defs/ModelProvider",
         "description": "The provider of the foundation model."
      }
   },
   "$defs": {
      "ModelProvider": {
         "properties": {
            "type": {
               "$ref": "#/$defs/ModelProviderType",
               "description": "The type of model provider."
            }
         },
         "required": [
            "type"
         ],
         "title": "ModelProvider",
         "type": "object"
      },
      "ModelProviderType": {
         "description": "Supported model provider types for Generative AI",
         "enum": [
            "ibm_watsonx.ai",
            "azure_openai",
            "rits",
            "openai",
            "custom"
         ],
         "title": "ModelProviderType",
         "type": "string"
      }
   },
   "required": [
      "provider"
   ]
}

Config:
  • protected_namespaces: tuple = ()

Fields:
field model_name: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='The name of the foundation model.')] = None

The name of the foundation model.

field provider: Annotated[ModelProvider, FieldInfo(annotation=NoneType, required=True, description='The provider of the foundation model.')] [Required]

The provider of the foundation model.

pydantic model ibm_watsonx_gov.entities.foundation_model.FoundationModelInfo

Bases: BaseModel

Represents a foundation model used in an experiment.

Show JSON schema
{
   "title": "FoundationModelInfo",
   "description": "Represents a foundation model used in an experiment.",
   "type": "object",
   "properties": {
      "model_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The name of the foundation model.",
         "title": "Model Name"
      },
      "model_id": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The id of the foundation model.",
         "title": "Model Id"
      },
      "provider": {
         "description": "The provider of the foundation model.",
         "title": "Provider",
         "type": "string"
      },
      "type": {
         "description": "The type of foundation model.",
         "example": [
            "chat",
            "embedding",
            "text-generation"
         ],
         "title": "Type",
         "type": "string"
      }
   },
   "required": [
      "provider",
      "type"
   ]
}

Fields:
field model_id: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='The id of the foundation model.')] = None

The id of the foundation model.

field model_name: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='The name of the foundation model.')] = None

The name of the foundation model.

field provider: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='The provider of the foundation model.')] [Required]

The provider of the foundation model.

field type: ', json_schema_extra={'example': ['chat', 'embedding', 'text-generation']})] [Required]

The type of foundation model.

pydantic model ibm_watsonx_gov.entities.foundation_model.OpenAIFoundationModel

Bases: FoundationModel

The OpenAI foundation model details

Examples

  1. Create OpenAI foundation model by passing the credentials during object creation. Note that the url is optional and will be set to the default value for OpenAI. To change the default value, the url should be passed to OpenAICredentials object.
    openai_foundation_model = OpenAIFoundationModel(
        model_id="gpt-4o-mini",
        provider=OpenAIModelProvider(
            credentials=OpenAICredentials(
                api_key=api_key,
                url=openai_url,
            )
        )
    )
    
  2. Create OpenAI foundation model by setting the credentials in environment variables:
    • OPENAI_API_KEY is used to set the api key for OpenAI.

    • OPENAI_URL is used to set the url for OpenAI

    openai_foundation_model = OpenAIFoundationModel(
        model_id="gpt-4o-mini",
    )
    

Show JSON schema
{
   "title": "OpenAIFoundationModel",
   "description": "The OpenAI foundation model details\n\nExamples:\n    1. Create OpenAI foundation model by passing the credentials during object creation. Note that the url is optional and will be set to the default value for OpenAI. To change the default value, the url should be passed to ``OpenAICredentials`` object.\n        .. code-block:: python\n\n            openai_foundation_model = OpenAIFoundationModel(\n                model_id=\"gpt-4o-mini\",\n                provider=OpenAIModelProvider(\n                    credentials=OpenAICredentials(\n                        api_key=api_key,\n                        url=openai_url,\n                    )\n                )\n            )\n\n    2. Create OpenAI foundation model by setting the credentials in environment variables:\n        * ``OPENAI_API_KEY`` is used to set the api key for OpenAI.\n        * ``OPENAI_URL`` is used to set the url for OpenAI\n\n        .. code-block:: python\n\n            openai_foundation_model = OpenAIFoundationModel(\n                model_id=\"gpt-4o-mini\",\n            )",
   "type": "object",
   "properties": {
      "model_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The name of the foundation model.",
         "title": "Model Name"
      },
      "provider": {
         "$ref": "#/$defs/OpenAIModelProvider",
         "description": "OpenAI provider"
      },
      "model_id": {
         "description": "Model name from OpenAI",
         "title": "Model Id",
         "type": "string"
      }
   },
   "$defs": {
      "ModelProviderType": {
         "description": "Supported model provider types for Generative AI",
         "enum": [
            "ibm_watsonx.ai",
            "azure_openai",
            "rits",
            "openai",
            "custom"
         ],
         "title": "ModelProviderType",
         "type": "string"
      },
      "OpenAICredentials": {
         "description": "Defines the OpenAICredentials class to specify the OpenAI server details.\n\nExamples:\n    1. Create OpenAICredentials with default parameters. By default Dallas region is used.\n        .. code-block:: python\n\n            openai_credentials = OpenAICredentials(api_key=api_key,\n                                                   url=openai_url)\n\n    2. Create OpenAICredentials by reading from environment variables.\n        .. code-block:: python\n\n            os.environ[\"OPENAI_API_KEY\"] = \"...\"\n            os.environ[\"OPENAI_URL\"] = \"...\"\n            openai_credentials = OpenAICredentials.create_from_env()",
         "properties": {
            "url": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "title": "Url"
            },
            "api_key": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "title": "Api Key"
            }
         },
         "required": [
            "url",
            "api_key"
         ],
         "title": "OpenAICredentials",
         "type": "object"
      },
      "OpenAIModelProvider": {
         "properties": {
            "type": {
               "$ref": "#/$defs/ModelProviderType",
               "default": "openai",
               "description": "The type of model provider."
            },
            "credentials": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/OpenAICredentials"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "OpenAI credentials. This can also be set by using `OPENAI_API_KEY` environment variable."
            }
         },
         "title": "OpenAIModelProvider",
         "type": "object"
      }
   },
   "required": [
      "model_id"
   ]
}

Config:
  • protected_namespaces: tuple = ()

Fields:
field model_id: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Model name from OpenAI')] [Required]

Model name from OpenAI

field provider: Annotated[OpenAIModelProvider, FieldInfo(annotation=NoneType, required=False, default_factory=OpenAIModelProvider, description='OpenAI provider')] [Optional]

OpenAI provider

pydantic model ibm_watsonx_gov.entities.foundation_model.RITSFoundationModel

Bases: FoundationModel

Show JSON schema
{
   "title": "RITSFoundationModel",
   "type": "object",
   "properties": {
      "model_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The name of the foundation model.",
         "title": "Model Name"
      },
      "provider": {
         "$ref": "#/$defs/RITSModelProvider",
         "description": "The provider of the model."
      }
   },
   "$defs": {
      "ModelProviderType": {
         "description": "Supported model provider types for Generative AI",
         "enum": [
            "ibm_watsonx.ai",
            "azure_openai",
            "rits",
            "openai",
            "custom"
         ],
         "title": "ModelProviderType",
         "type": "string"
      },
      "RITSCredentials": {
         "properties": {
            "hostname": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": "https://inference-3scale-apicast-production.apps.rits.fmaas.res.ibm.com",
               "description": "The rits hostname",
               "title": "Hostname"
            },
            "api_key": {
               "title": "Api Key",
               "type": "string"
            }
         },
         "required": [
            "api_key"
         ],
         "title": "RITSCredentials",
         "type": "object"
      },
      "RITSModelProvider": {
         "properties": {
            "type": {
               "$ref": "#/$defs/ModelProviderType",
               "default": "rits",
               "description": "The type of model provider."
            },
            "credentials": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/RITSCredentials"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "RITS credentials."
            }
         },
         "title": "RITSModelProvider",
         "type": "object"
      }
   }
}

Config:
  • protected_namespaces: tuple = ()

Fields:
field provider: Annotated[RITSModelProvider, FieldInfo(annotation=NoneType, required=False, default_factory=RITSModelProvider, description='The provider of the model.')] [Optional]

The provider of the model.

pydantic model ibm_watsonx_gov.entities.foundation_model.WxAIFoundationModel

Bases: FoundationModel

The IBM watsonx.ai foundation model details

To initialize the foundation model, you can either pass in the credentials directly or set the environment. You can follow these examples to create the provider.

Examples

  1. Create foundation model by specifying the credentials during object creation:
    # Specify the credentials during object creation
    wx_ai_foundation_model = WxAIFoundationModel(
        model_id="google/flan-ul2",
        project_id=<PROJECT_ID>,
        provider=WxAIModelProvider(
            credentials=WxAICredentials(
                url=wx_url, # This is optional field, by default US-Dallas region is selected
                api_key=wx_apikey,
            )
        )
    )
    
  2. Create foundation model by setting the credentials environment variables:
    • The api key can be set using one of the environment variables WXAI_API_KEY, WATSONX_APIKEY, or WXG_API_KEY. These will be read in the order of precedence.

    • The url is optional and will be set to US-Dallas region by default. It can be set using one of the environment variables WXAI_URL, WATSONX_URL, or WXG_URL. These will be read in the order of precedence.

    wx_ai_foundation_model = WxAIFoundationModel(
        model_id="google/flan-ul2",
        project_id=<PROJECT_ID>,
    )
    
  3. Create foundation model by specifying watsonx.governance software credentials during object creation:
    wx_ai_foundation_model = WxAIFoundationModel(
        model_id="google/flan-ul2",
        project_id=project_id,
        provider=WxAIModelProvider(
            credentials=WxAICredentials(
                url=wx_url,
                api_key=wx_apikey,
                username=wx_username,
                version=wx_version,
            )
        )
    )
    
  4. Create foundation model by setting watsonx.governance software credentials environment variables:
    • The api key can be set using one of the environment variables WXAI_API_KEY, WATSONX_APIKEY, or WXG_API_KEY. These will be read in the order of precedence.

    • The url can be set using one of these environment variable WXAI_URL, WATSONX_URL, or WXG_URL. These will be read in the order of precedence.

    • The username can be set using one of these environment variable WXAI_USERNAME, WATSONX_USERNAME, or WXG_USERNAME. These will be read in the order of precedence.

    • The version of watsonx.governance software can be set using one of these environment variable WXAI_VERSION, WATSONX_VERSION, or WXG_VERSION. These will be read in the order of precedence.

    wx_ai_foundation_model = WxAIFoundationModel(
        model_id="google/flan-ul2",
        project_id=project_id,
    )
    

Show JSON schema
{
   "title": "WxAIFoundationModel",
   "description": "The IBM watsonx.ai foundation model details\n\nTo initialize the foundation model, you can either pass in the credentials directly or set the environment.\nYou can follow these examples to create the provider.\n\nExamples:\n    1. Create foundation model by specifying the credentials during object creation:\n        .. code-block:: python\n\n            # Specify the credentials during object creation\n            wx_ai_foundation_model = WxAIFoundationModel(\n                model_id=\"google/flan-ul2\",\n                project_id=<PROJECT_ID>,\n                provider=WxAIModelProvider(\n                    credentials=WxAICredentials(\n                        url=wx_url, # This is optional field, by default US-Dallas region is selected\n                        api_key=wx_apikey,\n                    )\n                )\n            )\n\n    2. Create foundation model by setting the credentials environment variables:\n        * The api key can be set using one of the environment variables ``WXAI_API_KEY``, ``WATSONX_APIKEY``, or ``WXG_API_KEY``. These will be read in the order of precedence.\n        * The url is optional and will be set to US-Dallas region by default. It can be set using one of the environment variables ``WXAI_URL``, ``WATSONX_URL``, or ``WXG_URL``. These will be read in the order of precedence.\n\n        .. code-block:: python\n\n            wx_ai_foundation_model = WxAIFoundationModel(\n                model_id=\"google/flan-ul2\",\n                project_id=<PROJECT_ID>,\n            )\n\n    3. Create foundation model by specifying watsonx.governance software credentials during object creation:\n        .. code-block:: python\n\n            wx_ai_foundation_model = WxAIFoundationModel(\n                model_id=\"google/flan-ul2\",\n                project_id=project_id,\n                provider=WxAIModelProvider(\n                    credentials=WxAICredentials(\n                        url=wx_url,\n                        api_key=wx_apikey,\n                        username=wx_username,\n                        version=wx_version,\n                    )\n                )\n            )\n\n    4. Create foundation model by setting watsonx.governance software credentials environment variables:\n        * The api key can be set using one of the environment variables ``WXAI_API_KEY``, ``WATSONX_APIKEY``, or ``WXG_API_KEY``. These will be read in the order of precedence.\n        * The url can be set using one of these environment variable ``WXAI_URL``, ``WATSONX_URL``, or ``WXG_URL``. These will be read in the order of precedence.\n        * The username can be set using one of these environment variable ``WXAI_USERNAME``, ``WATSONX_USERNAME``, or ``WXG_USERNAME``. These will be read in the order of precedence.\n        * The version of watsonx.governance software can be set using one of these environment variable ``WXAI_VERSION``, ``WATSONX_VERSION``, or ``WXG_VERSION``. These will be read in the order of precedence.\n\n        .. code-block:: python\n\n            wx_ai_foundation_model = WxAIFoundationModel(\n                model_id=\"google/flan-ul2\",\n                project_id=project_id,\n            )",
   "type": "object",
   "properties": {
      "model_name": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The name of the foundation model.",
         "title": "Model Name"
      },
      "provider": {
         "$ref": "#/$defs/WxAIModelProvider",
         "description": "The provider of the model."
      },
      "model_id": {
         "description": "The unique identifier for the watsonx.ai model.",
         "title": "Model Id",
         "type": "string"
      },
      "project_id": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The project ID associated with the model.",
         "title": "Project Id"
      },
      "space_id": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The space ID associated with the model.",
         "title": "Space Id"
      }
   },
   "$defs": {
      "ModelProviderType": {
         "description": "Supported model provider types for Generative AI",
         "enum": [
            "ibm_watsonx.ai",
            "azure_openai",
            "rits",
            "openai",
            "custom"
         ],
         "title": "ModelProviderType",
         "type": "string"
      },
      "WxAICredentials": {
         "description": "Defines the WxAICredentials class to specify the watsonx.ai server details.\n\nExamples:\n    1. Create WxAICredentials with default parameters. By default Dallas region is used.\n        .. code-block:: python\n\n            wxai_credentials = WxAICredentials(api_key=\"...\")\n\n    2. Create WxAICredentials by specifying region url.\n        .. code-block:: python\n\n            wxai_credentials = WxAICredentials(api_key=\"...\",\n                                               url=\"https://au-syd.ml.cloud.ibm.com\")\n\n    3. Create WxAICredentials by reading from environment variables.\n        .. code-block:: python\n\n            os.environ[\"WATSONX_APIKEY\"] = \"...\"\n            # [Optional] Specify watsonx region specific url. Default is https://us-south.ml.cloud.ibm.com .\n            os.environ[\"WATSONX_URL\"] = \"https://eu-gb.ml.cloud.ibm.com\"\n            wxai_credentials = WxAICredentials.create_from_env()\n\n    4. Create WxAICredentials for on-prem.\n        .. code-block:: python\n\n            wxai_credentials = WxAICredentials(url=\"https://<hostname>\",\n                                               username=\"...\"\n                                               api_key=\"...\",\n                                               version=\"5.2\")\n\n    5. Create WxAICredentials by reading from environment variables for on-prem.\n        .. code-block:: python\n\n            os.environ[\"WATSONX_URL\"] = \"https://<hostname>\"\n            os.environ[\"WATSONX_VERSION\"] = \"5.2\"\n            os.environ[\"WATSONX_USERNAME\"] = \"...\"\n            os.environ[\"WATSONX_APIKEY\"] = \"...\"\n            # Only one of api_key or password is needed\n            #os.environ[\"WATSONX_PASSWORD\"] = \"...\"\n            wxai_credentials = WxAICredentials.create_from_env()",
         "properties": {
            "url": {
               "default": "https://us-south.ml.cloud.ibm.com",
               "description": "The url for watsonx ai service",
               "examples": [
                  "https://us-south.ml.cloud.ibm.com",
                  "https://eu-de.ml.cloud.ibm.com",
                  "https://eu-gb.ml.cloud.ibm.com",
                  "https://jp-tok.ml.cloud.ibm.com",
                  "https://au-syd.ml.cloud.ibm.com"
               ],
               "title": "watsonx.ai url",
               "type": "string"
            },
            "api_key": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The user api key. Required for using watsonx as a service and one of api_key or password is required for using watsonx on-prem software.",
               "strip_whitespace": true,
               "title": "Api Key"
            },
            "version": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The watsonx on-prem software version. Required for using watsonx on-prem software.",
               "title": "Version"
            },
            "username": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The user name. Required for using watsonx on-prem software.",
               "title": "User name"
            },
            "password": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The user password. One of api_key or password is required for using watsonx on-prem software.",
               "title": "Password"
            },
            "instance_id": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": "openshift",
               "description": "The watsonx.ai instance id. Default value is openshift.",
               "title": "Instance id"
            }
         },
         "title": "WxAICredentials",
         "type": "object"
      },
      "WxAIModelProvider": {
         "description": "This class represents a model provider configuration for IBM watsonx.ai. It includes the provider type and\ncredentials required to authenticate and interact with the watsonx.ai platform. If credentials are not explicitly\nprovided, it attempts to load them from environment variables.\n\nExamples:\n    1. Create provider using credentials object:\n        .. code-block:: python\n\n            credentials = WxAICredentials(\n                url=\"https://us-south.ml.cloud.ibm.com\",\n                api_key=\"your-api-key\"\n            )\n            provider = WxAIModelProvider(credentials=credentials)\n\n    2. Create provider using environment variables:\n        .. code-block:: python\n\n            import os\n\n            os.environ['WATSONX_URL'] = \"https://us-south.ml.cloud.ibm.com\"\n            os.environ['WATSONX_APIKEY'] = \"your-api-key\"\n\n            provider = WxAIModelProvider()",
         "properties": {
            "type": {
               "$ref": "#/$defs/ModelProviderType",
               "default": "ibm_watsonx.ai",
               "description": "The type of model provider."
            },
            "credentials": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/WxAICredentials"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "The credentials used to authenticate with watsonx.ai. If not provided, they will be loaded from environment variables."
            }
         },
         "title": "WxAIModelProvider",
         "type": "object"
      }
   },
   "required": [
      "model_id"
   ]
}

Config:
  • protected_namespaces: tuple = ()

Fields:
Validators:
field model_id: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='The unique identifier for the watsonx.ai model.')] [Required]

The unique identifier for the watsonx.ai model.

Validated by:
field project_id: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='The project ID associated with the model.')] = None

The project ID associated with the model.

Validated by:
field provider: Annotated[WxAIModelProvider, FieldInfo(annotation=NoneType, required=False, default_factory=WxAIModelProvider, description='The provider of the model.')] [Optional]

The provider of the model.

Validated by:
field space_id: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='The space ID associated with the model.')] = None

The space ID associated with the model.

Validated by:
validator get_params_from_env  »  all fields