Создаем ИИ с помощью OpenAI

Сегодня искусственный интеллект (ИИ) все больше революционизирует принцип работы бизнеса и предоставляемые клиентам услуги.

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

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

Для этого и было написано данное руководство.

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

Приступим!

Создание аккаунта OpenAI: ваш ключ к доступу продвинутых возможностей ИИ

Если вы работали с ChatGPT, то у вас уже наверняка есть аккаунт OpenAI. Если же нет, то можете создать его, кликнув здесь. Перейдя по ссылке, в верхнем правом углу страницы вы увидите кнопку signup

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

Здесь вы увидите, что OpenAI зачислил на ваш аккаунт $18, предоставив возможность попробовать их ИИ, не затрачивая лишних средств.

Несмотря на то что API OpenAI является премиальным сервисом, этого бесплатного стартового предложения достаточно для того, чтобы познакомиться с возможностями платформы.

Используя предоставленные средства, вы можете опробовать ряд функций ИИ. 

Чтобы создать приложение Node.js, нужно сгенерировать секретный ключ. Для этого перейдите во вкладку API keys и кликните кнопку Create new secret key.

В результате вы получите личный секретный ключ, который нужно скопировать, поскольку он понадобиться в приложении Node.js.

Теперь, когда аккаунт у вас есть, пора приступить к освоению API OpenAI.

Создание приложения Node.js

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

В частности, я создам приложение Node.js, генерирующее код, изображения и текстовые ответы. 

Поскольку для веб-разработки активно используется JavaScript, я буду создавать приложение на базе ИИ при помощи Node.js. И хотя код получится простой, он будет абсолютно функционален и полноценен.

Начнем.

1. Создание приложения Node.js

Для начала вам потребуется сам Node.js вместе с VS Code, а также некоторые навыки работы с ним. Если с этим порядок, откройте терминал и создайте в удобном расположении каталог openai

mkdir openai

Теперь откройте этот каталог в предпочтительном редакторе, например VS Code.

cd openai && code .

Открыв его, запустите встроенный в VS Code терминал и сгенерируйте файл package.json в этом каталоге с помощью следующей команды:

npm init -y

Этот файл позволит устанавливать необходимые зависимости, чем мы далее и займемся, используя следующую команду:

npm i dotenv openai

Наконец, создайте файл index.js и добавьте в объект scripts файла package.json строку “start”: “node index.js". Она позволит запускать программу командой npm start.

Обновленный package.json будет выглядеть примерно так:

{
"name": "openai",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"dotenv": "^16.0.3",
"openai": "^3.2.1"
}
}

2. Задействуем мощь OpenAI

Ранее мы установили в приложении зависимость openai. Этот пакет npm упрощает работу с API OpenAI.

Мы также установили dotenv, которая позволит сохранить секретный ключ в отдельном файле .env.

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

OPENAI_API_KEY=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

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

Начнем с простого примера, предоставленного пакетом OpenAI.

const dotenv = require('dotenv');
dotenv.config();
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
(async () => {
const response = await (await openai.listModels()).data.data;
console.log(response);
})();

Здесь мы просто перечисляем все предоставляемые API OpenAI модели.

Список доступных моделей ChatGPT можно вывести командой npm start.

Вывод будет примерно таким:

{
id: 'code-davinci-edit-001',
object: 'model',
created: 1649880484,
owned_by: 'openai',
permission: [ [Object] ],
root: 'code-davinci-edit-001',
parent: null
},
{
id: 'text-davinci-001',
object: 'model',
created: 1649364042,
owned_by: 'openai',
permission: [ [Object] ],
root: 'text-davinci-001',
parent: null
},
....
{
id: 'code-search-ada-text-001',
object: 'model',
created: 1651172507,
owned_by: 'openai-dev',
permission: [ [Object] ],
root: 'code-search-ada-text-001',
parent: null
},
....

Тут вы можете поэкспериментировать и получить дополнительную информацию.

3. Генерация текста и кода

Теперь напишем простой код, используя модель text-davinci-003, которая способна генерировать текст на основе представленной инструкции, используя OpenAI API.

const dotenv = require('dotenv');
dotenv.config();
const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

(async () => {
const completion = await openai.createCompletion({
model: "text-davinci-003",
prompt: "Hello, how are you?",
});
console.log(completion.data.choices[0].text);
})();

Здесь мы вместе с инструкцией передаем используемую модель.

Выполнение этого кода приведет к генерации следующего ответа:

I’m doing well, thank you. How about you?

В этом случае вы также можете корректировать инструкцию под собственные потребности.

В качестве примера я использовал в коде ниже инструкцию: “Can you write a simple hello world python code?”.

const dotenv = require('dotenv');
dotenv.config();
const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

(async () => {
const completion = await openai.createCompletion({
model: "text-davinci-003",
prompt: "Can you write a simple hello world python code?",
});
console.log(completion.data.choices[0].text);
})();

Этот код на выходе даст ожидаемый результат.

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

const dotenv = require('dotenv');
dotenv.config();

const { Configuration, OpenAIApi } = require('openai');
const readline = require('readline');

const openAi = new OpenAIApi(
new Configuration({
apiKey: process.env.OPENAI_API_KEY,
})
);

const userInterface = readline.createInterface({
input: process.stdin,
output: process.stdout,
});

userInterface.prompt();
userInterface.on('line', async (input) => {
const response = await openAi.createChatCompletion({
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: input }],
});
console.log(response.data.choices[0].message.content);
userInterface.prompt();
});

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

Нужно отметить, что мы задействовали другую модель под названием gpt-3.5-turbo, которая может генерировать почти все, что угодно.

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

4. Генерация изображений

В предыдущем примере мы научились использовать модель для генерации текста на основе пользовательского ввода. Однако OpenAI API также умеет генерировать изображения.

Следующий код демонстрирует, как этого добиться:

const dotenv = require('dotenv');
dotenv.config();

const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});

const openai = new OpenAIApi(configuration);

async function createImage() {
try {
const response = await openai.createImage({
prompt: "A cute baby sea otter",
n: 2,
size: "1024x1024",
});
console.log(response.data);
} catch (error) {
console.log(error);
}
}

createImage();

Здесь мы получим два изображения, поскольку значение n было установлено на 2.

{
created: 1680000483,
data: [
{
url: 'https://oaidalleapiprodscus.blob.core.windows.net/123456789'
},
{
url: 'https://oaidalleapiprodscus.blob.core.windows.net/987654321'
}
]
}

Имейте ввиду, что представленный в выводе URL у вас работать не будет ввиду отсутствия аутентификации. Однако, когда вы выполните этот код с собственной инструкцией, он сгенерирует два изображения.

Можете смело изменять инструкцию под собственные нужды.

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Nitin Sharma: No More ChatGPT: Build Your Own AI With OpenAI

Предыдущая статьяWebAssembly: секретное оружие в разработке высокооптимизированных и безопасных веб-приложений
Следующая статьяПочему разрабатывать веб-интерфейсы так сложно?