Работа с сервисом Пересказ YandexGPT на PHP
Работа с сервисом Пересказ YandexGPT на PHP
Пересказ YandexGPT или нейросеть "300" от Яндекса - это бесплатный сервис, который преобразует переданную ему информацию в набор кратких тезисов. Просто вводите в специальном поле текст, ссылку на web-страницу или видеоролик на YouTube, после чего сервис возвращает краткое содержание web-страницы, видеоматериала или введенного текста. При этом даже выполняется перевод текста на русский язык. Удобно, чтобы не тратить время на просмотр видео или пролистывание кучи информации.
Вручную обрабатывать данные хорошо, но главная прелесть сервиса в том, что у него есть API для автоматической обработки ссылок. Чтобы начать работу с API надо авторизоваться на Яндексе и получить токен для доступа (ссылочка "API" в левом нижнем углу страницы сервиса). Есть некоторые ограничения и недостатки. Через API нельзя передавать текст, только ссылки. В случае успешной обработки возвращается не набор структурированных данных, а ссылка на результат. Полученный результат фиксируется и закрепляется за исходной ссылкой, то есть при изменении контента на странице, повторно она обрабатываться не будет. А еще, по опыту работы с другими сервисами Яндекса, токен авторизации имеет привычку слетать в самое неподходящее время.
Таким образом, автоматическая работа с сервисом производится в два этапа. Сперва отправляем ссылку для обработки, в случае успеха получаем ссылку на результат, затем загружаем страницу с результатом и парсим ее собственными силами, извлекая название и краткое содержание. Скрипт на PHP будет выглядеть примерно так:
Code (PHP) : Убрать нумерацию
- // Ссылка с исходной информацией
- $url='https://exmaple.com/page.html';
- // Токен авторизации
- $token='11_222222222222222222222-33333333333-444444444444444444';
- // Обратиться к сервису
- $ch=curl_init();
- curl_setopt($ch, CURLOPT_URL, 'https://300.ya.ru/api/sharing-url');
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HEADER, false);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array('article_url'=>$url)));
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array(
- 'Authorization: OAuth '.$token,
- 'content-type: application/json',
- ));
- $result=curl_exec($ch);
- curl_close($ch);
- // Запросить страницу с пересказом
- if ($json=json_decode($result,true)) {
- if (isset($json['status']) && $json['status']=='success') {
- $ch=curl_init();
- curl_setopt($ch, CURLOPT_URL, $json['sharing_url']);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HEADER, false);
- curl_setopt($ch, CURLOPT_POST, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- $result=curl_exec($ch);
- curl_close($ch);
- preg_match('/<title>Пересказ YandexGPT: ([^<]+)</isu',$result,$title);
- preg_match('/<meta name="description" content="([^"]+)">/isu',$result,$desc);
- // Заголовок и краткий пересказ
- $short_title=htmlspecialchars_decode($title[1]);
- $short_text=htmlspecialchars_decode(str_replace("\n ","\n",$desc[1]));
- echo $short_title."\n".$short_text;
- }
- else {
- // ошибка
- }
- }
- else {
- // ошибка
- }
Просмотров: 932 | Комментариев: 3
Комментарии
Отзывы посетителей сайта о статье
Petya
(22.03.2024 в 16:15):
В данном случае это было бы странно. API и предназначены для ботов, а наличие токена позволяет ограничивать более осмысленно, по типу "20 запросов на сутки на аккаунт". Или Вы и с другими API работали? По статьям только принудительный парсинг человеческих страниц вижу.
Grey
(22.03.2024 в 11:11):
ДТ-75 хорош.
Добавить комментарий
Заполните форму для добавления комментария
Статьями работа не ограничивается. Не все и не всегда можно вываливать на паблик хотя бы потому, что на этом делается денежка.