WordPress\AiClient\Builders

PromptBuilder::validateMessagesprivateWP 0.1.0

Validates the messages array for prompt generation.

Ensures that:

  • The first message is a user message
  • The last message is a user message
  • The last message has parts

Method of the class: PromptBuilder{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->validateMessages(): void;

Changelog

Since 0.1.0 Introduced.

PromptBuilder::validateMessages() code WP 7.0

private function validateMessages(): void
{
    if (empty($this->messages)) {
        throw new InvalidArgumentException('Cannot generate from an empty prompt. Add content using withText() or similar methods.');
    }
    $firstMessage = reset($this->messages);
    if (!$firstMessage->getRole()->isUser()) {
        throw new InvalidArgumentException('The first message must be from a user role, not from ' . $firstMessage->getRole()->value);
    }
    $lastMessage = end($this->messages);
    if (!$lastMessage->getRole()->isUser()) {
        throw new InvalidArgumentException('The last message must be from a user role, not from ' . $lastMessage->getRole()->value);
    }
    if (empty($lastMessage->getParts())) {
        throw new InvalidArgumentException('The last message must have content parts. Add content using withText() or similar methods.');
    }
}