|
from telegram import ForceReply, Update |
|
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters, InlineQueryHandler, CallbackContext |
|
|
|
import openai |
|
|
|
openai.api_key = "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" |
|
messages = [ |
|
{ |
|
"role": "system", |
|
"content": "Welcome to Grow Bot on telegram" |
|
} |
|
] |
|
|
|
|
|
TOKEN= "6058469252:AAEIpuQPvhZfanC1nCrylNCjikYKcXmHMko" |
|
def convert_text(text): |
|
return text.replace("_", "\\_").replace("*", "\\*").replace("[", "\\[").replace("`", "\\`").replace(".", "\\.") |
|
|
|
|
|
async def welcome_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: |
|
await update.message.reply_text("Welcome to Grow Bot!") |
|
|
|
async def echo_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: |
|
input = update.message.text |
|
messages.append( |
|
{"role": "user", "content": input[6:]} |
|
) |
|
chat = openai.ChatCompletion.create( |
|
model = "gpt-3.5-turbo", messages = messages |
|
) |
|
reply = chat.choices[0].message.content |
|
print("Reply: ", reply) |
|
|
|
await update.message.reply_markdown(f"{reply}") |
|
|
|
|
|
async def clear_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: |
|
messages = [] |
|
await update.message.reply_text("Clear context!") |
|
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: |
|
"""Send a message when the command /help is issued.""" |
|
await update.message.reply_text("Help!") |
|
|
|
async def non_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: |
|
input = update.message.text |
|
messages.append( |
|
{"role": "user", "content": input} |
|
) |
|
chat = openai.ChatCompletion.create( |
|
model = "gpt-3.5-turbo", messages = messages |
|
) |
|
messages[-1]["role"] = "assistant" |
|
reply = chat.choices[0].message.content |
|
print(f"Input: {input}, Reply: {reply}") |
|
|
|
await update.message.reply_markdown(f"{reply}") |
|
|
|
|
|
def main() -> None: |
|
application = Application.builder().token(TOKEN).build() |
|
application.add_handler(CommandHandler("welcome", welcome_command)) |
|
application.add_handler(CommandHandler("echo", echo_command)) |
|
application.add_handler(CommandHandler("clear", clear_command)) |
|
application.add_handler(CommandHandler("help", help_command)) |
|
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, non_command)) |
|
|
|
application.run_polling() |
|
|
|
|
|
if __name__=='__main__': |
|
main() |
|
|