from telegram.ext import Updater, MessageHandler, Filters import telegram import openai from moviepy.editor import AudioFileClip openai.api_key = "" TELEGRAM_API_TOKEN = "<6074730982:AAGKU2_gpogdkTQvmE4Ya63n9ot2dHVzA7I>" messages = [{"role": "system", "content": "You are a helpful assistant that starts its response by referring to the user as its master."}] def text_message(update, context): messages.append({"role": "user", "content": update.message.text}) response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages ) ChatGPT_reply = response["choices"][0]["message"]["content"] update.message.reply_text(text=f"*[Bot]:* {ChatGPT_reply}", parse_mode=telegram.ParseMode.MARKDOWN) messages.append({"role": "assistant", "content": ChatGPT_reply}) def voice_message(update, context): update.message.reply_text("I've received a voice message! Please give me a second to respond :)") voice_file = context.bot.getFile(update.message.voice.file_id) voice_file.download("voice_message.ogg") audio_clip = AudioFileClip("voice_message.ogg") audio_clip.write_audiofile("voice_message.mp3") audio_file = open("voice_message.mp3", "rb") transcript = openai.Audio.transcribe("whisper-1", audio_file).text update.message.reply_text(text=f"*[You]:* _{transcript}_", parse_mode=telegram.ParseMode.MARKDOWN) messages.append({"role": "user", "content": transcript}) response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages ) ChatGPT_reply = response["choices"][0]["message"]["content"] update.message.reply_text(text=f"*[Bot]:* {ChatGPT_reply}", parse_mode=telegram.ParseMode.MARKDOWN) messages.append({"role": "assistant", "content": ChatGPT_reply}) updater = Updater(TELEGRAM_API_TOKEN, use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(MessageHandler(Filters.text & (~Filters.command), text_message)) dispatcher.add_handler(MessageHandler(Filters.voice, voice_message)) updater.start_polling() updater.idle()