2declare(strict_types=1);
6use Bitrix\AI\Chatbot\Dto\MessageDto;
7use Bitrix\AI\Chatbot\Message\DefaultMessage;
8use Bitrix\AI\Chatbot\Message\Message;
9use Bitrix\AI\Chatbot\Message\SystemMessage;
18 protected const BOT_CODE =
'site_with_ai_change_block';
22 $this->sendAnswer($chatId,
new DefaultMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_WELCOME')));
23 $this->stopWriting($chatId,
false);
37 if (is_array($command))
39 $commandName = is_string($command[0]) ? $command[0] :
null;
40 $commandParams = is_array($command[1]) ? $command[1] : [];
42 if ($commandName === ChatBotCommands::restartGeneration->value)
44 $this->handleRestartGenerationCommand(
$message, $commandParams);
56 $this->startWriting($chatId);
67 $generationId =
$params[
'generationId'] ?? 0;
68 if ($generationId <= 0)
74 if ($generation->initById($generationId))
76 $generation->clearErrors()->execute();
80 new DefaultMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_GENERATION_RESTART')),
84 $this->stopWriting($chatId,
false);
95 $messages = $this->getMessages($chatId, 1);
97 $startMessage = Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_WELCOME');
100 || $prevMessage->content !== $startMessage
103 $this->sendAnswer($chatId,
new DefaultMessage($startMessage));
117 new DefaultMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_NEED_SELECT_BLOCK_MESSAGE'))
119 $this->stopWriting($chatId,
false);
132 new DefaultMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_SELECT_BLOCK_SUCCESS'))
134 $this->stopWriting($chatId);
145 $this->sendAnswer($chatId,
146 new DefaultMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_SELECT_BLOCK_WRONG')));
147 $this->stopWriting($chatId,
false);
159 $this->stopWriting($chatId);
167 $errorText =
$message->params[
'errorText'] ??
'';
168 $answer =
new SystemMessage($errorText);
171 Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_RETRY_GENERATION_BUTTON'),
172 Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_RETRY_GENERATION_BUTTON'),
173 ChatBotCommands::restartGeneration->value,
175 'generationId' =>
$message->generationId ??
null,
187 $answer =
new SystemMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_ERROR_RESTRICTED_REQUEST'));
189 Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_START_OVER_BUTTON'),
190 Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_START_OVER_BUTTON'),
193 'generationId' =>
$message->generationId ??
null,
205 $answer =
new SystemMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_ERROR_VENDOR'));
207 Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_RETRY_GENERATION_BUTTON'),
208 Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_RETRY_GENERATION_BUTTON'),
209 ChatBotCommands::restartGeneration->value,
211 'generationId' =>
$message->generationId ??
null,
223 $answer =
new SystemMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_ERROR_B24'));
225 Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_RETRY_GENERATION_BUTTON'),
226 Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_RETRY_GENERATION_BUTTON'),
227 ChatBotCommands::restartGeneration->value,
229 'generationId' =>
$message->generationId ??
null,
241 return new DefaultMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_GENERATION_START'));
249 return new DefaultMessage(Loc::getMessage(
'LANDING_CHATBOT_BLOCKS_GENERATION_FINISH'));
onMessageAdd(MessageDto $message, ?array $command=null)
onChatStart(int $chatId, array $parameters=[])
sendWelcomeMessage(ChatBotMessageDto $message)
sendGenerationEndMessage(ChatBotMessageDto $message)
getB24ErrorMessage(ChatBotMessageDto $message)
sendNeedSelectBlockMessage(ChatBotMessageDto $message)
getQuotaExceededMessage(ChatBotMessageDto $message)
getStartGenerationMessage()
sendSelectBlockSuccessMessage(ChatBotMessageDto $message)
sendSelectBlockWrongMessage(ChatBotMessageDto $message)
getFinishGenerationMessage()
getVendorErrorMessage(ChatBotMessageDto $message)
getRestrictedRequestMessage(ChatBotMessageDto $message)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']