Как-то я делал Телеграм бота на Wolfram Language (WL) для выполнения кода. Взаимодействие с ботом получается интереснее, если его добавить в групповой чат. Теперь я хочу поделиться тем, как сделать бота для обращения к OpenAI.
Установка Wolfram Engine:
winget install WolframEngine
Запускаем ядро и выполняем:
PacletInstall["CristopherWolfram/OpenAILink"]; PacletInstall["KirillBelov/Objects"]; PacletInstall["KirillBelov/TelegramBot"];
Импортируем пакеты:
<<KirillBelov`TelegramBot` <<ChristopherWolfram`OpenAILink`
Теперь реализуем доступ к gpt-3.5-turbo от OpenAI:
chatGPT[chatId_, text_String] := Module[{userMsg, botMsg, chat}, If[Not[KeyExistsQ[$chats, chatId]], $chats[chatId] = {}]; chat = $chats[chatId]; AppendTo[chat, userMsg = OpenAIChatMessageObject["user", text]]; botMsg = Check[ OpenAIChatComplete[chat], chat = {userMsg}; OpenAIChatComplete[chat] ]; $chats[chatId] = Append[chat, botMsg]; botMsg[[-1, "Text"]] ]
Обработчик сообщений из Telegram:
handler[bot_TelegramBot, update_Association] := Module[{user, chatId, text, result}, chatId = update["message", "chat", "id"]; text = update["message", "text"]; sendMessage[bot, chatId, chatGPT[chatId, text]]; ]
Осталось только запустить нашего бота:
$chats = <||>; $OpenAIKey = "your_key"; wlgptbot = TelegramBot["your_token"]; task = CreateBotSession[wlgptbot, handler, {5, 100000}];
Готово! Изначально я сделал этого бота для группы по Mathematica и решил поделиться здесь.
