В этом руководстве мы покажем вам, как создать простого чат-бота с использованием языковой модели OpenAI GPT-4 и Express.js, минималистичной среды Node.js. Этот чат-бот будет веб-сервером, который может принимать пользовательский ввод через запрос POST и возвращать ответ, сгенерированный ИИ. Давайте начнем!
Предпосылки
Прежде чем начать, убедитесь, что у вас есть следующие предварительные условия:
- Node.js и npm: Node.js — это среда выполнения JavaScript, которую мы используем для запуска нашего сервера, а npm — это менеджер пакетов для Node.js. Вы можете скачать оба здесь.
- Учетная запись OpenAI: вам нужен ключ API от OpenAI, чтобы использовать модель GPT-4. Вы можете получить это, создав учетную запись на сайте OpenAI.
Настраивать
Начните с создания нового каталога для проекта и перехода в него:
mkdir chatbot cd chatbot
Инициализируйте новый проект Node.js:
npm init -y
Установите необходимые пакеты npm:
npm install express body-parser openai dotenv
Это зависимости, которые нужны нашему приложению: Express.js для обработки веб-запросов, body-parser для анализа тела входящих запросов, OpenAI для взаимодействия с API GPT-4 и dotenv для управления переменными среды.
Код
Вот разбивка кода:
Импорт библиотек
Начнем с импорта необходимых библиотек и настройки нашего экземпляра OpenAI:
const express = require("express"); const bodyParser = require("body-parser"); const { Configuration, OpenAIApi } = require("openai"); require("dotenv").config(); const app = express(); app.use(bodyParser.json()); const config = new Configuration({ apiKey: process.env.OPENAI_API_KEY, }); const openai = new OpenAIApi(config);
Создание массива сообщений
Затем мы создаем массив для хранения разговора:
messages = [];
В этом массиве мы будем хранить все сообщения, отправленные пользователем, и ответы, сгенерированные ИИ.
Маршрут POST для сообщений
Затем мы определяем маршрут POST /message
:
app.post("/message", (req, res) => { const message = req.body.message; messages.push({ role: "user", content: message, }); const response = openai.createChatCompletion({ model: "gpt-4", messages, }); response .then((result) => { messages.push({ role: "assistant", content: result.data.choices[0].message.content, }); res.send(result.data.choices[0].message.content); }) .catch((err) => { console.log(err); }); });
Этот маршрут прослушивает запросы POST в конечной точке /message
. Каждый входящий запрос должен включать сообщение от пользователя, которое добавляется в наш массив messages
. Вся история разговоров (в том виде, в каком она представлена в массиве messages
) затем отправляется в модель OpenAI GPT-4, которая генерирует ответ. Затем этот ответ отправляется обратно пользователю и добавляется в наш массив messages
для сохранения истории разговоров.
Прослушивание сервера
Наконец, мы заставляем наш сервер прослушивать запросы через порт 3000:
app.listen(3000, () => { console.log("Server is running on port 3000"); });
Запуск приложения
Вы можете запустить этого чат-бота, сохранив код в файле (например, app.js
) и выполнив следующую команду:
node app.js
Вы должны увидеть вывод: Server is running on port 3000
. Это означает, что ваш чат-бот теперь работает и прослушивает входящие запросы на http://localhost:3000/message
.
В реальном приложении вы хотели бы добавить больше обработки ошибок и обработки крайних случаев, но эта базовая настройка дает вам работающий чат-бот на базе OpenAI GPT-4.
Теперь вы можете опираться на эту основу и расширять приложение в соответствии со своими потребностями. Может быть, вы хотели бы обслуживать веб-страницу и использовать WebSockets для интерфейса чата в реальном времени, или, возможно, вы хотели бы реализовать более продвинутые функции, используя модель GPT-4. Возможности огромны!