Создание React-приложения для анализа настроений с использованием OpenAI API

4
технологии 32.webp

Последнее обновление 20.03.2023 — Василий Иванов

Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

В цифровом ландшафте получение доступа к полезным данным, в частности к конкретной информации о ваших клиентах, может значительно опередить конкурентов.

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

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

По теме:  FaceTime не работает? 15 возможных исправлений, которые стоит попробовать

Введение в GPT

Generative Pre-trained Transformer (GPT-3) OpenAI — это большая языковая модель, обученная на огромных объемах текстовых данных, что дает ему возможность быстро генерировать ответы на любой введенный в него запрос. Он использует методы обработки естественного языка для понимания и обработки запросов — подсказок пользователей.

GPT-3 приобрел популярность благодаря своей способности обрабатывать запросы пользователя и отвечать в диалоговом формате.

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

Погрузитесь в анализ настроений с помощью GPT

Анализ настроений — это задача обработки естественного языка, которая включает в себя выявление и классификацию настроений, выраженных в текстовых данных, таких как предложения и абзацы.

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

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

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

Интегрированный расширенный классификатор твитов OpenAI

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

Например, если текст имеет положительный тон, API классифицирует его как «положительный», в противном случае он будет помечен как «отрицательный» или «нейтральный».

Кроме того, вы можете настроить категории и использовать более конкретные слова для описания настроений. Например, вместо того, чтобы просто помечать определенные текстовые данные как «положительные», вы можете выбрать более описательную категорию, например «счастливые».

Настройка расширенного классификатора твитов

Чтобы начать, перейдите в консоль разработчика OpenAI и зарегистрируйте учетную запись. Вам понадобится ключ API для взаимодействия с расширенным API классификатора твитов из вашего приложения React.

На обзорной странице нажмите кнопку «Профиль» в правом верхнем углу и выберите «Просмотреть ключи API».

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

Создайте React-клиент

Быстро загрузите свой проект React локально. Затем в корневом каталоге папки проекта создайте файл .env для хранения секретного ключа API.

 REACT_APP_OPEN_AI_API_KEY='your API key' 

Вы можете найти код этого проекта в этом репозитории GitHub.

Настройте компонент App.js

Откройте файл src/App.js, удалите шаблонный код React и замените его следующим:

  1. Сделайте следующий импорт:
     import './App.css';
    import React, {useState} from 'react';
  2. Определите функциональный компонент приложения и переменные состояния для хранения сообщения пользователя и его настроения после анализа.
     function App() {
      const [message, setMessage] = useState("");
      const [sentiment, setSentiment] = useState("");
  3. Создайте функцию-обработчик, которая будет выполнять асинхронные HTTP-запросы POST к расширенному классификатору твитов, передавая сообщение пользователя и ключ API в теле запроса для анализа настроений.
  4. Затем функция будет ожидать ответа от API, анализировать его как JSON и извлекать значение настроения в массиве вариантов из проанализированных данных.
  5. Наконец, функция обработчика активирует функцию setSentiment для обновления своего состояния значением настроения.
       const API_KEY = process.env.REACT_APP_OPEN_AI_API_KEY;

      const APIBODY ={
        'model': "text-davinci-003",
        'prompt': "What is the sentiment of this message?" + message,
        'max_tokens': 60,
        'top_p': 1.0,
        'frequency_penalty': 0.0,
        'presence_penalty': 0.0,
      }

      async function handleClick() {
        await fetch('https://api.openai.com/v1/completions', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
            'authorization': `Bearer ${API_KEY}`
          },
          body: JSON.stringify(APIBODY)
        }).then(response => {
          return response.json()
        }).then((data) => {
          console.log(data);
          setSentiment(data.choices[0].text.trim());
        }).catch((error) => {
          console.error(error);
        });
      };

Тело запроса содержит несколько параметров, а именно:

  • модель: указывает, какую модель OpenAI использовать; text-davinci-003 в данном случае.
  • подсказка: подсказка, которую вы будете использовать для анализа тональности данного сообщения.
  • max_tokens: указывает максимальное количество токенов, передаваемых в модель, чтобы предотвратить чрезмерное или ненужное использование вычислительной мощности модели и улучшить ее общую производительность.
  • top_p, Frequency_Penalty и Presence_Penalty: эти параметры регулируют выходные данные модели.

Наконец, верните окно сообщения и кнопку отправки:

   return (
    <div className="App">
      <header className="App-header">
        <h2> Sentiment Analysis Application</h2>
        <div className="input">
          <p> Enter the message to classify </p>

          <textarea
            className="textArea"
            type="text"
            placeholder="Type your message..."
            cols={50}
            rows={10}
            onChange={(e) => setMessage(e.target.value)}
          />
        </div>

        <div className="Response">
          <button onClick={handleClick}> Get Message sentiment</button>
          {sentiment !== "" ? <p> The message is {sentiment} </p> : null}
        </div>
      </header>
    </div>
  );
}

export default App;

Создать приглашение пользователя

При желании вы можете создать поле ввода подсказки, чтобы определить, как анализировать сообщение.

Например, вместо получения «положительного» настроения для определенного сообщения вы можете поручить модели генерировать ответы и ранжировать их по шкале от одного до десяти, где один — крайне отрицательно, а десять — крайне положительно.

Добавьте этот код в компонент App.js. Определите переменную состояния для подсказки:

   const [prompt, setPrompt] = useState(""); 

Измените подсказку в APIBODY, чтобы использовать переменные данные подсказки:

   const APIBODY = {
    // ...
    'prompt': prompt + message,
    // ...
  }

Добавьте поле ввода подсказки прямо над текстовой областью сообщения:

   <input 
      className="prompt"
       type="text"
       placeholder="Enter prompt..."
       onChange={(e) => setPrompt(e.target.value)}
  />

Запустите сервер разработки, чтобы обновить внесенные изменения, и перейдите по адресу http://localhost:3000, чтобы проверить функциональность.

Анализ настроений с использованием инструментов ИИ

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

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