function ai_news_process_generation($request) { // Тут ключ тепер буде від Anthropic (Claude), але для простоти залишимо ту саму назву поля в налаштуваннях $api_key = get_option('groq_api_key'); if (!$api_key) return new WP_Error('no_key', 'API ключ не задано.', ['status' => 400]); $source_text = sanitize_textarea_field($request->get_param('source_text')); // Промпт залишаємо вашим $system_prompt = "Уяви, що ти досвідчений журналіст. Твоє завдання — написати розгорнуту, глибоку та детальну новину на основі наданого тексту. Не економ слова. Додай бекграунд (передісторію) та контекст, щоб матеріал був об'ємним (мінімум 4-5 розгорнутих абзаців основного тексту). Тон нейтральний, лексика вільна, без списків у тілі новини. Заголовок зроби коротким, цікавим, без двокрапок, в новинному стилі (суворо уникай метафор та уособлень, предмети та явища не можуть виконувати людські дії). Весь текст має бути оптимізований для SEO та AI Engine Optimisation, але максимально гуманізований. Після тексту створи мета-опис для цієї новини, нейтральну підводку в новинному форматі без закликів з хештегами для сторінки у твіттер та головні тези списком. Українською мовою. При написанні тексту уникай перехідних слів, конструкцій на кшталт «на завершення» чи «загалом», негативних паралелізмів. Відповідь надай СУВОРО у форматі JSON за такою структурою (без жодного іншого тексту чи маркдаун-розмітки): { \"title\": \"Заголовок новини\", \"theses\": \"\", \"body\": \"

Абзац 1

Абзац 2

Абзац 3

Абзац 4

\", \"meta_desc\": \"Текст мета-опису\", \"twitter\": \"Текст підводки\" }"; // Запит до API Anthropic (Claude) $response = wp_remote_post('https://api.anthropic.com/v1/messages', [ 'headers' => [ 'x-api-key' => $api_key, 'anthropic-version' => '2023-06-01', 'content-type' => 'application/json', ], 'body' => wp_json_encode([ 'model' => 'claude-3-5-sonnet-20241022', // Найкраща модель Claude на даний момент 'max_tokens' => 4000, 'system' => $system_prompt, 'messages' => [ ['role' => 'user', 'content' => "Текст для опрацювання:\n" . $source_text] ], 'temperature' => 0.5, ]), 'timeout' => 90 ]); if (is_wp_error($response)) return $response; $body = wp_remote_retrieve_body($response); $data = json_decode($body, true); // Перевірка формату відповіді Claude if (!isset($data['content'][0]['text'])) { return new WP_Error('api_error', 'Помилка API Claude', ['status' => 500]); } $raw_content = $data['content'][0]['text']; // Очищення від Markdown, якщо Claude його все ж додасть $raw_content = preg_replace('/^```json\s*/i', '', $raw_content); $raw_content = preg_replace('/ ```$/', '', $raw_content); $result = json_decode(trim($raw_content), true); if (!$result) { return new WP_Error('json_error', 'ШІ повернув невірний формат даних.', ['status' => 500]); } // Формуємо фінальний HTML $final_html = "

" . $result['title'] . "

"; $final_html .= "

Головні тези

" . $result['theses']; $final_html .= "

Тіло новини

" . $result['body']; $final_html .= "

Мета-опис

" . $result['meta_desc'] . "

"; $final_html .= "

Підводка в твіттер

" . $result['twitter'] . "

"; return rest_ensure_response(['content' => $final_html]); } дипломатія
back to top
HomeTagsдипломатія

Tag: дипломатія

Останні новини