Telegram-бот работающий от нейросети ChatGPT

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Python
  • 28 28 страниц
  • 10 + 10 источников
  • Добавлена 22.06.2023
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
Оглавление
ВВЕДЕНИЕ 3
1 ТЕОРИТИЧСЕКАЯ ЧАСТЬ 5
1.1 Обзор нейронной сети ChatGPT 5
1.2 Особенности применения «ChatGPT» 7
1.3 Возможность нейронной сети ChatGPTобучения и ее переобучение 9
1.4 Telegram-бот: понятие, сущность, особенности 10
2 ПРАКТИЧЕСКАЯЧАСТЬ 12
2.1 Создание бота при помощи Bot 12
2.2 Обоснование выбранной среды разарботки 14
2.3 Реализация промежуточного модуля на python для взаимодействия с API для ChatGPT 16
2.4 Тестирование бота 19
ЗАКЛЮЧЕНИЕ 23
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 24
Приложение А 25

Фрагмент для ознакомления

Это помогло бы компаниям обеспечить лучшую поддержку клиентов и улучшить их общий пользовательский опыт.Однако важно отметить, что внедрение такого бота потребовало бы значительных технических знаний в области обработки естественного языка (NLP) и машинного обучения. Кроме того, могут возникнуть этические проблемы, связанные с использованием ботов на базе искусственного интеллекта, такие как проблемы конфиденциальности и безопасности данных.В целом, Telegram-бот, работающий на базе нейронной сети ChatGPT, потенциально может стать мощным и эффективным инструментом для компаний по улучшению обслуживания клиентов и взаимодействия со своими пользователями, но его необходимо внедрять ответственно и с осторожностью.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВGartner Inc. // [Электронный ресурс]. URL: http://www.gartner.com/newsroom/id/3215217/ (дата обращения:16.04.23);Интернет 2017-2018 в мире и в России: Статистика и тренды // [Электронный ресурс]: URL: https://www.web-canape.ru/business/internet-2017- 2018-vmire-i-v-rОфициальный сайт Telegtam API // [Электронный ресурс]: URL: https://core.telegram.org/api. (дата обращения: 26.04.23). Приделываем руки к ChatGPT: бот, который исполняет код в рантайме // Хабр URL: https://habr.com/ru/articles/724012/ (дата обращения: 26.04.23).Архаков, Д. PHP: Делаем кнопки в Telegram API (inline- keyboards) // [Электронный ресурс]: URL: https://archakov.im/post/nodejs-make-buttons-on-telegramapi.html (дата обращения: 26.04.23).Банокин П.И. Методы и средства проектирования информационных систем и технологий: учебное пособие / П.И. Банокин; Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2015. – 92 с.Абдикеев Н.М. Проектирование интеллектуальных систем в экономике: Учебник / Под ред. Н.П. Тихомирова. – М.: Издательство «Экзамен», 2020. – 528 с.Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. – М.: Горячая линия - Телеком, 2022. - 382 с.СТО 02069024.101-2010. Работы студенческие. Общие требования и правила оформления. – Оренбург: Изд-во ГОУ ОГУ, 2021. – 98 с.Е.И. Горожанина «Нейронные сети» Учебное пособие Поволжский Государственный Университет телекоммуникаций и информатики г.Самара 2019г. с.23ПриложениеАimport requestsimport jsonimport osimport threadingimport urllib import requests from bs4 import BeautifulSoup# Открой секретный ключAPI_KEY = ' 6025991906:AAEzF3W8U9ZPCDnlHqRw058DmtB1ZuaEoQ4'# МодельMODEL = text-davinci-003'# Конечная точка API ChatGPTapi_endpoint = 'https://api.openai.com/v1/engines/davinci-codex/completions' # Определение личности бота с помощью прилагательныхBOT_PERSONALITY = 'Отвечай забавным тоном, '#Дескриптор чат-ботаCHATBOT_HANDLE = '@ChatikscGPT_bot'#Функция, которая получает ответ от чат-бота OpenAIdef openAI(prompt):# Сделайтезапроск Openal APIresponse = requests.post('https://api.openai.com/v1/chat/completions',headers={'Authorization': f'Bearer {API_KEY}'},json={'model': MODEL, 'messages': [{"role": "user", "content": prompt}], 'temperature': 0.5, 'max_tokens': 300} timeout=10 )result=response.json()final_result=''for i in range(0,len(result['choices'])):final_result+=result['choices'][i]['message']['content']returnfinal_resultПродолжение приложения А # Функция , которая будет отправлять случайную шутку в ответ на сообщения, которые начинаются со слов "расскажи шутку"def tell_joke(update, context): text = update.message.text.lower() if text.startswith("расскажи шутку"): joke = random.choice(jokes) context.bot.send_message(chat_id=update.effective_chat.id, text=joke)def show_image(update, context): text = update.message.text.lower() if text.startswith("покажи картинку"): search_term = text.replace("покажи картинку", "").strip().split() query = "+".join(search_term) url = f"https://www.google.com/search?q={query}&tbm=isch" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} r = requests.get(url, headers=headers) soup = BeautifulSoup(r.text, "html.parser") images = soup.findAll("img") image_url = images[0]["src"] context.bot.send_photo(chat_id=update.effective_chat.id, photo=image_url)def motivate_me(update, context): text = update.message.text.lower() if text.startswith("мне нужно мотивироваться"): quote = random.choice(motivational_quotes) context.bot.send_message(chat_id=update.effective_chat.id, text=quote)# Функция, которая получает изображение из Openairdef openAImage(prompt):# Запрос к OpenAI APIresp = requests.post('https://api.openai.com/v1/images/generations',headers={'Authorization': f'Bearer {API_KEY}'},json={'prompt': prompt,'n' : 1, 'size': '1024x1024'},timeout=10)response_text = json.loads(resp.text) return response_text['data'][0]['url']Продолжение приложенияА# Функция, отправляющая сообщение определенной группе telegramdef telegram_bot_sendtext(bot_message,chat_id,msg_id):data = {'chat_id': chat_id,'text': bot_message,'reply_to_message_id': msg_id}response = requests.post('https://api.telegram.org/ ChatikosGPT_bot /sendMessage',json=data, timeout=5 ) return response.json()# Функция, отправляющая изображение в определенную группу telegramdef telegram_bot_sendimage(image_url, group_id, msg_id):data = { 'chat_id': group_id, 'photo': image_url, 'reply_to_message_id': msg_id }response = requests.post(url, data=data, timeout=5)return response.json()# 4. Функция, которая извлекает последние запросы от пользователей в группе Telegram,# Генерируется ответ с помощью Openal и отправляет ответ обратно в группу.def Chatbot(): # Retrieve last ID message from text file for ChatGPT updatecwd = os.getcwd() filename = cwd + '/chatgpt.txt' if not os.path.exists(filename): with open(filename, "w") as f: f.write("1")Продолжение приложенияАelse: does_file_exist=" Файл существует " with open(filename) as f: last_update = f.read() f.close() # Проверяйте наличие новых сообщений в группе Telegram url = f'https://api.telegram.org/bot{BOT_TOKEN}/getUpdates?offset={last_update}' response = requests.get(url, timeout=5) data = json.loads(response.content) print(data) for result in data['result']:try:# Проверка наличия нового сообщенияif float(result['update_id']) > float(last_update):# Проверка на наличие новых сообщений, которые пришли не из chatGPif not result['message']['from']['is_bot']:last_update = str(int(result['update_id'])# Получение идентификатора сообщения отправителя запросаmsg_id = str(int(result['message']['message_id']))# Получениеидентификаторачатаchat_id = str(result['message']['chat']['id'])# Проверка того, хочет ли пользователь получить изображениеif '/img' in result['message']['text']:prompt = result['message']['text'].replace("/img", "")bot_response = openAImage(prompt)print(telegram_bot_sendimage(bot_response, chat_id, msg_id))# Проверка того, что пользователь упомянул имя пользователя чат-бота в сообщенииif CHATBOT_HANDLE in result['message']['text'] or "/ask" in result['message']['text']:prompt = result['message']['text'].replace(CHATBOT_HANDLE, "")# Вызов Openair API с использованием личных данных ботаbot_response = openAI(f"{BOT_PERSONALITY}{prompt}")# Отправка обратного ответа в группу telegramПродолжение приложенияАprint(telegram_bot_sendtext(bot_response, chat_id, msg_id))# Проверка того, что пользователь отвечает боту ChatGif 'reply_to_message' in result['message']: if result['message']['reply_to_message']['from']['username'] == CHATBOT_HANDLE[1:]: prompt = result['message']['text'] bot_response = openAI(f"{BOT_PERSONALITY}{prompt}") print(telegram_bot_sendtext(bot_response, chat_id, msg_id)) except Exception as e: print(e)# Обработчикиdispatcher.add_handler(MessageHandler(Filters.text, tell_joke))dispatcher.add_handler(MessageHandler(Filters.text, show_image))dispatcher.add_handler(MessageHandler(Filters.text, motivate_me))# Обновление файла с идентификатором последнего обновленияwith open(filename, 'w') as f:f.write(last_update)f.close()return "done"#Запускайте проверку каждые 5 секунд, чтобы проверить наличие новых сообщенийdef main():timertime=5Chatbot() # 5 секундтаймераthreading.Timer(timertime, main).start()# Запуск основной функциюif __name__ == "__main__": main()

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Gartner Inc. // [Электронный ресурс]. URL: http://www.gartner.com/newsroom/id/3215217/ (дата обращения:16.04.23);
2. Интернет 2017-2018 в мире и в России: Статистика и тренды // [Электронный ресурс]: URL: https://www.web-canape.ru/business/internet-2017- 2018-vmire-i-v-r
3. Официальный сайт Telegtam API // [Электронный ресурс]: URL: https://core.telegram.org/api. (дата обращения: 26.04.23).
4. Приделываем руки к ChatGPT: бот, который исполняет код в рантайме // Хабр URL: https://habr.com/ru/articles/724012/ (дата обращения: 26.04.23).
5. Архаков, Д. PHP: Делаем кнопки в Telegram API (inline- keyboards) // [Электронный ресурс]: URL: https://archakov.im/post/nodejs-make-buttons-on-telegramapi.html (дата обращения: 26.04.23).
6. Банокин П.И. Методы и средства проектирования информационных систем и технологий: учебное пособие / П.И. Банокин; Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2015. – 92 с.
7. Абдикеев Н.М. Проектирование интеллектуальных систем в экономике: Учебник / Под ред. Н.П. Тихомирова. – М.: Издательство «Экзамен», 2020. – 528 с.
8. Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. – М.: Горячая линия - Телеком, 2022. - 382 с.
9. СТО 02069024.101-2010. Работы студенческие. Общие требования и правила оформления. – Оренбург: Изд-во ГОУ ОГУ, 2021. – 98 с.
10. Е.И. Горожанина «Нейронные сети» Учебное пособие Поволжский Государственный Университет телекоммуникаций и информатики г.Самара 2019г. с.23