| Name | Type | Description |
|---|---|---|
serialized* | dict[str, Any] | The serialized chat model. |
messages* | list[list[BaseMessage]] | The messages. Must be a list of message lists — this is a required positional argument and must be present in any override. |
run_id* | UUID | |
parent_run_id | UUID | None | Default: None |
tags | list[str] | None | Default: None |
metadata | dict[str, Any] | None | Default: None |
**kwargs | Any | Default: {} |
Run when a chat model starts running.
This method is called for chat models. If you're implementing a handler for
a non-chat model, you should use on_llm_start instead.
When overriding this method, the signature must include the two
required positional arguments serialized and messages. Avoid
using *args in your override — doing so causes an IndexError
in the fallback path when the callback system converts messages
to prompt strings for on_llm_start. Always declare the
signature explicitly:
.. code-block:: python
def on_chat_model_start(
self,
serialized: dict[str, Any],
messages: list[list[BaseMessage]],
**kwargs: Any,
) -> None:
raise NotImplementedError # triggers fallback to on_llm_start
The ID of the current run.
The ID of the parent run.
The tags.
The metadata.
Additional keyword arguments.