Last active
December 9, 2022 14:28
-
-
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…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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