One Hat Cyber Team
  • Dir : ~/www/wwwroot/mydetails.biz/app/Http/Controllers/
  • Edit File: AiTemplateController.php
    '; } $html.='
    '; } return response()->json( [ 'success' => true, 'tone'=>$template->is_tone, 'template' => $html, ] ); } public function aiGenerate(Request $request) { if ($request->ajax()) { $post = $request->all(); unset($post['_token'], $post['template_name'], $post['tone'], $post['ai_creativity'], $post['num_of_result'], $post['result_length']); $data = array(); $key_data = DB::table('settings')->where('name', 'chatgpt_key')->first(); if ($key_data) { $open_ai = new OpenAi($key_data->value); } else { $data['status'] = 'error'; $data['message'] = __('Please set proper configuration for Api Key'); return $data; } $aiCustomTemplate = ''; $model = ''; $text = ''; $max_tokens = ''; $counter = 1; $template = Template::where('id', $request->template_name)->first(); if ($request->template_name) { $required_field = array(); $data_field = json_decode($template->field_json); foreach ($data_field->field as $val) { request()->validate([$val->field_name => 'required|string']); } $aiCustomTemplate = $template->prompt; foreach ($data_field->field as $field) { $text_rep = "##" . $field->field_name . "##"; if (strpos($aiCustomTemplate, $text_rep) !== false) { $field->value = $post[$field->field_name]; $aiCustomTemplate = str_replace($text_rep, $post[$field->field_name], $aiCustomTemplate); } if ($template->is_tone == 1) { $tone = $request->tone; $param = "##tone_language##"; $aiCustomTemplate = str_replace($param, $tone, $aiCustomTemplate); } } } $lang_text = "Provide response in " . $request->language . " language.\n\n "; $max_tokens = (int) $request->result_length; $max_results = (int) $request->num_of_result; $temperature = (float) $request->ai_creativity; $complete = $open_ai->completion([ 'model' => 'text-davinci-003', 'prompt' => $aiCustomTemplate . ' ' . $lang_text, 'temperature' => $temperature, 'max_tokens' => $max_tokens, 'n' => $max_results ]); $response = json_decode($complete, true); if (isset($response['choices'])) { if (count($response['choices']) > 1) { foreach ($response['choices'] as $value) { $text .= $counter . '. ' . ltrim($value['text']) . "\r\n\r\n\r\n"; $counter++; } } else { $text = $response['choices'][0]['text']; } $tokens = $response['usage']['completion_tokens']; $data = trim($text); return $data; } else { $data['status'] = 'error'; $data['message'] = __('Text was not generated, please try again'); return $data; } } } }