Суть скрипта: ничего необычного и сложного, обычный скрипт на API OpenAI.
Бот имеет 3 команды:/help - открыть меню помощи по командам.
/chat [text] - чат с Chat GPT.
/image [text] - сгенерирует картинку по Вашему запросу.
"ТОКЕН_БОТА" - вставьте между " " токен Вашего бота в Телеграм.
"АПИ_OPEN_AI" - вставьте между " " ключ от OpenAI.
"АПИ_OPEN_AI" - вставьте между " " ключ от OpenAI.
terminal:
pip install python-telegram-bot==13.15
pip install openai
ChatGPT:
import logging
from telegram import Update, ReplyKeyboardMarkup
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import openai
openai.api_key = "АПИ_OPEN_AI"
TOKEN = "ТОКЕН_БОТА"
updater = Updater(TOKEN)
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
def start(update: Update, context):
commands = [
['/chat', '/image'],
]
reply_markup = ReplyKeyboardMarkup(commands, resize_keyboard=True)
update.message.reply_text('Выберите команду в меню или воспользуйтесь командой /help.', reply_markup=reply_markup)
def help_command(update: Update, context):
update.message.reply_text('Команды бота:\n\n/help - открыть это меню.\n/chat [текст] - задать вопрос ChatGPT.\n/image [текст] - запрос нейросети для генерации картинки.\n\n\nО авторе можете узнать на сайте: r3dd1l.tk')
def generate_text(update: Update, context):
text = " ".join(context.args)
if not text:
update.message.reply_text("Ошибка! Введите /chat [текст]!")
return
response = openai.Completion.create(
prompt=text,
max_tokens=2000, # Максимальное количество генерируемых токенов
n=1, # Количество предложений в ответе
stop=None, # Символы, по которым модель должна остановить генерацию
temperature=0.7, # Параметр температуры для контроля степени разнообразия генерируемого текста
model="text-davinci-002" # Модель ChatGPT от OpenAI
)
# Получаем сгенерированный текст из ответа от OpenAI
generated_text = response['choices'][0]['text']
# Отправляем ответ с сгенерированным текстом пользователю
update.message.reply_text(generated_text)
# Функция для генерации изображений по тексту
def generate_image(update: Update, context):
# Получение текста сообщения после команды /image
text = " ".join(context.args)
if not text:
update.message.reply_text("Ошибка! Введите /image [текст]!")
return
# Используем OpenAI для генерации изображения по тексту
prompt = f"Сгенерируй изображение на основе текста: {text}"
response = openai.Image.create(prompt=prompt)
# Получаем ссылку на изображение из ответа от OpenAI
image_url = response['data'][0]['url']
# Отправляем ответ с изображением пользователю
update.message.reply_photo(photo=image_url)
def handle_message(update: Update, context):
text = update.message.text
if text.startswith('/image'):
context.args = text.split()[1:]
generate_image(update, context)
if text.startswith('/chat'):
context.args = text.split()[1:]
generate_text(update, context)
updater.dispatcher.add_handler(CommandHandler('start', start))
updater.dispatcher.add_handler(CommandHandler('help', help_command))
updater.dispatcher.add_handler(CommandHandler('image', generate_image))
updater.dispatcher.add_handler(CommandHandler('chat', generate_text))
updater.dispatcher.add_handler(MessageHandler(Filters.text, handle_message))
if __name__ == '__main__':
updater.start_polling()
updater.idle()
Включать скрипт бота только на ПК - неудобно и не практично. Поэтому давайте его подключим к самому простому БЕСПЛАТНОМУ хостингу.
1) Заходим на сайт: www.pythonanywhere.com
2) Регистрируемся и подтверждаем почту. (что бы не запутаться, вот ссылка на бесплатную основу регистрации на сайте: https://www.pythonanywhere.com/registration/register/beginner/ )
3) Подтверждаем почту.
4) После того как подтвердили, переходим во вкладку "Consoles"
5) Теперь открываем консоль "Bash"
6) Ждем загрузку консоли и вставляем в нее эти 2 команды:
7) Ждем пока загрузятся библиотеки и переходим во вкладку "Files"
8) Теперь создаем файл с нашим ботом. У меня это "bot.py" (ВАЖНО: в конце .py - ОБЯЗАТЕЛЬНО!)
9) После создания у нас откроется редактор кода. Вставляем код, который был выше, сюда, и нажимаем "Save" получится вот так:
10) Теперь меняем значения на 6 и 8 строке на свои.
11) И вуа-ля! Еще раз нажимаем "Save" и потом "Run this file". И бот должен заработать.
1) Заходим на сайт: www.pythonanywhere.com
2) Регистрируемся и подтверждаем почту. (что бы не запутаться, вот ссылка на бесплатную основу регистрации на сайте: https://www.pythonanywhere.com/registration/register/beginner/ )
3) Подтверждаем почту.
4) После того как подтвердили, переходим во вкладку "Consoles"
5) Теперь открываем консоль "Bash"
6) Ждем загрузку консоли и вставляем в нее эти 2 команды:
terminal:
pip install python-telegram-bot==13.15
pip install openai
8) Теперь создаем файл с нашим ботом. У меня это "bot.py" (ВАЖНО: в конце .py - ОБЯЗАТЕЛЬНО!)
9) После создания у нас откроется редактор кода. Вставляем код, который был выше, сюда, и нажимаем "Save" получится вот так:
11) И вуа-ля! Еще раз нажимаем "Save" и потом "Run this file". И бот должен заработать.
Буду благодарен если умельцы будут дополнять\оптимизировать код.
По возможности буду обновлять скрипт, хотя обновлять тут нечего и не зачем, а код с "мусорными" функциями можно найти и на гите.
По возможности буду обновлять скрипт, хотя обновлять тут нечего и не зачем, а код с "мусорными" функциями можно найти и на гите.