| Server IP : 103.20.97.79 / Your IP : 216.73.217.78 Web Server : nginx/1.20.1 System : Linux ngoinhaweb 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : bepchaubkTW ( 1005) PHP Version : 8.3.21 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/bepchaubkTW/bepchauau365.vn/public_html/wp-includes/php-ai-client/src/Tools/DTO/ |
Upload File : |
<?php
declare (strict_types=1);
namespace WordPress\AiClient\Tools\DTO;
use WordPress\AiClient\Common\AbstractDataTransferObject;
/**
* Represents web search configuration for AI models.
*
* This DTO defines constraints for web searches that AI models can perform,
* including allowed and disallowed domains.
*
* @since 0.1.0
*
* @phpstan-type WebSearchArrayShape array{allowedDomains?: string[], disallowedDomains?: string[]}
*
* @extends AbstractDataTransferObject<WebSearchArrayShape>
*/
class WebSearch extends AbstractDataTransferObject
{
public const KEY_ALLOWED_DOMAINS = 'allowedDomains';
public const KEY_DISALLOWED_DOMAINS = 'disallowedDomains';
/**
* @var string[] List of domains that are allowed for web search.
*/
private array $allowedDomains;
/**
* @var string[] List of domains that are disallowed for web search.
*/
private array $disallowedDomains;
/**
* Constructor.
*
* @since 0.1.0
*
* @param string[] $allowedDomains List of domains that are allowed for web search.
* @param string[] $disallowedDomains List of domains that are disallowed for web search.
*/
public function __construct(array $allowedDomains = [], array $disallowedDomains = [])
{
$this->allowedDomains = $allowedDomains;
$this->disallowedDomains = $disallowedDomains;
}
/**
* Gets the allowed domains.
*
* @since 0.1.0
*
* @return string[] The allowed domains.
*/
public function getAllowedDomains(): array
{
return $this->allowedDomains;
}
/**
* Gets the disallowed domains.
*
* @since 0.1.0
*
* @return string[] The disallowed domains.
*/
public function getDisallowedDomains(): array
{
return $this->disallowedDomains;
}
/**
* {@inheritDoc}
*
* @since 0.1.0
*/
public static function getJsonSchema(): array
{
return ['type' => 'object', 'properties' => [self::KEY_ALLOWED_DOMAINS => ['type' => 'array', 'items' => ['type' => 'string'], 'description' => 'List of domains that are allowed for web search.'], self::KEY_DISALLOWED_DOMAINS => ['type' => 'array', 'items' => ['type' => 'string'], 'description' => 'List of domains that are disallowed for web search.']], 'required' => []];
}
/**
* {@inheritDoc}
*
* @since 0.1.0
*
* @return WebSearchArrayShape
*/
public function toArray(): array
{
return [self::KEY_ALLOWED_DOMAINS => $this->allowedDomains, self::KEY_DISALLOWED_DOMAINS => $this->disallowedDomains];
}
/**
* {@inheritDoc}
*
* @since 0.1.0
*/
public static function fromArray(array $array): self
{
return new self($array[self::KEY_ALLOWED_DOMAINS] ?? [], $array[self::KEY_DISALLOWED_DOMAINS] ?? []);
}
}