Сегодня мы собираемся создать ChatBot API и веб-интерфейс на Python 3. ChatBots сложно построить, потому что существует бесконечное количество входных параметров. Из-за этого ChatBot, который может последовательно придумывать хорошие ответы, требует огромных знаний.
Разработчики часто применяют алгоритмы машинного обучения, NLP и совокупность предопределенных ответов в своей конструкции системы ChatBot. Мы собираемся сохранить наш код базовым, поэтому будем обходить создание сложного «мозга» для нашего ChatBot.
Вместо того, чтобы строить мозг ИИ, мы будем использовать тот, который бесплатен и уже создан: поиск Google.
Наш ChatBot выполнит поиск Google по запросу пользователя, очистит текст от первого результата и ответит пользователю первым предложением текста этой страницы.
Запросы в Google с помощью Python
Чтобы запрограммировать нашего простого ChatBot с всеведением (бесконечное знание), мы будем выполнять поиск в Google с помощью Python. К счастью, есть библиотека Python для поиска Google, которую мы можем установить с помощью pip.
Полный гайд по созданию чат-ботов для ВКонтакте на Python. Пишем 4 вида бота за 25 минут
После локальной установки библиотеки Google вы можете написать следующий код:
from googlesearch import search query = ‘how old is samuel l jackson’ ## Google Search query results as a Python List of URLs search_result_list = list(search(query, tld=»co.in», num=10, stop=3, pause=1))
Получив список URL-адресов из результатов поиска, мы можем выполнить запрос GET для этой веб-страницы с помощью библиотеки запросов Python. Мы также можем разобрать HTML с помощью html из LXML, а также BeautifulSoup.
import requests from lxml import html from googlesearch import search from bs4 import BeautifulSoup query = ‘how old is samuel l jackson’ ## Google Search query results as a Python List of URLs search_result_list = list(search(query, tld=»co.in», num=10, stop=3, pause=1)) page = requests.get(search_result_list[index]) tree = html.fromstring(page.content) soup = BeautifulSoup(page.content, features=»lxml»)
Все зависимости Python этого проекта можно найти в requirements.txt на GitHub.
Вот готовый файл, который наш HTTP-сервер может импортировать как зависимость. Я создал метод, который выполняет поиск в Google, получает первый
на веб-странице и возвращает его содержимое в виде строки. Если поиск не удастся каким-либо образом, ChatBot ответит: «Извините, я не могу придумать ответ для этого».
import requests import string from lxml import html from googlesearch import search from bs4 import BeautifulSoup # to search # print(chatbot_query(‘how old is samuel l jackson’)) def chatbot_query(query, index=0): fallback = ‘Sorry, I cannot think of a reply for that.’ result = » try: search_result_list = list(search(query, tld=»co.in», num=10, stop=3, pause=1)) page = requests.get(search_result_list[index]) tree = html.fromstring(page.content) soup = BeautifulSoup(page.content, features=»lxml») article_text = » article = soup.findAll(‘p’) for element in article: article_text += ‘n’ + ».join(element.findAll(text = True)) article_text = article_text.replace(‘n’, ») first_sentence = article_text.split(‘.’) first_sentence = first_sentence[0].split(‘?’)[0] chars_without_whitespace = first_sentence.translate( < ord(c): None for c in string.whitespace >) if len(chars_without_whitespace) > 0: result = first_sentence else: result = fallback return result except: if len(result) == 0: result = fallback return result
Теперь мы можем принять пользовательский ввод и выполнить поиск Google. Мы сделаем HTTP-запрос GET к первому результату поиска. Затем мы анализируем возвращенный HTML-код и выделяем первое предложение в первом
БАЗА ДАННЫХ ПОЛЬЗОВАТЕЛЕЙ ДЛЯ БОТА ВК
на этой странице. Это алгоритм ответа нашего ChatBot, машинного обучения не требуется.
Python API для простого ChatBot
Далее нам нужно создать серверное приложение, которое будет нашим API для запросов ChatBot. Он будет обслуживать ответы на HTTP-запросы. Для начала эти запросы будут поступать с простой HTML-страницы, которую мы сделаем позже.
Для начала мы импортируем библиотеки Python 3 HTTP server и socket server вместе с поисковым файлом Google, который мы сделали ранее.
import http.server import socketserver from google_search import chatbot_query PORT = 8080 DIRECTORY = ‘public’
Наш API будет обслуживаться через порт 8080, и мы будем обслуживать ресурсы веб-страниц из папки, которая называется public в родительском каталоге нашего проекта. Далее мы сделаем наш собственный обработчик для запросов GET и POST.
HTTP GET-запросы попытаются вернуть соответствующий файл из папки public . Это будут файлы HTML, CSS и JavaScript для нашего интерфейса веб-браузера. POST-запросы будут использоваться для запросов ChatBot.
class Handler(http.server.SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs): super().__init__(*args, directory=DIRECTORY, **kwargs) def do_POST(self): self.send_response(200) content_length = int(self.headers[‘Content-Length’]) post_body = self.rfile.read(content_length) self.end_headers() print(‘user query’, post_body) google_search_chatbot_reply = chatbot_query(post_body) self.wfile.write(str.encode(google_search_chatbot_reply))
Наконец, мы запустим сервер и используем наш обработчик. Вот весь файл, включая приведенные фрагменты кода.
import http.server import socketserver from google_search import chatbot_queryPORT = 8080 DIRECTORY = ‘public’ class Handler(http.server.SimpleHTTPRequestHandler): def __init__(self, *args, **kwargs): super().__init__(*args, directory=DIRECTORY, **kwargs) def do_POST(self): self.send_response(200) content_length = int(self.headers[‘Content-Length’]) post_body = self.rfile.read(content_length) self.end_headers() print(‘user query’, post_body) google_search_chatbot_reply = chatbot_query(post_body) self.wfile.write(str.encode(google_search_chatbot_reply)) with socketserver.TCPServer((», PORT), Handler) as httpd: print(‘serving at port’, PORT) try: httpd.serve_forever() except KeyboardInterrupt: pass httpd.server_close()
Мы можем использовать CURL для тестирования ChatBot API с запросами POST.
curl -d «how old is samuel l jackson» http://localhost:8080
Далее мы создадим HTML-страницу, которая может запрашивать этот API. К концу у нас будет сквозной чат-бот, который предоставляет сложные ответы.
Создание веб-страницы ChatBot
Наша веб-страница будет очень простой. Она будет содержать изображение бота, поле для ввода текста и кнопку отправки. Всякий раз, когда пользователь отправляет ввод, API-интерфейс chatbot будет доступен через запрос POST. Текстовый ответ, который возвращается из API, будет заполнен на веб-странице.
Вот HTML-страница. Сохраните его как index.html в папке public , которую мы упоминали ранее. Файл образа бота также находится в полном репозитории Python ChatBot GitHub.
Далее мы добавим несколько стилей для этой веб-страницы. Сохраните этот файл CSS в папке public . На него уже ссылается HTML-файле в .
html, body < margin: 0px; width: 100vw; height: 100vh; font-family: arial; overflow: hidden; >.chatbotImage < margin-top: 40px; width: 35vw; >.chatbotOutput < font-size: 45px; >.chatbotInput < margin-top: 10px; width: 55vw; padding: 20px; font-size: 25px; >input, span, img
Теперь у вас должна быть простая веб-страница ChatBot, готовая для ввода пользователем. Вот скриншот:
Веб-страница не совсем готова для пользователей. Требуется JavaScript.
Мы напишем несколько JS, которые обнаружат, что пользователь нажимает клавишу Return и также нажимает кнопку отправки. Когда произойдет любое из этих событий, мы получим текст внутри поля ввода пользователя и включим его в качестве тела POST для нашего сервера Python.
Мы сделаем POST запрос к API сервера, используя метод fetch . Fetch API теперь включен по умолчанию в современных веб-браузерах.
Вот наш простой JavaScript, который взаимодействует с нашими 3 HTML-элементами. Сохраните этот код как app.js в общей папке.
const submitButton = document.getElementById(‘submitButton’); const chatbotInput = document.getElementById(‘chatbotInput’); const chatbotOutput = document.getElementById(‘chatbotOutput’); submitButton.onclick = userSubmitEventHandler; chatbotInput.onkeyup = userSubmitEventHandler; function userSubmitEventHandler(event) < if ( (event.keyCode event.keyCode === 13) || event.type === ‘click’ ) < chatbotOutput.innerText = ‘thinking. ‘; askChatBot(chatbotInput.value); >> function askChatBot(userInput) < const myRequest = new Request(‘/’, < method: ‘POST’, body: userInput >); fetch(myRequest).then(function(response) < if (!response.ok) < throw new Error(‘HTTP error, status = ‘ + response.status); >else < return response.text(); >>).then(function(text) < chatbotInput.value = »; chatbotOutput.innerText = text; >).catch((err) => < console.error(err); >); >
Мы почти готовы запустить наш ChatBot.
Запуск нашего простого Python ChatBot, созданного с нуля
Теперь, когда мы написали весь код, у нас есть еще один шаг, прежде чем мы сможем запустить ChatBot. Если вы этого еще не сделали, создайте файл requirements.txt в родительском каталоге проекта вместе с двумя файлами Python. Этот файл представляет собой парадигму Python для простой установки зависимостей проекта.
requests==2.22.0 lxml==4.4.1 google==2.0.2 beautifulsoup4==4.8.0
Перейдите в родительский каталог проекта ChatBot с помощью командной строки. запустите команду установки библиотеки Python.
pip install -r requirements.txt
Теперь на вашем компьютере есть все необходимые библиотеки для запуска ChatBot! Давайте запустим приложение с полным стеком.
python server.py
Затем откройте веб-браузер и перейдите по адресу http://localhost:8080/. Если вы видите изображение ChatBot, оно работает.
Попробуйте некоторые входы!
кто играл железного человека
сколько лет Сэмюэлю Л Джексону
какая погода на марсе
Как видите, наши ответы на ChatBot не идеальны, но довольно хороши для нескольких минут работы.
Источник: dev-gang.ru
Создание чат-бота на Python
В этом руководстве мы рассмотрим создание чат-бота на Python с помощью библиотеки Chatterbot.
Вы устали ждать в длинных очередях, пока ваш звонок переадресуют менеджеру по работе с клиентами? Чтение раздела часто задаваемых вопросов вызывает у вас тошноту? Тогда вы на правильном пути.
Можете ли вы вспомнить, когда в последний раз вам доставили не тот товар и вы общались со службой поддержки клиентов через чат? Существует высокая вероятность того, что с вами общался не человек, а бот. Так что же такое боты? Как их создавать? Какой исходный код для этого требуется?
Именно эти вопросы мы и разберем сегодня!
При создании современных ботов используется искусственный интеллект, опирающийся на машинное обучение и обработку естественного языка (NLP – Natural Language Processing). ИИ обеспечивает максимально гладкое взаимодействие между людьми и компьютерами.
Чат-боты повсюду, будь то банковский сайт, пиццерия или магазины электронной коммерции. Они помогают обслуживать клиентов в режиме реального времени по ряду заранее определенных вопросов, относящихся к сфере деятельности компании. При этом боты используют естественный язык и создают иллюзию общения с человеком.
Упрощенно можно сказать, что чат-боты — это эволюция систем вопросов и ответов, использующих обработку естественного языка. Согласно некоторым источникам, к 2024 году размер мирового рынка общения вырастет до 15,7 млрд долларов. При этом годовой темп роста составит 30,2%.
Например, во время пандемии коронавируса мы стали свидетелями тысяч мистификаций о том, что можно использовать для лечения COVID или что может быть полезно для повышения иммунитета, или о том, был ли вирус разработан в лаборатории. Чтобы положить конец таким мистификациям, Facebook запустил чат-бота, который работает как факт-чекер.
Что такое чат-бот?
Термин «чаттербот» появился в 1994 году, когда Майкл Молдин создал своего первого чат-бота по имени Джулия.
Согласно Оксфордскому словарю, чат-бот определяется как «компьютерная программа, предназначенная для имитации разговора с пользователями-людьми, особенно через Интернет». Его можно рассматривать как виртуального помощника, который общается с пользователями с помощью текстовых сообщений и помогает предприятиям сблизиться со своими клиентами.
Отдельно стоит оговорить, что чат-боты предназначены для имитации общения с человеком. Само общение может происходить, например, через интерфейс чата или с помощью телефонного вызова. Разработчики обычно проектируют чат-ботов так, чтобы пользователям было сложно определить, общаются они с человеком или с роботом.
Чат-боты помогают любому бизнесу/организации в достижении следующих целей:
- Повышение эффективности работы
- Автоматизация выполнения запросов клиентов
- Обработка базовых запросов, которая освобождает сотрудников для работы над сложными и более ценными запросами
- Поддержка многоязычности
- Экономия времени и усилий за счет автоматизированной поддержки клиентов
- Повышение скорости отклика, а также вовлеченности клиентов
- Персонализация общения
Как работает чат-бот?
Чат-боты — это не что иное, как программные приложения, имеющие прикладной уровень, базу данных и API. Упрощая принцип работы чат-бота, можно сказать, что в основе его работы лежит сопоставление с образцом для классификации текста и выдачи подходящего ответа пользователю.
Чат-бот отвечает пользователю согласно заложенной в него программе. Боты бывают разных видов, в зависимости от принципа работы. Основных вида три:
- Чат-бот на основе правил. Это базовый чат-бот. Пользователь взаимодействует с ботом, используя предопределенные параметры. Чтобы получить ответ от бота, пользователю необходимо выбрать нужный параметр. Такие боты получают запрос пользователя, анализируют его, а затем предлагают результаты в виде кнопок. Обычно эти боты используются для замены разделов FAQ. Но если речь идет о сложных запросах, это не лучшее решение.
- Независимые чат-боты с ключевыми словами. Это боты, использующие машинное обучение. В отличие от чат-ботов на основе правил, они анализируют то, что хочет пользователь, и реагируют соответствующим образом. Эти боты используют настраиваемые ключевые слова и машинное обучение, чтобы определить, как эффективнее и результативнее реагировать на запросы пользователей.
- NLP (или контекстные) чат-боты. На данный момент они самые продвинутые. Эти чат-боты представляют собой комбинацию лучших чат-ботов на основе правил и ключевых слов. Они используют обработку естественного языка, чтобы понять контекст запросов и намерения пользователей и действовать соответственно. Такие чат-боты могут легко обрабатывать несколько запросов от одного и того же пользователя.
Сравнение платформ для создания чат-ботов
Дальше мы обсудим список основных платформ для создания чат-ботов с искусственным интеллектом.
Azure Bot Service предлагает создать чат-бота с нуля, т. е. вы можете создавать, подключать, тестировать и развертывать. Это позволяет разработчикам использовать SDK и инструменты с открытым исходным кодом. Кроме того, Azure позволяет разработчикам создавать продвинутых ботов для обработки сложных запросов.
Botsify. Уникальность этого инструмента в том, что он позволяет пользователям без технического бэкграунда создавать чат-ботов с интуитивно понятным интерфейсом. Боты представлены здесь в виде историй, т. е. вы можете создать несколько историй или несколько чат-ботов и развернуть их в соответствии с имеющимися требованиями. Кроме того, есть ещё одна замечательная функция — возможность сохранять ответы пользователей в форму, которую можно легко экспортировать в CSV.
Amazon Lex позволяет разработчикам создавать диалоговые интерфейсы с использованием текста и голоса. Он предлагает расширенные функции глубокого обучения и обработки естественного языка для понимания контекста текста. Amazon lex также предоставляет простую в использовании консоль для создания чат-бота за считанные минуты.
Mobile Monkey. Данный сервис предлагает разработчикам создавать чат-ботов специально для маркетинговых целей. Это позволяет разрабатывать рекламные боты Facebook, SMS-боты и собственные веб-чат-боты на одной платформе. Здесь также предлагаются готовые шаблоны чат-ботов для любого бизнеса, которые можно напрямую встроить в сайт.
ChatterOn. Позволяет разработчикам подключать разные API при каждом взаимодействии с пользователем. Таким образом можно управлять разными типами ответов. ChatterOn предлагает более 20 готовых ботов, которые можно использовать одним щелчком мыши. Кодить много не придется, а это упрощает создание чат-ботов.
TARS. Этот инструмент предлагает нам создать лендинг с возможностью общения. Вы можете разработать автоматизированного чат-бота, который будет приветствовать клиентов, предоставлять им актуальную информацию об их запросах относительно ваших продуктов и одновременно запрашивать их контакты. Tars предлагает множество готовых шаблонов чат-ботов с классификацией по отраслям и по вариантам использования.
А теперь давайте разберем создание нашего собственного чат-бота на Python с использованием библиотеки chatterbot.
Chatterbot
Как следует из названия, chatterbot — это библиотека Python, специально разработанная для создания чат-ботов. Этот алгоритм использует набор инструментов машинного обучения для создания различных ответов пользователям в соответствии с их запросами.
Chatterbot значительно упрощает разработку чат-ботов. Всё начинается с создания необученного бота, у которого нет предыдущего опыта или знаний о том, как общаться. Затем библиотека сохраняет запросы, сделанные пользователями, а также отправленные им ответы. По мере увеличения «базы знаний» точность ответов чат-бота растет.
Chatterbot обучен искать ближайший аналогичный ответ, находя ближайший запрос, аналогичный новому запросу. Затем он выбирает из уже существующих ответов. Уникальность такого чат-бота заключается в том, что он позволяет разработчикам легко создавать свои собственные наборы данных и структуры.
От редакции Pythonist. О создании чат-бота при помощи библиотеки TensorFlow можно почитать в цикле статей «Чат-бот на Python (Deep Learning + TensorFlow)».
Создание чат-бота с помощью Chatterbot
Итак, начнем с установки библиотеки chatterbot . Для создания чат-бота также необходимо установить chatterbot_corpus . Он содержит корпус данных, включенных в модуль чат-ботов. Каждый корпус представляет собой не что иное, как прототип различных входных операторов и их ответов. Эти корпуса используются ботами для самообучения. Рекомендуемый способ установки chatterbot и chatterbot_corpus — использование pip .
Команды установки для терминала:
pip install chatterbot pip install chatterbot_corpus
Команды установки Jupyter Notebook:
!pip install chatterbot !pip install chatterbot_corpus
Давайте сначала импортируем класс Chatbot из модуля chatterbot .
from chatterbot import ChatBot
Создание экземпляра чат-бота
Теперь пришло время самой интересной части, а именно присвоения имени вашему чат-боту путем создания объекта Chatbot . Вы можете выбрать любое имя.
# Create object of ChatBot class bot = ChatBot(‘Buddy’)
[nltk_data] Downloading package averaged_perceptron_tagger to [nltk_data] /root/nltk_data. [nltk_data] Unzipping taggers/averaged_perceptron_tagger.zip. [nltk_data] Downloading package stopwords to /root/nltk_data. [nltk_data] Unzipping corpora/stopwords.zip. [nltk_data] Downloading package wordnet to /root/nltk_data. [nltk_data] Unzipping corpora/wordnet.zip.
Эта единственная строка кода генерирует нашего собственного нового бота по имени Buddy . Однако нам нужно указать еще несколько параметров перед запуском нашей первой программы.
Вы можете расположить адаптер хранилища с объектом чат-бота. Адаптеры хранилища позволяют подключаться к определенному устройству хранения или сети.
Для использования адаптера хранилища нам нужно указать его. Мы разместим адаптер хранилища, назначив его пути импорт хранилища, которое хотим использовать.
Здесь мы используем адаптер хранилища SQL. Он позволяет чат-боту подключаться к базам данных в SQL. Используя параметр базы данных, мы создадим новую базу данных SQLite.
Следуйте приведенному ниже коду, чтобы создать новую базу данных для чат-бота.
# Create object of ChatBot class with Storage Adapter bot = ChatBot( ‘Buddy’, storage_adapter=’chatterbot.storage.SQLStorageAdapter’, database_uri=’sqlite:///database.sqlite3′ )
Вы также можете расположить логический адаптер с объектом чат-бота. Как следует из названия, логический адаптер регулирует логику чат-бота, т. е. выбирает ответы на любой предоставленный ему ввод. Этот параметр содержит список логических операторов.
Chatterbot позволяет нам использовать несколько логических адаптеров. Когда используется более одного логического адаптера, чат-бот рассчитывает уровень достоверности и в результате возвращает ответ с наивысшей достоверностью.
Здесь мы использовали два логических адаптера: BestMatch и TimeLogicAdapter .
# Create object of ChatBot class with Logic Adapter bot = ChatBot( ‘Buddy’, logic_adapters=[ ‘chatterbot.logic.BestMatch’, ‘chatterbot.logic.TimeLogicAdapter’], )
Обучение чат-бота
Теперь финальный шаг в создании чат-бота — его обучение с использованием модулей, доступных в Chatterbot.
Обучение чат-бота это просто введение разговора в базу данных. Как только чат-бот получает набор данных, он создает необходимые записи в графе знаний, чтобы правильно представлять входные и выходные данные.
Для начала давайте импортируем ListTrainer , создадим его объект, передав объект Chatbot . И вызовем метод train() , передав список предложений.
# Inport ListTrainer from chatterbot.trainers import ListTrainer trainer = ListTrainer(bot) trainer.train([ ‘Hi’, ‘Hello’, ‘I need your assistance regarding my order’, ‘Please, Provide me with your order id’, ‘I have a complaint.’, ‘Please elaborate, your concern’, ‘How long it will take to receive an order ?’, ‘An order takes 3-5 Business days to get delivered.’, ‘Okay Thanks’, ‘No Problem! Have a Good Day!’ ])
List Trainer: [####################] 100%
Тестирование чат-бота
Последний шаг — проверка разговорных навыков нашего бота. Для проверки его ответов мы будем вызывать метод get_responses() экземпляра чат-бота следующим образом:
# Get a response to the input text ‘I would like to book a flight.’ response = bot.get_response(‘I have a complaint.’) print(«Bot Response:», response)
Bot Response: Please elaborate, your concern
Мы создадим цикл while для запуска нашего чат-бота. При переборе предложений в цикле мы получаем соответствующие ответы, так как мы уже ввели данные в нашу базу. Если мы получаем от пользователя Bye или bye (прощание), мы можем положить конец циклу и остановить программу.
name=input(«Enter Your Name: «) print(«Welcome to the Bot Service! Let me know how can I help you?») while True: request=input(name+’:’) if request==’Bye’ or request ==’bye’: print(‘Bot: Bye’) break else: response=bot.get_response(request) print(‘Bot:’,response)
Enter Your Name: Avinash Welcome to the Bot Service! Let me know how can I help you? Avinash:I need your assistance regarding my order Bot: Please, Provide me with your order id Avinash:12345 Bot: No Problem! Have a Good Day! Avinash:Bye Bot: Bye
Заключение
Поздравляем, вы добрались до конца данного урока!
Сегодня мы разобрали создание чат-бота на Python с использованием Chatterbot. Процесс создания бота был не только простым, но и дал точные результаты. Благодаря искусственному интеллекту и машинному обучению можно создавать отличных ботов с разговорными навыками.
Надеемся, данная статья была вам полезна! Успехов в написании кода!
Источник: pythonist.ru
Как учить Python с нуля с удовольствием: пишем своего чат-бота
Привет! Меня зовут Илья Осипов, я методист курса программирования на Python «Девман» и больше 5 лет пишу код на этом языке. Сегодня расскажу, как новичку сделать полезного чат-бота.
Python — классный язык программирования. Но многие новички учат его неправильно: почти все онлайн-курсы, тренажёры, книги и видео предлагают начинать учить Python с нуля с каких-то странных задач, вроде: «Давайте решим вот эту математическую задачку» или «Давайте напишем рекурсивный поиск чисел Фибоначчи». Вы уже тоже зеваете от скуки?
Нет, удовольствие от программирования совсем не в этом, а в том, чтобы решать реальные проблемы. Например, я втянулся в программирование, когда писал чат-бота для своего вуза. Расписание на сайте было очень неудобно смотреть. Я решил потратить время и написать чат-бота, который будет присылать мне расписание занятий в более удобном виде. Оказалось, что другим студентам тоже было неудобно, и спустя год в чат-боте накопилось 4 тысячи пользователей.
Middle DBA на продукт Managed Services (Big Data) МТС , Москва, можно удалённо , По итогам собеседования
Как раз на стыке между освоением синтаксиса и решением реальных проблем, как мне кажется, и сдаются большинство начинающих программистов. Совершенно не понятно как перейти от «сложить два числа» к написанию чего-то стоящего, чем можно похвастаться родителям, друзьям, жене и собаке.
Если вы тоже обнаружили себя в этой «яме», то этот туториал для вас. Дайте себе ещё один шанс.
Шаг 1. Зайдите в Repl.it
Создайте песочницу для языка Python. Ничего устанавливать не нужно. Просто откройте эту ссылку в соседней вкладке.
Придётся зарегистрироваться, но, думаю, вы разберётесь.
А вы уже нажали кнопку? Нет? Идите жмите!
Шаг 2. Пройдите шаг 1
Эй, хватит читать! Так дела не делаются! Чтобы научиться программировать на Python — нужно писать код своими руками, а не смотреть, как кто-то делает это за вас
Вы же не думаете, что можно стать альпинистом, просматривая видео, как другие люди лезут в горы? А уж инструктором вас без реального опыта и подавно никто не наймёт. С программированием то же самое.
Шаг 3. Установите библиотеку для написания ботов
Многие советуют пользоваться более сложными библиотеками для чат-ботов. Например aiogram . Она крутая и популярная, но это библиотека для асинхронного кода. Это совсем другой зверь, которого не стоит касаться новичкам. Воспринимайте асинхронные библиотеки как другой язык программирования, хотя бы на старте.
Вместо этого будем работать с куда более простой библиотекой — python-telegram-bot . Откройте меню для установки библиотек слева-снизу:
Нужна кнопка Packages.
И в появившемся окошке вбейте её название. Нажмите на «+» напротив названия и подождите загрузки. В конце появится вот такая зелёная плашка об успехе:
Название библиотеки можно скопировать прямо из статьи, не обязательно печатать.
Теперь сложноватый и неприятный момент, но такова разработка, за это нам и платят деньги. Нужно будет поменять версию библиотеки на более дружелюбную для новичков. Для этого нужно зайти в очень недружелюбный файл и подправить число на 13.15 . В общем-то больше ничего делать и не нужно, думаю, вы справитесь:
Очень страшно, ничего не понятно, но надо только поменять одно число.
Шаг 4. Запустите пример из документации
В документации к библиотеке есть готовые примеры кода. Давайте запустим пример эхобота.
Эхобот — это бот, который просто повторяет за вами. Отвечает вам тем же, что вы написали ему. Вот пример в документации. Я почистил его от всякого ненужного, поэтому можете взять сразу мой, он должен быть не таким страшным. Копируйте этот код в файл main.py и жмите кнопку > Run наверху. Ничего не получится, но так и нужно, об этом ниже:
from telegram import Update, ForceReply from telegram.ext import Updater, CommandHandler, MessageHandler, Filters def start(update, context): user = update.effective_user update.message.reply_text(‘Привет!’) def echo(update, context): update.message.reply_text(update.message.text) if __name__ == ‘__main__’: updater = Updater(«TOKEN») dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler(«start», start)) dispatcher.add_handler(MessageHandler(Filters.text #128578;
Осталось вставить полученный токен в код и запустить его снова:
Не накосячьте с кавычками.
Заходите в Telegram, открывайте переписку с вашим ботом, и получайте удовольствие от беседы с цифровым другом:
Он всё ещё за мной повторяет.
Шаг 6. Начните менять код
В скопированном коде много всего страшного. Давайте коротко расскажу, как это всё работает.
Начинается исполнение кода отсюда:
if __name__ == ‘__main__’: updater = Updater(«5646004689:AAECTkuGjWo1Imwr-_6UrN-nzbo89sd3WSM») dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler(«start», start)) dispatcher.add_handler(MessageHandler(Filters.text #128521;
Источник: tproger.ru