Blog. Just Blog

Работа с сервисом Пересказ YandexGPT на PHP

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Web-мастеру и не только | Автор: ManHunter
Работа с сервисом Пересказ YandexGPT на PHP
Работа с сервисом Пересказ YandexGPT на PHP

Пересказ YandexGPT или нейросеть "300" от Яндекса - это бесплатный сервис, который преобразует переданную ему информацию в набор кратких тезисов. Просто вводите в специальном поле текст, ссылку на web-страницу или видеоролик на YouTube, после чего сервис возвращает краткое содержание web-страницы, видеоматериала или введенного текста. При этом даже выполняется перевод текста на русский язык. Удобно, чтобы не тратить время на просмотр видео или пролистывание кучи информации.

Вручную обрабатывать данные хорошо, но главная прелесть сервиса в том, что у него есть API для автоматической обработки ссылок. Чтобы начать работу с API надо авторизоваться на Яндексе и получить токен для доступа (ссылочка "API" в левом нижнем углу страницы сервиса). Есть некоторые ограничения и недостатки. Через API нельзя передавать текст, только ссылки. В случае успешной обработки возвращается не набор структурированных данных, а ссылка на результат. Полученный результат фиксируется и закрепляется за исходной ссылкой, то есть при изменении контента на странице, повторно она обрабатываться не будет. А еще, по опыту работы с другими сервисами Яндекса, токен авторизации имеет привычку слетать в самое неподходящее время.

Таким образом, автоматическая работа с сервисом производится в два этапа. Сперва отправляем ссылку для обработки, в случае успеха получаем ссылку на результат, затем загружаем страницу с результатом и парсим ее собственными силами, извлекая название и краткое содержание. Скрипт на PHP будет выглядеть примерно так:
  1. // Ссылка с исходной информацией
  2. $url='https://exmaple.com/page.html';
  3. // Токен авторизации
  4. $token='11_222222222222222222222-33333333333-444444444444444444';
  5.  
  6. // Обратиться к сервису
  7. $ch=curl_init();
  8. curl_setopt($chCURLOPT_URL'https://300.ya.ru/api/sharing-url');
  9. curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  10. curl_setopt($chCURLOPT_HEADERfalse);
  11. curl_setopt($chCURLOPT_POSTtrue);
  12. curl_setopt($chCURLOPT_POSTFIELDSjson_encode(array('article_url'=>$url)));
  13. curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
  14. curl_setopt($chCURLOPT_HTTPHEADER, array(
  15.     'Authorization: OAuth '.$token,
  16.     'content-type: application/json',
  17. ));
  18. $result=curl_exec($ch);
  19. curl_close($ch);
  20.  
  21. // Запросить страницу с пересказом
  22. if ($json=json_decode($result,true)) {
  23.   if (isset($json['status']) && $json['status']=='success') {
  24.     $ch=curl_init();
  25.     curl_setopt($chCURLOPT_URL$json['sharing_url']);
  26.     curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  27.     curl_setopt($chCURLOPT_HEADERfalse);
  28.     curl_setopt($chCURLOPT_POSTfalse);
  29.     curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
  30.     $result=curl_exec($ch);
  31.     curl_close($ch);
  32.  
  33.     preg_match('/<title>Пересказ YandexGPT: ([^<]+)</isu',$result,$title);
  34.     preg_match('/<meta name="description" content="([^"]+)">/isu',$result,$desc);
  35.  
  36.     // Заголовок и краткий пересказ
  37.     $short_title=htmlspecialchars_decode($title[1]);
  38.     $short_text=htmlspecialchars_decode(str_replace("\n ","\n",$desc[1]));
  39.  
  40.     echo $short_title."\n".$short_text;
  41.   }
  42.   else {
  43.     // ошибка
  44.   }
  45. }
  46. else {
  47.   // ошибка
  48. }
В этой реализации, к сожалению, есть потенциально слабое место. При частом обращении к своим страницам Яндекс вываливает капчу, так что для активной работы может потребоваться пачка проксей. Пока с капчей я не сталкивался, но это только на указанном сервисе, на других капча вываливается при любом неосторожном движении.

Поделиться ссылкой ВКонтакте
Просмотров: 932 | Комментариев: 3

Метки: PHP, Яндекс

Комментарии

Отзывы посетителей сайта о статье
ManHunter (22.03.2024 в 16:19):
Апи только для получения ссылки, она никакой практической ценности не представляет. А вот текст уже извлекается парсингом со всеми возможными рисками и последствиями.

ЦитатаПо статьям только принудительный парсинг человеческих страниц вижу.

Статьями работа не ограничивается. Не все и не всегда можно вываливать на паблик хотя бы потому, что на этом делается денежка.
Petya (22.03.2024 в 16:15):
ЦитатаПри частом обращении к своим страницам Яндекс вываливает капчу

В данном случае это было бы странно. API и предназначены для ботов, а наличие токена позволяет ограничивать более осмысленно, по типу "20 запросов на сутки на аккаунт". Или Вы и с другими API работали? По статьям только принудительный парсинг человеческих страниц вижу.
Grey (22.03.2024 в 11:11):
ДТ-75 хорош.

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0025 сек.) / Память: 4.75 Mb
Наверх