dbfdg get(); return view('template.generate_ai', compact('templateName')); } 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','chat_gpt_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_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']); } $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_tokens = (int)$request->result_length; $max_results = (int)$request->num_of_result; $ai_creativity = (float)$request->ai_creativity; $modelName = Utility::getValByName('chat_gpt_model'); $complete = $open_ai->completion([ 'model' => $modelName ? $modelName : '', 'prompt' => $prompt.' '.$lang_text, 'temperature' => $ai_creativity, 'max_tokens' => $ai_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'] = $response['error']['message']; return $data; } } } //for grammar check public function grammar($moduleName) { $templateName = Template::where('module',$moduleName)->first(); return view('template.grammar_ai', compact('templateName')); } public function grammarProcess(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','chat_gpt_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; } $counter = 1; $prompt = "please correct grammar mistakes and spelling mistakes in this: . $request->description ."; $is_tone=1; $ai_tokens = strlen($request->description); $max_results = 1; $ai_creativity = 1.0; $modelName = Utility::getValByName('chat_gpt_model'); $complete = $open_ai->completion([ 'model' => $modelName ? $modelName : '', 'prompt' => $prompt, 'temperature' => $ai_creativity, 'max_tokens' => $ai_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'] = $response['error']['message']; return $data; } } } }