5 интересных способов использования ChatGPT, о которых вы даже не подозревали

2 года назад·3 мин. на чтение

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

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

Помощь в тренировках

Этот ИИ может дать план для достижения цели, например, чтобы легко начать бегать, спросим его: “Я хочу пробежать 5 км за 3 месяца. Наметь рабочий план, чтобы я мог достичь этого” ChatGPT: Вот план бега, который поможет вам пробежать 5 км за 3 месяца:
  • Начните с ходьбы по 15–20 минут каждый день, чтобы развить выносливость и привыкнуть к регулярным упражнениям.
  • После недели ходьбы начните включать в свой распорядок короткие пробежки. Начните с бега трусцой по 1–2 минуты с перерывами на ходьбу. Постепенно увеличивайте продолжительность пробежек и сокращайте время, которое вы тратите на ходьбу.
  • Как только вы сможете бегать трусцой в течение 10 минут без остановки, начните увеличивать дистанцию ваших пробежек. Стремитесь пробежать 1 км без остановки, а затем постепенно увеличивайте дистанцию.
  • В дополнение к обычным пробежкам включите силовые тренировки и растяжку в свою программу, чтобы улучшить общую физическую форму и снизить риск получения травм.

Планы уроков для учителей

Что, если бы учителя могли перенести планирование уроков в ChatGPT? Пользователи попробовали спросить его об этом и вот что получили. Название урока: История и влияние искусственного интеллекта Цель: Учащиеся поймут историю и развитие искусственного интеллекта и смогут определить и обсудить потенциальное положительное и отрицательное влияние ИИ на общество. Материалы:
  • Хронология важных событий в истории ИИ
  • Примеры технологий и приложений ИИ
План урока:
  • Представьте тему искусственного интеллекта и объясните, что он относится к разработке компьютерных систем и алгоритмов, которые могут имитировать человеческий интеллект и поведение.
  • Покажите хронологию важных событий в истории ИИ и обсудите ключевые вехи и разработки в этой области.
  • Покажите примеры технологий и приложений ИИ и объясните, как они используются в различных отраслях и областях.
  • Обсудите потенциальное положительное и отрицательное влияние ИИ на общество, в том числе его потенциал для повышения производительности, эффективности и безопасности, а также его потенциал для создания новых проблем и проблем, таких как увольнение с работы и этические проблемы.

Идеи подарков

Еще один пользователь интернета не знал, что купить жене на Рождество и спросил об этом ChatGPT: Предложите идею подарка менее чем за 200 долларов для женщины средних лет, которая любит слушать The Eagles. Ответ: Одной из потенциальных идей подарка для женщины средних лет, которая любит The Eagles, является виниловая пластинка одного из их классических альбомов, таких как «Hotel California» или «The Long Run». В последние годы популярность виниловых пластинок возродилась, и многие любители музыки ценят уникальный звук и опыт прослушивания музыки на виниле. Вы также можете подумать о том, чтобы соединить виниловую пластинку с высококачественным проигрывателем для получения полного подарочного пакета. Этот тип подарка, скорее всего, оценят поклонники The Eagles, а сочетание виниловой пластинки и проигрывателя, вероятно, будет в рамках вашего бюджета в 200 долларов.

Объяснение сложных понятий

Другой пользователь интернета ввел в ChatGPT запрос: объясни мне квантовую физику, как если бы мне было 10 лет.
Ответ: Квантовая физика — это область науки, изучающая поведение крошечных частиц, таких как атомы и субатомные частицы. Эти частицы настолько малы, что не всегда следуют тем же правилам, что и вещи, которые мы видим и к которым прикасаемся каждый день.

Создание сценариев игр

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

Хуки useTransition и useDeferredValue в ReactJS 18

2 года назад·3 мин. на чтение

В React 18, релиз которого произошел в марте 2022, появилось много новых инструментов для написания производительных и отзывчивых приложений. Одним из заметных изменений является механизм рендеринга с новой ключевой концепцией: конкурентный рендеринг (concurrent rendering).

В этой статье повнимательнее рассмотрим два новых хука: useTransition() и useDeferredValue(). Эти два хука дают возможность определять приоритет обновления состояния, или, скорее, указывать, является ли обновление менее важным, чем другие, и откладывать его в пользу более срочных.
Какое обновление можно считать срочным, а какое обычным?
  • Срочные обновления: отражают прямое взаимодействие, такое как набор текста, клики, нажатия и т. д., т.е. то с чем взаимодействует пользователь. Когда вы вводите текст в поле ввода, вы хотите сразу увидеть введенный вами текст. В противном случае UI будет казаться медленным и подлагивать. Поэтому мы хотим сделать такие обновления приоритетным.
  • Обычные обновления: переход пользовательского интерфейса из одного вида в другой. Пользователи знают, что представление должно измениться или обновиться (например, когда ожидается ответ на запрос данных). Даже если есть небольшая задержка, это можно рассматривать как ожидаемое поведение, и это не будет восприниматься как медлительность приложения.
Итак, теперь подробнее рассмотрим эти два новых хука, объясним, когда их можно использовать, и посмотрим на конкретные примеры того, как их реализовать.

Хук useTransition() и функция startTransition()

До React 18 все обновления состояния помечались как "срочные". Это означает, что все обновления состояния обрабатывались одинаково с одинаковым приоритетом. С помощью useTransition() теперь можно пометить некоторые обновления состояния как несрочные.

Когда использовать useTransition() ?

Одним из примеров может быть список товаров с параметрами фильтрации. Когда вы переключаете чекбоксы, чтобы выбрать размер или цвет одежды, вы ожидаете, что чекбоксы сразу же отобразят отмеченное или снятое состояние. А сам список товаров, которые необходимо обновить согласно фильтрам, может быть отдельным и менее срочным обновлением.

Как использовать useTransition() ?

function App() {
 const [isPending, startTransition] = useTransition();
 const [searchQuery, setSearchQuery] = useState('');
 
 // запрос данных, который занимает некоторое время
 const filteredResults = getProducts(searchQuery);
 
 function handleQueryChange(event) {
   startTransition(() => {
     // оборачивая setSearchQuery() в startTransition(),
     // мы помечаем эти обновления как менее важные
     setSearchQuery(event.target.value);
   });
 }
 
 return (
   <div>
     <input type="text" onChange={handleQueryChange} />
 
     {isPending && <span>Loading...</span>}
     <ProductsList results={filteredResults} />
   </div>
 );
}

Хук useDeferredValue()

useDeferredValue() очень похож на useTransition() в том, что он позволяет отложить несрочное обновление состояния, но применяется его к части дерева. Это похоже методы debounce и throttle, которые мы часто используем для отложенных обновлений. React будет работать с такими обновлениями, как только завершатся срочные обновления.

Когда использовать useDeferredValue()?

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

Как использовать useDeferredValue() ?

function ProductsList({ results }) {
 // deferredResults получат обновленные данные
 // когда завершатся срочные обновления
 const deferredResults = useDeferredValue(results);
 
 return (
   <ul>
     {deferredResults.map((product) => (
       <li key={product.id}>{product.title}</li>
     ))}
   </ul>
 );
}

Итоги

Эти два новых хука позволяют сделать интерфейсы максимально отзывчивыми, даже в сложных приложениях с большим количеством повторных рендерингов, отдавая приоритет обновлениям, которые имеют решающее значение для взаимодействия с пользователем, и помечая некоторые другие как менее важные. Это не означает, что нужно оборачивать все состояния этими хуками. Их следует использовать в крайнем случае, если приложение или компоненты не могут быть оптимизированы другими способами (например, при помощи lazy loading’а, пагинации, веб-воркеров и т. д.).