JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbrget(); return view('generate', compact('templateName')); } public function create_service($moduleName,$id) { $serviceid=$id; $templateName = Template::where('module',$moduleName)->get(); return view('generate_service', compact('templateName','serviceid')); } public function create_testimonial($moduleName,$id) { $testimonial_id=$id; $templateName = Template::where('module',$moduleName)->get(); return view('generate_testimonial', compact('templateName','testimonial_id')); } public function create_business($moduleName,$id) { $business_id=$id; $templateName = Template::where('module',$moduleName)->get(); return view('generate_business', compact('templateName','business_id')); } public function getKeywords(Request $request , $id){ $template = Template::find($id); $field_data=json_decode($template->field_json); $html =""; foreach ($field_data->field as $value) { $html.='
'; if($value->field_type=="text_box") { $html.=''; } if($value->field_type=="textarea") { $html.=''; } $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(); $modal_name = DB::table('settings')->where('name', 'chatgpt_modal_name')->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' => $modal_name->value, '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; } } } }