Source code for ibm_watsonx_ai.foundation_models.prompts.chat_prompt
# -----------------------------------------------------------------------------------------
# (C) Copyright IBM Corp. 2025.
# https://opensource.org/licenses/BSD-3-Clause
# -----------------------------------------------------------------------------------------
from ibm_watsonx_ai.foundation_models.prompts.base_prompt import BasePrompt
from ibm_watsonx_ai.foundation_models.utils.enums import ModelTypes
[docs]
class ChatPrompt(BasePrompt):
"""Storage for chat prompt parameters.
:param prompt_id: ID of the prompt, defaults to None.
:type prompt_id: str, attribute setting not allowed
:param created_at: time that the prompt was created (UTC), defaults to None.
:type created_at: str, attribute setting not allowed
:param lock: locked state of the asset, defaults to None.
:type lock: PromptTemplateLock | None, attribute setting not allowed
:param is_template: True if the prompt is a template, False otherwise; defaults to None.
:type is_template: bool | None, attribute setting not allowed
:param name: name of the prompt, defaults to None.
:type name: str, optional
:param model_id: ID of the foundation model, defaults to None.
:type model_id: ModelTypes | str | None, optional
:param model_params: parameters of the model, defaults to None.
:type model_params: dict, optional
:param prompt_version: semantic version for tracking in IBM AI Factsheets, defaults to None.
:type prompt_version: str, optional
:param task_ids: list of task IDs, defaults to None.
:type task_ids: list[str] | None, optional
:param description: description of the prompt asset, defaults to None.
:type description: str, optional
:param chat_items: chat items, defaults to None.
:type chat_items: list[dict], optional
:param system_prompt: system prompt used by model, defaults to None.
:type system_prompt: str, optional
**Examples**
Example of a valid chat prompt:
.. code-block:: python
prompt = ChatPrompt(
name="My chat prompt",
model_id="<some model>",
system_prompt="system prompt"
)
"""
_input_mode = "chat"
def __init__(
self,
name: str | None = None,
model_id: ModelTypes | str | None = None,
model_params: dict | None = None,
prompt_version: str | None = None,
task_ids: list[str] | None = None,
description: str | None = None,
chat_items: list[dict] | None = None,
system_prompt: str | None = None,
) -> None:
super().__init__(
input_mode=self._input_mode,
name=name,
model_id=model_id,
model_params=model_params,
prompt_version=prompt_version,
task_ids=task_ids,
description=description,
)
self.chat_items = chat_items
self.system_prompt = system_prompt
@property
def prompt_version(self) -> str | None:
return self._prompt_version
@prompt_version.setter
def prompt_version(self, value: str) -> None:
self._prompt_version = value