run(); #[Route('/api.php', 'POST')] function ok(array $args): void { $args = array_filter($args); global $json_cache; global $main; $dept = $args['dept'] ?? ''; $industry = $args['industry'] ?? ''; $name = $args['name'] ?? ''; $fields = $args['fields'] ?? ''; $prompt_file = $main->getConf('settings', 'prompt_file'); $prompt = file_get_contents(PROJECT_PATH . $prompt_file); $prompt = str_replace('${DEPT}', $dept, $prompt); $prompt = str_replace('${INDUSTRY}', $industry, $prompt); $prompt = str_replace('${NAME}', $name, $prompt); $prompt = str_replace('${FIELDS}', $fields, $prompt); // Connect to Open AI and pass code $aiKey = $args['ai_tok'] ?? $main->getConf('settings', 'gpt_key'); $openai = OpenAI::client($aiKey); $result = $openai->completions()->create([ 'model' => 'gpt-3.5-turbo-instruct', 'prompt' => $prompt, 'max_tokens' => 4097 - strlen($prompt), 'temperature' => 0.3, ]); $json = $result['choices'][0]['text']; $main->log($json); $form_desc = json_decode($json, true, 512, \JSON_THROW_ON_ERROR & \JSON_INVALID_UTF8_IGNORE & \JSON_OBJECT_AS_ARRAY); $main->log(json_encode($form_desc)); $fsApi = new FormstackAPI($main); $form = $fsApi->createForm($form_desc); header('Location: ' . $form['url'] ?? ''); }