if ( ! function_exists( 'get_chatgpt_responce' ) ) {
/**
* Returns query result or error
*
* @param string $question Text API question.
* @param string $promt Text API promt (for chat).
* @param string $model API model.
* @param string $api_key API key.
*
* @return void
*/
function get_chatgpt_responce( $question = null, $promt = null, $model = 'gpt-3.5-turbo', $api_key = 'sk-le000000000000000000000000000000000000' ) {
if ( is_null( $question ) ) {
return null;
}
$type = 'text';
if ( $model === 'davinci-codex' ) {
$type = 'codex';
}
if ( in_array( $model, array( 'gpt-4', 'gpt-4-0314', 'gpt-4-32k', 'gpt-4-32k-0314', 'gpt-3.5-turbo', 'gpt-3.5-turbo-0301' ), true ) ) {
$type = 'chat';
}
$headers = "Content-Type: application/json\r\n" . "Authorization: Bearer " . $api_key . "\r\n";
$params = array(
'model' => $model,
'temperature' => 0.7,
'top_p' => 1,
);
if ( $type === 'chat' ) {
$url = 'https://api.openai.com/v1/chat/completions';
$params['n'] = 1;
if ( ! is_null( $promt ) ) {
$params['messages'][] = array(
'role' => 'system',
'content' => $promt,
);
}
$params['messages'][] = array(
'role' => 'user',
'content' => $question,
);
} elseif( $type === 'codex' ) {
$url = 'https://api.openai.com/v1/engines/davinci-codex/completions';
$params['prompt'] = $question;
$params['max_tokens'] = 4096 - iconv_strlen( $question );
} else {
$url = 'https://api.openai.com/v1/completions';
$params['prompt'] = $question;
$params['max_tokens'] = 4096 - iconv_strlen( $question );
}
$args = array(
'method' => 'POST',
'timeout' => 240,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => $headers,
'body' => json_encode( $params ),
'sslverify' => true,
);
$response = wp_remote_request( $url, $args );
if ( is_wp_error( $response ) ) {
$notification = $response->get_error_message();
} elseif ( in_array( wp_remote_retrieve_response_code( $response ), array( 400, 401, 403, 404 ), true ) ) {
$body = json_decode( wp_remote_retrieve_body( $response ), true );
$notification = $body['error']['message'];
} elseif ( wp_remote_retrieve_response_code( $response ) === 200 ) {
$body = json_decode( wp_remote_retrieve_body( $response ), true );
$notification = 'Расход GPT токенов: ' . $body['usage']['total_tokens'] . '. Причина остановки: ' . $body['choices'][0]['finish_reason'];
if ( $type === 'chat' ) {
return $body['choices'][0]['message']['content'];
} else {
return $body['choices'][0]['text'];
}
}
if ( function_exists( 'telegram_notification' ) ) {
telegram_notification( $notification );
}
return false;
}
}
$query = 'Write a list frequently asked questions about the get_the_title() WordPress function.';
$chatgpt = get_chatgpt_responce( $query );
var_dump( $chatgpt ); Чтобы заказчик закидывал деньги на сайт, они сохранялись на сайте, и потом выводились в кошелек фрилансера,
Однако хостинг-провайдерам приходилось в свое время оформлять телематическую лицензию, поскольку наряду с базовыми услугами размещения сайтов провайдеры также предлагают сопутствующие услуги, прописанные в законе «О связи»: предоставление услуг электронной почты и т.д.
Деятельность по обработке данных, предоставление услуг по размещению информации и связанная с этим деятельность
Эта группировка включает:
- создание инфраструктуры для хостинга;
- услуги в области обработки данных и деятельность, связанную с обработкой данных;
- проведение специальных действий, таких как: web-хостинг, услуги потоковой передачи данных;
- интерактивное предоставление программного обеспечения (предоставление прикладного хостинга, предоставление прикладных программ);
- услуг приложений;
- общее предоставление распределенных по времени технических компьютерных средств заказчикам;
- обработку данных: полную обработку данных, предоставленных заказчиком;
- создание специальных отчетов на основании данных, предоставленных заказчиком;
- предоставление услуг по вводу данных
Эта группировка не включает:
- деятельность, в которой пользователь использует компьютеры только в качестве инструмента, она должна быть отнесена к группировке в соответствии с характером оказываемых услуг
В соответствии с пунктом 18 статьи 2 Федерального закона от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» под провайдером хостинга понимается лицо, оказывающее услуги по предоставлению вычислительной мощности для размещения информации в информационной системе, постоянно подключенной к сети «Интернет». Указанные услуги не являются услугами связи.
log_format строку $host:$server_port, и увидите, что все эти боты ломятся не по доменному имени (они его не знают), а исключительно по IP-адресу. Потому что они сканируют весь Интернет 0.0.0.0/0 на уязвимости, вдруг где чего можно взломать...listen 80 default_server; server_name _; location / { return 403; }