Борем анкоры с ChatGPT. Подходит для GPT.3.5 и 4

даже на этапе генерации изображения, GPT решил надо мной подшутить

даже на этапе генерации изображения, GPT решил надо мной подшутить

Не умею начинать статьи Туториалы, поэтому поехали. Не так давно, ориентировочно в декабре. OpenAI запретила предоставлять ChatGPT (именно его веб-версии) и всем интерфейсам и кастомным GPT, работающим через API кликабельные анкоры. 

При этом, Сам веб-интерфейс этого условно не понимает (не понимает, что он разучился генерировать ссылки). И продолжает генерировать некликабельные пустые ссылки. Эта проблема активно освещается на форуме OpenAI, и что мы знаем на текущий момент:

  1. Это нововведение сделано умышленно, в целях безопасности.

  2. Его не собираются исправлять.

  3. При использовании BingChat эта проблема не встречается.

При этом у многих это вызывает беспокойство. Есть несколько методов решения этой проблемы, я постараюсь их описать. А в конце добавлю набор промптов, который полностью решает проблему не кликабельных анкоров без использования HTML контейнеров. Без использования модуля Browser, и позволяет заанкоривать текст, так как это работало до нововведения

Оффтоп: Зачем вообще нужно анкоривание текста при помощи ИИ

Я не буду обсуждать вопросы этичности, и/или вопросы целесообразности и безопасности. Я расскажу простой пример. Периодически, в качестве хобби, я пишу гайды для игроков в World of Warcraft. К примеру, гайды на классы персонажей. 

В этих гайдах, мне нужно полностью расписать ротацию какого-нибудь класса (не с точки зрения базы, а какие-то тонкости). Обычно. Это 20–30 умений, повторяющейся 3–4 раза за текст. Итого, мне нужно поместить в один текст, примерно 100 ссылок на wowhead (чтобы сделать хайлайт способности).

И вот такого 100 штук. В каждом гайде

И перекладывание таких мелочей, очень сильно упрощает работу. Особенно, если учитывать, что база с ссылками есть как в 4-ой модели, так и в третьей. И она безошибочно, может помнить все скиллы World of Warcraft до текущего дня.

Опять-же, это только малая часть того, где может пригодится заанкоривание при помощи Chat GPT.

Проблематика

В чем суть проблемы. GPT умеет искать информацию в интернете, и/или брать ссылки из своей базы. Но из-за проблем безопасности, связанной с генерацией фишинговых ссылок, и приклеивании их к изображениям, полученным при помощи Dall-e, OpenAI, ограничило генерацию любых анкоров.

Вроде бы все хорошо...

Вроде бы все хорошо…

При этом, сам робот об этом не знает. Ограничение не касается всех ссылок. Оно касается только ссылок, со знаком »=». Более простые ссылки, и анкоры на них продолжают работать.

...Но есть один нюанс

…Но есть один нюанс

При этом, если сгенерировать ссылку без »=», то шансы получения анкора 50/50. В реальной работе, то генерирует, то не генерирует ссылки. 

Как решают проблему в интернете

На форумах OpenAI на момент написания статьи, было предложено несколько вариантов.

  1. Обход через browser модуль, находится в разделе customGPT. Проблема в том, что крайне неудобен в работе, и за 1 запрос можно получить 1 ссылку. И есть вероятность потерять промпт впустую (что особенно важно при ограничении в 40 промптов на 3 часа).

  2. Использовать ссылки без »=»

  3. Просить ссылку в HTML формате.

  4. Provide me link without Title

При этом, сами OpenAI игнорируют проблему на форумах, поэтому даже эти пути решения очевидно.

Web-модуль

с учетом скорости генерации GPT 4 без TURBO, очень долгий процесс, и вручную заанкорить будет проще

с учетом скорости генерации GPT 4 без TURBO, очень долгий процесс, и вручную заанкорить будет проще

Подходит в том случае, когда действительно нужно что-то загуглить (с использованием bing). И получить кликабельные ссылки на источник.

Но, требует сильно много промптов… Плюс время пока он генерирует информацию. Плюс не подходит для GPT 3.5. потому что, у GPT 3.5 turbo нет подключенного модуля web-browser.

Ссылки без использования »=»

Самый простой и безотказный способ. Работает всегда. Работает везде. Но может ломаться на длинных ссылках, или на ссылках, которая интерпретирует Кириллицу (типа wiki), потому что может стригерится об какой-то из служебных символов. На практике, выяснить о какой. Не выходит.

Получение ссылки в HTML формате

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

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

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

удобно, если вы собираетесь вставлять анкор сразу в HTML редактор

удобно, если вы собираетесь вставлять анкор сразу в HTML редактор

Его уже можно вставлять и оперировать.

НО! Есть одно маленькое, «НО!» это все еще неактивные, некликабельные ссылки. 

Provide me link, without title

Спойлер. На базе этого метода мы будем получать активные кликабельные ссылки.

Самый простой способ, это попросить сначала GPT что-то проверить. А в дальнейшем, попросить предоставить линк без тайтла. Учитывая что GPT помнит о существовании ссылки, и не может предоставлять все html адреса.

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

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

Чем это отличается от того, что было описано ранее в Web-модуле? Особо ничем, кроме того, что мы получаем ссылки не через гугление (бингование), а те, которые есть у него в базе. 

К примеру, ранее упомянутые ссылки на wowhead. Или даже сгенерированные ссылки под какие-то специфические вещи.

Очевидное, но невероятное

А теперь, к тому, ради чего вся статья затевалась. Шутка заключается в том, что ChatGPT, обрезает только ту часть ссылки, которая видна пользователю. В рамках памяти чат сессии, сама ссылка сохраняется. Т.к. придуманная OpenAI глушилка, искусственная, и налепленая поверх всего.

Т.е. сама модель отдает полный анкор. И продолжает их отдавать. А значит, можно попросить её при помощи фокуса из предыдущего раздела (provide me links, without Title) отдавать текстовые ссылки.

Дальше, я раньше, вручную вставлял ссылки в текст, создавая анкоры вручную. Пока не столкнулся с интересным моментом.

Воспользовавшись Старой чат сессией, где я анализировал HTML код (для другой задачи) я попросил сгенерировать ссылку в той чат сессии, и каково же было мое удивление, когда она стала неожиданно кликабельной. При помощи различных манипуляций, и сотни потраченных промптов выяснилось.

Что если ссылка, была предоставлена не роботом, а пользователем, то GPT, может создавать с ней активные анкоры.

08a2e0b7047de50d3b79c9ba879e78a0.png

И все стало на свои места…

Элегантное решение.

Шаг 1. В рамках работы, просим ChatGPT, что-то, на что-то заанкорить. Получаем текст, слово, таблицу (в зависимости от того, что нужно.) Но без активной ссылки.

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

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

Шаг 2. Просим предоставить список всех используемых ссылок в формате. (provide me link, no title).

66346236aa783dc9160c014ed9c9d9b4.png

Шаг 3. Просим наложить Эти ссылки, обратно на текст.

524cc1498b978ee90cb4051dc362e0ca.png

Шаг 4…

Шаг 5. Profit!

а вот собственно ради чего мы это все заводили

а вот собственно ради чего мы это все заводили

Итоги

Да, я признаюсь, я несколько растянул эту статью, и она могла бы быть значительно короче. Но если предоставить самое простое и очевидное решение, без описания самой проблематики, оно не было бы столь ценно. И при этом, если вы заглянете на официальный сайт OpenAI, вы увидите, как десятки и десятки пользователей, продолжают бессмысленную борьбу с ChatGPT, когда проблема решается в 3 промпта. 

П.С. И да, если GPT 3.5. по какой-то причине начинает рассказывать вам о том, что он не может генерировать ссылки. Не верьте ему. Всё он может. Просто возможно придется сделать пару дополнительных ходов, перед тем как вы подберете подходящий промпт, при котором он будет генерировать ссылки.

Пруф о том, что и gpt 3.5. тоже умеет в анкоры

Пруф о том, что и gpt 3.5. тоже умеет в анкоры

© Habrahabr.ru