Пишу ТГ бот chatGPT на python через сам GPT
import telegram
from telegram.ext import Updater, MessageHandler, CommandHandler, filters
import openai
import os
import tempfile
import speech_recognition as sr
from telegram.ext.utils import UpdateQueue
# Токен бота
TOKEN = 'YOUR_TOKEN_HERE'
# Токен OpenAI
openai.api_key = 'YOUR_OPENAI_API_KEY_HERE'
def start(update, context):
context.bot.send_message(chat_id=update.effective_chat.id, text="Привет! Я могу ответить на любой ваш вопрос")
def echo(update, context):
# Получаем текст сообщения от пользователя
user_input = update.message.text
# Генерируем ответ с помощью OpenAI
response = openai.Completion.create(
engine='davinci',
prompt=user_input,
max_tokens=100
)
# Отправляем ответ пользователю
context.bot.send_message(chat_id=update.effective_chat.id, text=response.choices[0].text)
def voice(update, context):
# Получаем объект с аудио-файлом, отправленным пользователем
file = context.bot.getFile(update.message.voice.file_id)
# Создаем временный файл для сохранения аудио
temp_file = tempfile.NamedTemporaryFile(delete=False)
# Скачиваем аудио-файл и сохраняем его во временный файл
file.download(temp_file.name)
# Создаем объект для распознавания речи
recognizer = sr.Recognizer()
# Открываем временный файл и читаем из него аудио-данные
with sr.AudioFile(temp_file.name) as source:
audio_data = recognizer.record(source)
# Отправляем аудио на распознавание в Google Speech Recognition
try:
text = recognizer.recognize_google(audio_data, language='ru-RU')
except sr.UnknownValueError:
text = "Не удалось распознать речь"
# Удаляем временный файл
os.remove(temp_file.name)
# Генерируем ответ с помощью OpenAI
response = openai.Completion.create(
engine='davinci',
prompt=text,
max_tokens=100
)
# Отправляем ответ пользователю
context.bot.send_message(chat_id=update.effective_chat.id, text=response.choices[0].text)
def main():
# Создаем объект UpdateQueue
update_queue = UpdateQueue()
# Создаем объект Updater и передаем ему токен бота и объект UpdateQueue
updater = Updater(TOKEN, update_queue)
# Получаем объект Dispatcher
dispatcher = updater.dispatcher
# Регистрируем обработчик для команды /start
dispatcher.add_handler(CommandHandler("start", start))
# Регистрируем обработчик для текстовых сообщений
dispatcher.add_handler(MessageHandler(filters.text & ~filters.command, echo))
# Регистрируем обработчик для голосовых сообщений
dispatcher.add_handler(MessageHandler(filters.voice, voice))
# Запускаем бота
updater.start_polling()
# Останавливаем бота при нажатии Ctrl+C
updater.idle()
if __name__ == '__main__':
main()
Выдает ошибку
Traceback (most recent call last):
File "c:\Users\zhere\Downloads\тг бот\myenv\бот.py", line 8, in <module>
from telegram.ext.utils import UpdateQueue
ModuleNotFoundError: No module named 'telegram.ext.utils'
Помогите, что не так
Python 3.10.10, pip 23.0.1, и виртуальная среда venv
это называется не пишу а стырил код а запустить мозгов не хватает
[ChatGPT]
Кажется, у вас возникла ошибка ModuleNotFoundError, связанная с отсутствием модуля telegram.ext.utils в вашем коде. Эта ошибка возникает, когда требуемый модуль не установлен в вашей среде Python.
Чтобы исправить эту проблему, необходимо установить модуль в вашу среду Python. Это можно сделать, запустив следующую команду в вашем терминале или командной строке:
pip install python-telegram-bot
Эта команда установит пакет python-telegram-bot, который включает в себя модуль telegram.ext.utils, а также другие полезные модули для создания ботов в Telegram.
После завершения установки вы сможете импортировать модуль telegram.ext.utils в вашем коде Python без ошибок.
Не так то что ты юзаешь Chat дерьмо