Class GenerativeModel (1.43.0)

GenerativeModel(
    model_name: str,
    *,
    generation_config: typing.Optional[
        typing.Union[
            vertexai.generative_models._generative_models.GenerationConfig,
            typing.Dict[str, typing.Any],
        ]
    ] = None,
    safety_settings: typing.Optional[
        typing.Union[
            typing.List[google.cloud.aiplatform_v1beta1.types.content.SafetySetting],
            typing.Dict[
                google.cloud.aiplatform_v1beta1.types.content.HarmCategory,
                google.cloud.aiplatform_v1beta1.types.content.SafetySetting.HarmBlockThreshold,
            ],
        ]
    ] = None,
    tools: typing.Optional[
        typing.List[vertexai.generative_models._generative_models.Tool]
    ] = None
)

Initializes GenerativeModel.

Usage:

model = GenerativeModel("gemini-pro")
print(model.generate_content("Hello"))
```

Parameter

Name Description
model_name str

Model Garden model resource name.

Methods

count_tokens

count_tokens(
    contents: typing.Union[
        typing.List[vertexai.generative_models._generative_models.Content],
        typing.List[typing.Dict[str, typing.Any]],
        str,
        vertexai.generative_models._generative_models.Image,
        vertexai.generative_models._generative_models.Part,
        typing.List[
            typing.Union[
                str,
                vertexai.generative_models._generative_models.Image,
                vertexai.generative_models._generative_models.Part,
            ]
        ],
    ]
) -> google.cloud.aiplatform_v1beta1.types.prediction_service.CountTokensResponse

Counts tokens.

Parameter
Name Description
contents typing.Union[typing.List[Content], typing.List[typing.Dict[str, typing.Any]], str, Image, Part, typing.List[typing.Union[str, Image, Part]]]

Contents to send to the model. Supports either a list of Content objects (passing a multi-turn conversation) or a value that can be converted to a single Content object (passing a single message). Supports * str, Image, Part, * List[Union[str, Image, Part]], * List[Content]

Returns
Type Description
A CountTokensResponse object that has the following attributes total_tokens: The total number of tokens counted across all instances from the request. total_billable_characters: The total number of billable characters counted across all instances from the request.

count_tokens_async

count_tokens_async(
    contents: typing.Union[
        typing.List[vertexai.generative_models._generative_models.Content],
        typing.List[typing.Dict[str, typing.Any]],
        str,
        vertexai.generative_models._generative_models.Image,
        vertexai.generative_models._generative_models.Part,
        typing.List[
            typing.Union[
                str,
                vertexai.generative_models._generative_models.Image,
                vertexai.generative_models._generative_models.Part,
            ]
        ],
    ]
) -> google.cloud.aiplatform_v1beta1.types.prediction_service.CountTokensResponse

Counts tokens asynchronously.

Parameter
Name Description
contents typing.Union[typing.List[Content], typing.List[typing.Dict[str, typing.Any]], str, Image, Part, typing.List[typing.Union[str, Image, Part]]]

Contents to send to the model. Supports either a list of Content objects (passing a multi-turn conversation) or a value that can be converted to a single Content object (passing a single message). Supports * str, Image, Part, * List[Union[str, Image, Part]], * List[Content]

Returns
Type Description
And awaitable for a CountTokensResponse object that has the following attributes total_tokens: The total number of tokens counted across all instances from the request. total_billable_characters: The total number of billable characters counted across all instances from the request.

generate_content

generate_content(
    contents: typing.Union[
        typing.List[vertexai.generative_models._generative_models.Content],
        typing.List[typing.Dict[str, typing.Any]],
        str,
        vertexai.generative_models._generative_models.Image,
        vertexai.generative_models._generative_models.Part,
        typing.List[
            typing.Union[
                str,
                vertexai.generative_models._generative_models.Image,
                vertexai.generative_models._generative_models.Part,
            ]
        ],
    ],
    *,
    generation_config: typing.Optional[
        typing.Union[
            vertexai.generative_models._generative_models.GenerationConfig,
            typing.Dict[str, typing.Any],
        ]
    ] = None,
    safety_settings: typing.Optional[
        typing.Union[
            typing.List[google.cloud.aiplatform_v1beta1.types.content.SafetySetting],
            typing.Dict[
                google.cloud.aiplatform_v1beta1.types.content.HarmCategory,
                google.cloud.aiplatform_v1beta1.types.content.SafetySetting.HarmBlockThreshold,
            ],
        ]
    ] = None,
    tools: typing.Optional[
        typing.List[vertexai.generative_models._generative_models.Tool]
    ] = None,
    stream: bool = False
) -> typing.Union[
    vertexai.generative_models._generative_models.GenerationResponse,
    typing.Iterable[vertexai.generative_models._generative_models.GenerationResponse],
]

Generates content.

Parameter
Name Description
contents typing.Union[typing.List[Content], typing.List[typing.Dict[str, typing.Any]], str, Image, Part, typing.List[typing.Union[str, Image, Part]]]

Contents to send to the model. Supports either a list of Content objects (passing a multi-turn conversation) or a value that can be converted to a single Content object (passing a single message). Supports * str, Image, Part, * List[Union[str, Image, Part]], * List[Content]

generate_content_async

generate_content_async(
    contents: typing.Union[
        typing.List[vertexai.generative_models._generative_models.Content],
        typing.List[typing.Dict[str, typing.Any]],
        str,
        vertexai.generative_models._generative_models.Image,
        vertexai.generative_models._generative_models.Part,
        typing.List[
            typing.Union[
                str,
                vertexai.generative_models._generative_models.Image,
                vertexai.generative_models._generative_models.Part,
            ]
        ],
    ],
    *,
    generation_config: typing.Optional[
        typing.Union[
            vertexai.generative_models._generative_models.GenerationConfig,
            typing.Dict[str, typing.Any],
        ]
    ] = None,
    safety_settings: typing.Optional[
        typing.Union[
            typing.List[google.cloud.aiplatform_v1beta1.types.content.SafetySetting],
            typing.Dict[
                google.cloud.aiplatform_v1beta1.types.content.HarmCategory,
                google.cloud.aiplatform_v1beta1.types.content.SafetySetting.HarmBlockThreshold,
            ],
        ]
    ] = None,
    tools: typing.Optional[
        typing.List[vertexai.generative_models._generative_models.Tool]
    ] = None,
    stream: bool = False
) -> typing.Union[
    vertexai.generative_models._generative_models.GenerationResponse,
    typing.AsyncIterable[
        vertexai.generative_models._generative_models.GenerationResponse
    ],
]

Generates content asynchronously.

Parameter
Name Description
contents typing.Union[typing.List[Content], typing.List[typing.Dict[str, typing.Any]], str, Image, Part, typing.List[typing.Union[str, Image, Part]]]

Contents to send to the model. Supports either a list of Content objects (passing a multi-turn conversation) or a value that can be converted to a single Content object (passing a single message). Supports * str, Image, Part, * List[Union[str, Image, Part]], * List[Content]

get_tuned_model

get_tuned_model(
    tuned_model_name: str,
) -> vertexai.generative_models._generative_models._GenerativeModel

Loads the specified tuned language model.

Parameter
Name Description
tuned_model_name str

A tuned model name returned by model.list_tuned_model_names()

list_tuned_model_names

list_tuned_model_names() -> typing.Sequence[str]

Lists the names of tuned models.

start_chat

start_chat(
    *,
    history: typing.Optional[
        typing.List[vertexai.generative_models._generative_models.Content]
    ] = None,
    response_validation: bool = True
) -> vertexai.generative_models._generative_models.ChatSession

Creates a stateful chat session.

tune_model

tune_model(
    training_data: typing.Union[str, tunable_models.pandas.core.frame.DataFrame],
    *,
    train_steps: typing.Optional[int] = None,
    learning_rate_multiplier: typing.Optional[float] = None,
    model_display_name: typing.Optional[str] = None,
    tuning_evaluation_spec: typing.Optional[TuningEvaluationSpec] = None,
    accelerator_type: typing.Optional[typing.Literal["TPU", "GPU"]] = None
) -> tunable_models._LanguageModelTuningJob

Tunes a model based on training data.

This method launches and returns an asynchronous model tuning job. Usage:

tuning_job = model.tune_model(...)
... do some other work
tuned_model = tuning_job.get_tuned_model()  # Blocks until tuning is complete
```
Parameter
Name Description
training_data typing.Union[str, tunable_models.pandas.core.frame.DataFrame]

A Pandas DataFrame or a URI pointing to data in JSON lines format. The dataset schema is model-specific. See https://cloud.google.com/vertex-ai/docs/generative-ai/models/tune-models#dataset_format

Exceptions
Type Description
ValueError If the "tuning_job_location" value is not supported
ValueError If the "tuned_model_location" value is not supported
RuntimeError If the model does not support tuning