Skip to content

Instantly share code, notes, and snippets.

@nukeador
Last active December 9, 2022 14:28
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nukeador/9f0966ecde2fea784145be171664608d to your computer and use it in GitHub Desktop.
Save nukeador/9f0966ecde2fea784145be171664608d to your computer and use it in GitHub Desktop.
Este script ha sido creado 100% por ChatGPT, sirve para crear un bot en telegram que conecte a la API de ChatGPT para hablar con el bot (también responde en grupos a los usuarios autorizados). Sutituye en el código XXXX por tu api de openai, tu token de telegram y tu user_id de telegram https://twitter.com/nukeador/status/1599502803877203979 Pue…
# Puedes ver una versión más avanzada de este bot en https://github.com/nukeador/chatgpt-tegram-bot
# Requisitos:
# 1. Tener una cuenta de Telegram y haber creado un bot de Telegram utilizando el BotFather.
# 2. Tener una cuenta de OpenAI y haber obtenido una clave de acceso a la API de ChatGPT.
# 3. Tener instalado Python 3 en el sistema.
# 4. Instalar los módulos de python `pyTelegramBotAPI` y `openai` utilizando pip.
# 5. Configurar el token del bot de Telegram y la clave de acceso a la API de ChatGPT en el script.
# 6. Ejecutar el script utilizando una conexión a Internet activa.
import telebot
import openai
# Inicializar la biblioteca openai utilizando tu secret key
openai.api_key = "XXXXX"
# Obtener el token del bot de Telegram y crear un bot
bot = telebot.TeleBot(token="XXXXX")
# Función para generar una respuesta utilizando la API de ChatGPT
def generate_response(prompt):
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=1024,
n=1,
temperature=0.5,
)
# Devolver la primera respuesta generada por ChatGPT
return response["choices"][0]["text"]
# Establecer los comandos que el bot de Telegram puede aceptar
bot.set_my_commands([
{
"command": "/chatgpt",
"description": "Enviar un mensaje al bot para que genere una respuesta utilizando la API de ChatGPT"
}
])
# Procesar mensajes recibidos por el bot de Telegram
@bot.message_handler(func=lambda message: True)
def handle_message(message):
# Lista de IDs de usuarios autorizados
AUTHORIZED_USER_IDS = [XXXXX]
# Verificar si el ID del usuario que envió el mensaje coincide con el ID del usuario autorizado
if message.from_user.id in AUTHORIZED_USER_IDS:
# Obtener el texto del mensaje recibido
text = message.text
# Generar una respuesta utilizando la API de ChatGPT
response = generate_response(text)
# Enviar la respuesta generada al remitente del mensaje
bot.send_message(chat_id=message.chat.id, text=response)
else:
# Enviar un mensaje al usuario indicando que no está autorizado a recibir respuestas del bot
bot.send_message(chat_id=message.chat.id, text="You are not authorized to receive responses from this bot.")
# Iniciar el bot de Telegram
bot.polling()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment