Больше статей от наших разработчиков

Как мы пытались автоматизировать написание статей через ChatGPT.

Как мы пытались автоматизировать написание статей через ChatGPT

После того как пропал копирайтер, занимавшийся статьями для нашего сайта, мы решили немного повременить с поиском нового. При этом выделить время на изучение способностей ChatGPT.

Эта статья о том как мы обучали чат написанию статей в требуемом формате. С какими проблемами столкнулись и как их решали. Сразу скажу здесь не будет истории о том какой замечательный ChatGPT. Скорее наоборот – это история о том что его способности сильно переоценивают. Что-же давайте начнем!

Референс

Поскольку у нас уже был опыт работы с ChatGPT, то иллюзий о том, что сейчас мы скормим ему поисковый запрос и он напишет статью, которую можно смело будет публиковать в блог на сайт не было. Поэтому первое, что было сделано – это выбрана уже написанная статья, чтобы в последствии можно было сравнивать результат, полученный с помощью чата.

Сразу нужно сказать статья написана далеко не самым дорогим копирайтером и не претендует для публикации в такие сообщества как Хабр или VC, однако копирайтер передал базовую суть и смог более-менее нативно вставить ключевые слова.

Таким образом мы пытаемся с помощью чата написать статью относительно низкого уровня, при этом чтобы она отвечала на базовые вопросы не самых требовательных читателей (новичков). Это к слову о том, что изначально не было иллюзий, якобы чат заменит хорошего копирайтера.

Требования

Давайте подрезюмируем что мы хотим получить на выходе:

  • 1.
    Нужно по заданному ключевому запросу генерировать статью среднего или низкого качества.
  • 2.
    Статья должна включать в себя необходимое число ключевых слов.
  • 3.
    Статья должна выглядеть так, будто она написана человеком. То есть это не должна быть портянка текста с перечислением характеристик.
  • 4.
    Текст должен (по необходимости) содержать картинки, списки и таблицы.
  • 5.
    Время взаимодействия с ChatGPT для создания статьи по ключевому запросу должно быть сопоставимо с временем, которое тратиться на взаимодействие с копирайтером.

Проблемы и их решение

Начну с того почему нельзя просто так попросить GPT написать статью по ключевому запросу.

Любая более-менее адекватная статья – это 8-10 тыс. символов. Можно конечно уместить свою мысль и в 5 и даже в 2 тыс. (Но это уже больше формат постов в социальных сетях). При всем этом сколько бы вы не просили ИИ написать статью длиной 10 тыс. символов - он этого не сделает. При этом чат GPTбудет уверять вас, что никаких ограничений на это нет и что он может написать текст любой длины, но в реальности нам не удалось выдавить больше 4 тыс. символов на 1 запрос. А поскольку, при генерации текста, ИИ создает законченный контент (в котором есть заголовок, основа и вывод), то увеличить размер, написав вторым запросом “continue”, не получается, т.к у вы просто получите 2 не связанных отрывка (пусть даже с одинаковой темой).

Поэтому был сделан вывод: чтобы ChatGPT создал длинный, осмысленный текст, нужно по отдельности сгенерировать несколько модулей(заголовков), после чего объединить их в одно целое. Такой подход не только позволяет создать текст потенциально любой длины, но и более быстрый и гибкий, т.к если вам что-то не понравилось и вы хотите попросить бота переписать часть статьи, то не нужно ждать пока чат перепишет все. Вы работаете с небольшими модулями.

Создание плана статьи

Т.к мы согласились с тем что, наш текст будет состоять из модулей, то первый шаг в создании такого текста – это создать структуру из заголовков и подзаголовков, по которым в дальнейшем будет создаваться сам текст.

Для этого создадим отдельный чат, назовем его “Create plan” и попросим чат о следующем:


    Create a plan of article about <H1> with first, second, and third-level headings
    

где H1 –это основной ключевой запрос, тема нашей статьи.

И нужно сказать, что с созданием плана статьи ChatGPT справляется на ура. Структура и правда выглядит годной и местами даже всплывают интересные темы, о которых сам не против прочесть.

Для более качественного результата можно несколько раз перегенерировать результат и слепить что-то из разных вариантов ответа.

Написание основного текста статьи

Итак, мы получили план теперь нужно попросить бота написать нам текст для каждого подзаголовка нашего плана. После долгих испытаний и различных вариаций запросов вы пришли к следующему сниппету:


    Reveal topic <H2>.
    1. Text have to look like one man tells it to other man. 
    2. Add technical details and usage examples for sub-topics (Do not use difficult terms and if you have to add such term in text, then provide detailed explanation, so even any child understand it) 
    3. Don't add much emotional details.
    4. Add images or lists or tables (only if it suitable for context, if not omit it)
    5. Text have to include following sub-topics: 
    a) <H3>
    b) <H3>
    

Любознательный читатель может сам перевести что здесь написано, я же в свою очередь опишу как ChatGPT справляется с такой задачей.

Справляется с одной стороны неплохо и действительно текст получается более-менее живым. Однако если с первым подзаголовком все работает хорошо, то с последующими бот начинает раскрывать каждый подзаголовок, будто это отдельная статья, что очевидно нам не подходит, т.к нам нужно чтобы все подзаголовки были еще и связаны между собой.

Связь нескольких подзаголовков

Чтобы чат понимал что каждый новый запрос это продолжение, а не новая статья, нужно указать ему это. Для этого при генерации первого заголовка изменим начало сниппета следующим образом:


    I am going to write article about <project risk matrix> and will give you plan items of this article please reveal it.
    First item is <H2>. 
    Text have to fit following requirements:
    Text have to look like one man tells it to other man.
    …
    

Для всех остальных заголовков же нужно начинать со следующего предложения:


    2-nd item is <Understanding Project Risks>. 
    Text have to fit following requirements: 
    Text have to look like one man tells it to other man.
    …
    

При этом естественно, для каждого следующего заголовка нужно увеличивать номер (3-rd, 4-thи т.д)

Что в итоге

Текст создается, при этом он получается связанным, в плоть до того, что бывают проскакивают ссылки из одного подзаголовка в другой (что несомненно придает тексту реальности).

Чат также использует списки, причем довольно часто, а вот с таблицами и картинками проблема. И если таблицы еще иногда появляются, то картинки совсем уж редкость. Понятно, конечно что картинку он сгенерировать не может и изображение в тексте будет выглядеть просто как ссылка с подписью, но даже такой минималистичный вариант бот не любит использовать.

Теперь про минусы – чат хоть и раскрывает все темы, которые ты ему скармливаешь, но делает он это весьма поверхностно и даже когда ты специально просишь добавить деталей, он просто не понимает. Поэтому чтобы написать текст с интересными деталями нужна супер проработка темы, но если мы будем это делать, то весь автоматизм и экономия времени сходит на нет.

Второй момент, который нужно учитывать это то, что получившийся текст создается на английском. Можно конечно пользоваться и русским языком при создании запросов, но там результат совсем никакой. Поэтому приходится создавать текст на английском, а потом переводить его. И здесь мы сталкиваемся с еще одной проблемой.

Если вы когда-нибудь пытались переводить текст, то знаете, что не смотря на все гугл и яндекс переводчики с ИИ под капотом, перевод все еще получается не самый лучший. Смысл конечно понять можно, но любой русскоговорящий человек поймет, что что-то здесь не чисто. Поэтому нам опять нужно тратить время на редактуру переведенного текста.

В общем как вы могли догадаться эксперимент не удался, хоть и нельзя сказать что полностью провалился. Будем ждать обновлений, может даже Сбер нас в скором времени порадует своей разработкой.