{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Создайте своего первого Telegram-бота на базе ChatGPT: Пошаговое руководство 2023

Вступление

Хотели бы вы создать чат-бота, который мог бы вести интеллектуальные беседы с вашими пользователями? В этом пошаговом руководстве мы покажем вам, как создать Telegram-бота, который использует ChatGPT для генерации ответов, похожих на человеческие.

@ai_machinelearning_big_data - наш бесплатный, обучающий телеграм канал

@vistehno - ChatGpt в телеграм, нейросеть ведет канал, пишет код, обзор нейросетей и многое другое.

К концу этой статьи у вас будет полнофункциональный Telegram-бот, который вы сможете использовать для общения со своими пользователями. Мы расскажем всё, что вам нужно знать, в том числе о том, как настроить API ChatGPT и API Telegram Bot, как интегрировать их и как протестировать вашего бота, чтобы убедиться, что он работает должным образом.

Мы создали и подключили ChatGPT бот в телеграм. Теперь вы можете бесплатно пользоваться им, задавть любые вопросы, решать задачи и, генерировать контент, обсуждать новости, генерировать стихи для девушки, все , что угодно.

. На днях мы подключим новую версию апи и тогда ChatGpt будет генерировать еще более невероятный контент. Рекомендуем посмотреть на это чудо.

Давайте приступать!

Краткая информация о ChatGPT

ChatGPT - это большая языковая модель, разработанная Open AI, которая может генерировать человекоподобные ответы на текстовые подсказки. Он был обучен на огромном наборе данных интернет-текста и способен генерировать широкий спектр ответов, от коротких фраз до целых абзацев.

Одной из ключевых особенностей ChatGPT является его способность генерировать ответы, которые контекстуально релевантны и способны точно подойти к тематике диалога. Это делает его подходящим для использования в чат-ботах, где он может помочь обеспечить увлекательные разговоры с пользователями.

В дополнение к своим разговорным возможностям, ChatGPT также может использоваться для множества других задач языковой обработки, таких как перевод, генерация текста и обобщение. Его гибкость и проработанность делают его ценным инструментом для разработчиков, стремящихся создавать интеллектуальные и привлекательные приложения.

Приступаем к работе

Создайте каталог:

mkdir chatgptbot cd chatgptbot

Настройте виртуальную среду Python и активируйте её:

python3 -m venv env source env/bin/activate

В папке chatgptbot создайте два файла:

  • bot.py
  • copilot.py

Сейчас мы будем взаимодействовать с файлом copilot.py .

Во-первых, установите openai и другие библиотеки:

pip install openai pip install python-dotenv

Импортируйте библиотеки:

import os import json from dotenv import load_dotenv import openai

Создание класса и функций

Создайте класс с именем Copilot и добавьте две функции:

  • clear_text — отвечает за очистку лишних пробелов.
  • get_answer — отвечает за получение ответа. Вызывает класс Completion из библиотеки openai. Для того, чтобы продолжить наш запрос, нам нужен API-ключ.
class Copilot: def clear_text(self, text): a = text.replace("\n", " ") b = a.split() c = " ".join(b) return c def get_answer(self, question): prompt = question load_dotenv() openai.api_key = os.getenv("CHAT_GPT3_API_KEY") response = openai.Completion.create( engine="text-davinci-003", prompt=prompt, max_tokens=512, temperature=0.5, ) json_object = response # Convert the JSON object to a JSON string json_string = json.dumps(json_object) # Parse the JSON string using json.loads() parsed_json = json.loads(json_string) text = parsed_json['choices'][0]['text'] cleared_text = self.clear_text(text) return cleared_text

Получение API-ключа ChatGPT3

Перейдите на официальный сайт openai и войдите в систему или зарегистрируйтесь. После успешного входа в свою учетную запись перейдите в раздел API keys и сгенерируйте новый API-ключ.

Создать файл .env:

touch .env

Добавить API-ключ

Вы можете получить его здесь: OpenAI

CHAT_GPT3_API_KEY=paste here your api key

Здесь представлено его использование:

copilot = Copilot() a = copilot.get_answer("Hello, there!") print(a)

Telegram-бот

Установка и импорт библиотек:

pip install python-telegram-bot --pre pip install requests
import os import json import requests import time from copilot import Copilot from dotenv import load_dotenv from telegram import ( ReplyKeyboardMarkup, Update, KeyboardButton, ) from telegram.ext import ( Application, CommandHandler, ContextTypes, ConversationHandler, MessageHandler, filters, )

States:

(ENTRY_STATE, QUESTION_STATE, ) = range(2)

Перейдите к файлу .env:

Добавьте токен Telegram-бота:

Его можно получить здесь: BotFather

TELEGRAM_BOT_TOKEN=paste your Telegram bot token

Вот отправная точка нашего Telegram-бота!

Давайте используем conv_handler и сделаем Telegram-бота масштабируемым для будущих обновлений:

if __name__ == '__main__': load_dotenv() application = Application.builder().token(os.getenv("TELEGRAM_BOT_TOKEN")).read_timeout(100).get_updates_read_timeout(100).build() conv_handler = ConversationHandler( entry_points=[CommandHandler('start', start)], states={ ENTRY_STATE: [ MessageHandler(filters.Regex('^Back$'), start), MessageHandler(filters.Regex('^Question-Answering$'), pre_query_handler), ], QUESTION_STATE: [ MessageHandler(filters.Regex('^Back$'), start), MessageHandler(filters.TEXT, pre_query_answer_handler), ], }, fallbacks=[], ) application.add_handler(conv_handler) print("Bot is running ...") application.run_polling()

Давайте создадим функцию, которую можно будет повторно использовать:

def _generate_copilot(prompt: str): """Gets answer from copilot""" copilot = Copilot() c = copilot.get_answer(prompt) return c

Добавление команды /start:

async def start(update: Update, context: ContextTypes): """Start the conversation and ask user for an option.""" button = [[KeyboardButton(text="Question-Answering")]] reply_markup = ReplyKeyboardMarkup( button, resize_keyboard=True ) await update.message.reply_text( "Choose an option: 👇🏻", reply_markup=reply_markup, ) return ENTRY_STATE

Создайте функцию для пользовательского ввода (текста):

#Handling the question async def pre_query_handler(update: Update, context: ContextTypes): """Ask the user for a query.""" button = [[KeyboardButton(text="Back")]] reply_markup = ReplyKeyboardMarkup( button, resize_keyboard=True ) await update.message.reply_text( "Enter your text: 👇🏻", reply_markup=reply_markup, ) return QUESTION_STATE

Обработка пользовательского ввода (text) и генерация текста (answer):

#Handling the answer async def pre_query_answer_handler(update: Update, context: ContextTypes): """Display the answer to the user.""" button = [[KeyboardButton(text="Back")]] reply_markup = ReplyKeyboardMarkup( button, resize_keyboard=True ) question = update.message.text answer = _generate_copilot(question) context.user_data['answer'] = answer await update.message.reply_text( answer, reply_markup=reply_markup, ) return QUESTION_STATE

На этом ваш первый Telegram-бот готов! Теперь вы можете экспериментировать с ним, добавлять ему какой-либо функционал, развивать его.

Полезные ссылки

Статья была взята из этого источника:

0
22 комментария
Написать комментарий...
Сергей Ильич Федотов

Руководство не рабочее, не понятно какой код куда вставлять.

Ответить
Развернуть ветку
Machine learning
Автор

что именно не работает ? python какой версии ?

Ответить
Развернуть ветку
Dmitry Nikolaev

Ндамс. Совсем даже не для чайников текст ) Где создавать, что запускать, куда что вводить) а так - да, наверн полезная инструкция.

Ответить
Развернуть ветку
Vlad T

да уж...Мне пришлось спрашивать у самого чатGPT куда какой код вставлять, чтобы разобраться что писал автор статьи. Умник бл

Ответить
Развернуть ветку
Сергей Ильич Федотов

Проблема даже не в вашем коде, а в том что не понятно куда вставлять эти куски кода.

Если с гитхаба клонирую проект вставляю ключи работает, но chatgp не отвечает, может быть там на узбекском нужно я не знаю.

И вот это тоже не понятно что такое (ENTRY_STATE,
QUESTION_STATE,
) = range(2)

python 3.9.2

Ответить
Развернуть ветку
Сергей Ильич Федотов

Эта инструкция видимо очень сложная для моего уровня владения python

Ответить
Развернуть ветку
Machine learning
Автор

https://www.youtube.com/watch?v=SZWQuQ-vSNM&t=2s

попробуйте сначала самые азы

Ответить
Развернуть ветку
Сергей Ильич Федотов
Ответить
Развернуть ветку
Сергей Ильич Федотов

Самый прикол что мне chat gp нужен чтобы питон учить)))

Ответить
Развернуть ветку
Данил Поминов

Пост больше подходит для habr, чем для vc

Ответить
Развернуть ветку
Волшебный Олень

Спасибо, получилось разобраться и без навыков кодинга, хоть и непросто было. Все получилось. Правильно понимаю, что это не та же версия, что в веб-интерфейсе работает? Отвечает как-то кривовато, как будто через переводчик проходит.
Отдельное спасибо за ссылку на узбекский гит со своими прикольчиками.

Ответить
Развернуть ветку
Станислав Р.

Можно по подробнее для чайников?

Ответить
Развернуть ветку
Machine learning
Автор

https://www.youtube.com/watch?v=BJEKA5m4IUU&t=5s
посмотрите тут туториал

Ответить
Развернуть ветку
Станислав Р.

Спасибо

Ответить
Развернуть ветку
Orlu hhha

Помогите пожалуйста!!!
Все сделал по инструкции, но выскакивает ошибка что я api ввожу не верный с open ai хотя все верно. В чем может быть проблема?

Ответить
Развернуть ветку
Ильшат Якупов

Как все это делать на смартфоне андроид??

Ответить
Развернуть ветку
Евгений Лаптев

Termux + nvim

Ответить
Развернуть ветку
Daniil E
Ответить
Развернуть ветку
Romario

Добрый день, не совсем понимаю момент создания файла .env. Я грубо говоря создаю файл key.env, засовываю туда ключ при помощи команды написанной вами, что я делаю дальше?

Ответить
Развернуть ветку
Много Можно

сразу видно автор не разбирается в том, что написано.
диз

Ответить
Развернуть ветку
Александр

Написал своего телеграмм бота Chat Gpt - @ChatGptT01_Bot. Он полностью бесплатный.

Ответить
Развернуть ветку
Дмитрий Курлов

Привет, а подскажите сколько в среднем на рынке стоит создать бота с внедрением чат в телеграм бот? Спасибо!

Ответить
Развернуть ветку
19 комментариев
Раскрывать всегда