Варианты использования#
Данная библиотека поддерживает два различных варианта использования в зависимости от ваших потребностей:
1. Самостоятельный бот#
Вы можете запустить бота как самостоятельный сервис, который автоматически прослушивает и обрабатывает сообщения WhatsApp:
const bot = new WhatsappGptBot({
idInstance: "your-instance-id",
apiTokenInstance: "your-token",
openaiApiKey: "your-openai-api-key",
model: "gpt-4o",
systemMessage: "Вы - полезный ассистент."
});
// Начать прослушивание вебхуков и обработку сообщений
bot.start();
2. Обработчик сообщений#
Альтернативно, вы можете использовать бота как утилиту для обработки сообщений в вашем собственном боте или приложении:
const gptBot = new WhatsappGptBot({
idInstance: "your-instance-id",
apiTokenInstance: "your-token",
openaiApiKey: "your-openai-api-key",
model: "gpt-4o",
systemMessage: "Вы - полезный ассистент."
});
// Не нужно вызывать start() - просто используйте processMessage когда нужно
const { response, updatedData } = await gptBot.processMessage(message, sessionData);
// Обработайте ответ своим способом
await yourBot.sendText(message.chatId, response);
// Сохраните обновленные данные сессии в своей системе состояний
yourSessionData.gptSession = updatedData;
Пример интеграции#
Вот как интегрировать GPT-бота в ваш собственный бот, основанный на состояниях:
interface CustomSessionData {
lang?: string;
gptSession?: GPTSessionData; // Хранение данных сессии GPT
}
const gptState: State<CustomSessionData> = {
name: "gpt_state",
async onEnter(message, data) {
// Инициализация сессии GPT
data.gptSession = {
messages: [{ role: "system", content: gptBot.systemMessage }],
lastActivity: Date.now()
};
await bot.sendText(message.chatId, "Чат с GPT начат!");
},
async onMessage(message, data) {
// Обработка сообщений с помощью GPT-бота
const { response, updatedData } = await gptBot.processMessage(
message,
data.gptSession
);
await bot.sendText(message.chatId, response);
data.gptSession = updatedData;
return undefined; // Остаться в текущем состоянии
}
};
Эта гибкость позволяет вам либо запускать бота независимо, либо интегрировать его возможности GPT в вашу систему, сохраняя полный контроль над потоком разговора и управлением состояниями.
Ключевые моменты об этих вариантах:
-
Самостоятельный бот
- Использует внутреннее управление состояниями
- Автоматически обрабатывает вебхуки
- Лучше подходит для простых, однофункциональных GPT-чатботов
- Требует вызова
bot.start()
-
Обработчик сообщений
- Не требует внутреннего управления состояниями
- Не обрабатывает вебхуки
- Идеально подходит для интеграции в существующих ботов
- Использует только возможности обработки GPT
- Более гибкий и контролируемый
- Никогда не вызывайте
start()
- просто используйтеprocessMessage()