2declare(strict_types=1);
4namespace Bitrix\Landing\Copilot\Generation\Step;
6use Bitrix\Landing\Copilot\Connector\AI;
7use Bitrix\Landing\Copilot\Connector\AI\Prompt;
8use Bitrix\Landing\Copilot\Data\Site;
9use Bitrix\Landing\Copilot\Generation\Error;
10use Bitrix\Landing\Copilot\Generation\GenerationException;
11use Bitrix\Landing\Copilot\Generation\Markers;
12use Bitrix\Landing\Copilot\Generation\Type\Errors;
13use Bitrix\Landing\Copilot\Generation\Type\GenerationErrors;
14use Bitrix\Landing\Copilot\Generation\Type\RequestQuotaDto;
20 parent::__construct();
21 if (class_exists(self::getConnectorClass()))
32 return AI\Text::class;
45 $prompt =
new Prompt(
'landing_ai_data');
53 $result = $this->request->getResult();
57 Site::initSite($this->siteData,
$result);
74 $result = $this->request->getResult();
82 !isset(
$result[
'siteData'][
'isAllowedRequest'])
83 ||
$result[
'siteData'][
'isAllowedRequest'] !==
"yes"
92 !isset(
$result[
'siteData'][
'colors'])
93 && !isset(
$result[
'siteData'][
'titles'])
97 GenerationErrors::notFullyResponse,
98 "Missing required 'colors' or 'titles' in 'siteData'.",
static createError(?Errors $code=null)
static getSiteDataPromptMarkers(Data\Site $siteData)
static getRequestQuota(Site $siteData)
static getConnectorClass()