¡Hola Comunidad!
Me gustaría compartir con vosotros un ejercicio que he hecho para crear "mi propio" chat con ChatGPT en Telegram.
Ha sido posible gracias a dos componentes de Open Exchange: Telegram Adapter, de @Nikolay Solovyev e IRIS Open-AI, de @Kurro Lopez
Así que con este ejemplo podréis configurar vuestro propio chat con ChatGPT en Telegram.
¡Veamos cómo hacerlo funcionar!
Prerrequisitos
Crear un bot usando una cuenta de @BotFather y obtener el Token del Bot. Después, añadir el bot en un chat o un canal de Telegram y darle permisos de administrador. Más información en: https://core.telegram.org/bots/api
Abrir (o crear si no tenéis) una cuenta en https://platform.openai.com/ y obtener vuestro Open AI API Key y Organization id.
Aseguraos de tener IPM instalado en vuestro InterSystems IRIS. Si no, lo podéis instalar con este comando de una sola línea:
USER> set r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" do r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c")
ObjectScriptObjectScript
O podéis utilizar una imagen de docker de la Community Edition con IPM ya precargado, como esta:
$ docker run --rm --name iris-demo -d -p 9092:52797 -e IRIS_USERNAME=demo -e IRIS_PASSWORD=demo intersystemsdc/iris-community:latest $ docker exec -it iris-demo iris session iris -U USER USER>
Instalación
Instalad el paquete IPM telegram-gpt en un namespace con interoperabilidad habilitada.
USER> zpm "install telegram-gpt"
ObjectScriptObjectScript
Uso
Abrid la producción.
Poned vuestro Token del bot de Telegram tanto en el Servicio como en la Operación de Negocio de Telegram:
También, iniciad la operación St.OpenAi.BO.Api.Connect con vuestra ChatGPT API key y Organization id:
Iniciad la producción.
Haced cualquier pregunta en el chat de Telegram. Obtendréis una respuesta a través de Chat GPT. ¡Que lo disfrutéis!
Y en Visual Trace:
Detalles
Este ejemplo usa la versión 3.5 de ChatGPT, desarrollado por OpenAI. Se puede modificar cambiando el parámetro Model en la clase de transformación de datos.