Узнайте, как использовать OpenAI API в JavaScript для создания приложений с поддержкой ИИ. В этом руководстве рассматриваются примеры установки, аутентификации и кода.

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

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

В этом руководстве рассказывается, как настроить новый проект Node.js для взаимодействия с API OpenAI, от получения ключей API до выполнения HTTP-запросов и использования createCompletion для однократных запросов.

Однако с момента выпуска моделей GPT-3.5-Turbo и GPT-4 рекомендуется использовать режим многооборотного чата для дальнейшего развития вашего проекта, если нет конкретного применения. случае, когда требуется тонкая настройка модели. Если вам интересно, ознакомьтесь с моими руководствами по моделям GPT-3.5-Turbo и GPT-4.

Предпосылки

Для этого удобного для начинающих учебника JavaScript OpenAI API вам понадобятся:

  • Node.js установлен на вашем компьютере.
  • Знакомство с языком JavaScript.

Что вы узнаете

  • Как получить ключ API OpenAI
  • Как настроить проект и установить соответствующие пакеты NPM
  • Как создать контент для публикации в блоге с помощью OpenAI API

Полный код вы можете найти на GitHub по этой ссылке (ветка Intro).

Сгенерировать API-ключ

Чтобы сгенерировать ключ API для API OpenAI, вам необходимо зарегистрировать учетную запись на веб-сайте OpenAI по адресу https://beta.openai.com/signup/.

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

Настройка проекта

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

Наша структура папок выглядит примерно так:

📦wordpress-automation
 ┣ 📂node_modules
 ┣ 📂src
 ┃ ┣ 📂openai
 ┃ ┃ ┗ OpenAI.js
 ┣ .env
 ┣ .gitignore
 ┣ .prettierrc
 ┣ index.js
 ┣ package-lock.json
 ┗ package.json

Далее мы установим некоторые необходимые пакеты npm, которые будем использовать в этом проекте:

npm install openai dotenv

openai package — это официальная библиотека Node.js для OpenAI, предназначенная для упрощения взаимодействия с API OpenAI в вашем коде. Он включает в себя различные классы и методы, соответствующие различным конечным точкам API, что упрощает обработку запросов и ответов. Кроме того, он имеет класс конфигурации, который обеспечивает гибкую настройку API OpenAI.

Просто предупреждаю, этот пакет в настоящее время находится в стадии бета-тестирования и может быть изменен. Вы всегда можете проверить последнюю версию в репозитории openai-node на GitHub.

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

Создание сообщения в блоге с помощью OpenAI API

// OpenAI.js

import { Configuration, OpenAIApi } from 'openai';
export class OpenAI {
    constructor(apiKey) {
        // Create the Configuration and OpenAIApi instances
        this.openai = new OpenAIApi(new Configuration({ apiKey }));
    }
    // Asynchronous function to generate text from the OpenAI API
    async generateText(prompt, model, max_tokens, temperature = 0.85) {
        try {
            // Send a request to the OpenAI API to generate text
            const response = await this.openai.createCompletion({
                model,
                prompt,
                max_tokens,
                n: 1,
                temperature,
            });
            console.log(`request cost: ${response.data.usage.total_tokens} tokens`);
               // Return the text of the response
            return response.data.choices[0].text;
        } catch (error) {
            throw error;
        }
    }
}

ВOpenAI.js мы создали инстанцируемый класс, который подключается к API OpenAI и генерирует текст с помощью библиотеки openai. Класс позволяет нам легко генерировать текст, обрабатывая все детали подключения.

Мы создали функцию generateText(), которая принимает четыре входных параметра:

  • prompt: Это текст, который вы хотите использовать в качестве отправной точки для сгенерированного текста.
  • model: это имя модели, которую вы хотите использовать для создания текста. Это может быть любая из моделей, доступных в OpenAI API.
  • max_token: это максимальное количество токенов (то есть слов или фраз), которые вы хотите, чтобы сгенерированный текст содержал.
  • temperature: это значение от 0 до 1, которое управляет случайностью генерируемого текста. Более высокая температура означает большую случайность, а более низкая температура означает большее сходство с введенным текстом.

Функция возвращает сгенерированный контент поста в блоге. Внутри функции generateText() мы создаем экземпляр класса OpenAIApi, передавая объект конфигурации, который включает в себя ключ API. Затем мы используем метод createCompletion класса OpenAIApi, передавая объект со свойствами, такими как используемая модель, приглашение, температура и максимальное количество генерируемых токенов. Так же ждем ответа и возвращаем сгенерированный текст из ответа.

По сути, это упрощается, так как библиотека openai обрабатывает все детали соединения в классе OpenAIApi и генерирует текст в generateText()функция.

// index.js

import { OpenAI } from "./src/openai/OpenAI.js";
import dotenv from 'dotenv';
dotenv.config();
// Creating a new instance of the OpenAI class and passing in the OPENAI_KEY environment variable
const openAI = new OpenAI(process.env.OPENAI_KEY);
const topic = 'NodeJs';
const model = 'text-davinci-003';
// Function to generate the prompt for the OpenAI API 
// In the future, it will be moved to a helper class in the next code review
const generatePrompt = (topic) => {
    return `Write an blog post about "${topic}", it should in HTML format, include 5 unique points, using informative tone.`
};
// Use the generateText method to generate text from the OpenAI API and passing the generated prompt, the model and max token value
await openAI.generateText(generatePrompt(topic), model, 800)
    .then(text => {
        // Logging the generated text to the console
        // In the future, this will be replaced to upload the returned blog text to a WordPress site using the WordPress REST API
        console.log(text);
    })
    .catch(error => {
        console.error(error);
    });

В index.js мы добавили наш класс OpenAI и создали его новый экземпляр, назначив ему OPENAI_KEY. Мы сохранили наш ключ API в файле .env, чтобы он оставался в безопасности.

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

Наконец, мы запускаем метод generateText, передавая все необходимые параметры, и регистрируем возвращенное содержимое блога в формате HTML в консоли.

[Running] node "d:\Work\wordpress\JavaScript Guide\wordpress-automation\index.js"
request cost: 617 tokens
<h1>5 Reasons To Use Node.js for Your Next Web Development Project</h1>
<p>Node.js has quickly become one of the most popular JavaScript frameworks for web development. Node.js is an open-source, cross-platform runtime environment for server-side and networking applications. It's a powerful tool to use when building dynamic web applications.</p>
<p>Here are 5 reasons why you should consider using Node.js for your next web development project.</p>
<h2>1. Speed and Scalability</h2>
<p>Node.js is known for it's speed and scalability. By using the JavaScript runtime environment, applications can be written in a single language to run on both the client and server-side. This makes it easier to develop and debug applications, as well as providing better performance than other server-side languages.</p>
<h2>2. Modular Architecture</h2>
<p>Node.js uses a modular architecture where code can be divided into reusable components. This makes it easier to develop complex applications, as well as making them more maintainable and scalable. Node.js modules are also extensively used in the development of web servers and other server-side applications.</p>
<h2>3. Easy to Learn</h2>
<p>Node.js is an easier language to learn than traditional server-side languages. Because it's based on JavaScript, developers who are familiar with JavaScript will find it more intuitive to use than other server-side languages. Additionally, Node.js comes with a large library of useful modules that makes developing complex applications much easier.</p>
<h2>4. Support for Multiple Platforms</h2>
<p>Node.js is supported on multiple platforms including Windows, Linux, and Mac OS. This makes it easier to develop applications that can be used on different operating systems, and it also makes it easier to share code with other developers who may have different systems.</p>
<h2>5. Community Support</h2>
<p>Node.js has a large community of developers who are willing to share their knowledge and expertise. This makes it easier to get help or find solutions to any problems that may arise during the development process. Additionally, the Node.js community is constantly developing new modules to help make development easier and faster.</p>
<p>If you're looking for an efficient and powerful web development solution, then Node.js is a great choice. With its speed, scalability, and modular architecture, Node.js is capable of creating powerful, dynamic web applications. Additionally, its support for multiple platforms, as well as its large community, make it a great choice for developers of all levels.</p>
[Done] exited with code=0 in 22.579 seconds

С помощью всего нескольких строк кода мы использовали конечную точку OpenAI API Completion и davinci model для создания этого сообщения в блоге в формате HTML. Это невероятно просто.

Заключение

Интеграция OpenAI API с Node.js — это простой процесс, для которого требуется всего несколько строк кода JavaScript и пакет OpenAI. Хотя некоторое знакомство с JavaScript необходимо, документация API OpenAI содержит исчерпывающие рекомендации, которые помогут вам глубже понять API. Имея в своем распоряжении эти инструменты, вы можете раскрыть свой творческий потенциал и разработать свой следующий замечательный проект ИИ.

Дальнейшие чтения







Официальная документация

Спасибо за чтение! Если вам понравились уроки и истории, которыми я поделился, и вы хотели бы поддержать меня, пожалуйста, рассмотрите возможность регистрации, чтобы стать участником Medium, используя мою реферальную ссылку.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.

Повысьте узнаваемость и признание вашего технического стартапа с помощью Circuit.