One Hat Cyber Team
  • Dir : ~/www/wwwroot/softpos.com.ng/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; } $prompt = ''; $model = ''; $text = ''; $ai_token = ''; $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']); } $prompt=$template->prompt; foreach ($data_field->field as $field) { $text_rep="##".$field->field_name."##"; if(strpos($prompt,$text_rep) !== false) { $field->value=$post[$field->field_name]; $prompt=str_replace($text_rep,$post[$field->field_name],$prompt); } if($template->is_tone==1) { $tone=$request->tone; $param="##tone_language##"; $prompt=str_replace($param,$tone,$prompt); } } } $lang_text = "Provide response in " . $request->language . " language.\n\n "; $ai_token = (int)$request->result_length; $max_results = (int)$request->num_of_result; $ai_creativity = (float)$request->ai_creativity; $complete = $open_ai->completion([ 'model' => 'text-davinci-003', 'prompt' => $prompt.' '.$lang_text, 'temperature' => $ai_creativity, 'max_tokens' => $ai_token, 'n' => $max_results ]); // dd($complete); $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; } } } }