MessagePart::__construct( mixed $content, WordPressAiClientMessagesEnumsMessagePartChannelEnum|null $channel = null, string|null $thoughtSignature = null )

In this article

Constructor that accepts various content types and infers the message part type.

Parameters

$contentmixedrequired
The content of this message part.
$channelWordPressAiClientMessagesEnumsMessagePartChannelEnum|nulloptional
The channel this part belongs to. Defaults to CONTENT.

Default:null

$thoughtSignaturestring|nulloptional
Optional thought signature for extended thinking.

Default:null

Source

public function __construct($content, ?MessagePartChannelEnum $channel = null, ?string $thoughtSignature = null)
{
    $this->channel = $channel ?? MessagePartChannelEnum::content();
    $this->thoughtSignature = $thoughtSignature;
    if (is_string($content)) {
        $this->type = MessagePartTypeEnum::text();
        $this->text = $content;
    } elseif ($content instanceof File) {
        $this->type = MessagePartTypeEnum::file();
        $this->file = $content;
    } elseif ($content instanceof FunctionCall) {
        $this->type = MessagePartTypeEnum::functionCall();
        $this->functionCall = $content;
    } elseif ($content instanceof FunctionResponse) {
        $this->type = MessagePartTypeEnum::functionResponse();
        $this->functionResponse = $content;
    } else {
        $type = is_object($content) ? get_class($content) : gettype($content);
        throw new InvalidArgumentException(sprintf('Unsupported content type %s. Expected string, File, ' . 'FunctionCall, or FunctionResponse.', $type));
    }
}

Changelog

VersionDescription
0.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.