/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
frontend/controllers/data/RequestController.php
83 строки
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace frontend\controllers\data; use common\controllers\base\DataController; use common\forms\task\BaseTaskForm; use common\forms\user\ChatGPTTaskForm; use common\forms\user\RFIAssistantTaskForm; use common\helpers\ArrayHelper; use frontend\forms\ai\RequestAssistantForm; use frontend\forms\ai\RequestModelForm; use Yii; use yii\web\ForbiddenHttpException; /** * Контроллер запросов * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2024 */ class RequestController extends DataController { /** * by-model * * @return mixed */ public function actionSendModel() { $form = new ChatGPTTaskForm(); return $this->execute($form); } /** * by-assistant * * @return mixed */ public function actionSendAssistant() { if (!Yii::$app->user->can('sales')) { throw new ForbiddenHttpException(Yii::t('app', 'Access denied')); } $form = new RFIAssistantTaskForm(); return $this->execute($form); } /** * Выполнение самого запроса в GPT * @param BaseTaskForm $form * @return array * @throws \yii\db\Exception */ protected function execute($form) { $post = Yii::$app->request->post(); $request = ArrayHelper::getValue($post, 'Form.request'); $options = ArrayHelper::getValue($post, 'Form'); $form->text = [$request]; $form->options = $options; if ($form->save()) { $response = (array)$form->model; $status = 'OK'; } else { $response = [ 'response' => null ]; $status = 'Error'; } return ArrayHelper::merge([ 'status' => $status, ], $response ); } }