go to post Evgeny Shvarov · Jun 19, 2023 Yes, thank you Robert. I'm wondering why the class of the request message (which is the same as incoming message) and response message (which is outgoing) are not the properties of the class of operation. As every time when we do a Router it connects one operation or service with another and should be suggested automatically to a transformation UI.
go to post Evgeny Shvarov · Jun 13, 2023 @Kurro Lopez ! I overlooked your package and introduced my own "one-class" package to handle this. So the Setup.Init() method is not a loop anymore :) ClassMethod Init(TgToken As %String, GPTKey As %String) As %Status { set st=$$$OK set production="shvarov.telegramgpt.i14y.TgGptProduction" for item="Telegram.InboundService","Telegram.OutboundOperation" { set st=##class(shvarov.i14y.Settings).SetValue(production,item,"Token",TgToken) quit:$$$ISERR(st) } set item="St.OpenAi.BO.Api.Connect" set st=##class(shvarov.i14y.Settings).SetValue(production,item,"ApiKey",GPTKey) return st }
go to post Evgeny Shvarov · Jun 12, 2023 The bonus set is updated. Two bonuses added: 4 points for the community opportunity implementation. 1 point for the columnar index usage.
go to post Evgeny Shvarov · Jun 12, 2023 Thank you, @Guillaume Rongier! I like it! But sometimes we can just have a production with "standard" services and operations, so there is no option to override OnInit().
go to post Evgeny Shvarov · Jun 12, 2023 Add an issue? If %classes usage could help? Also you can map into %All? Actually you can make an invoke with %Status check in a “before” phase and return not-OK status with message. This will prevent from installation.
go to post Evgeny Shvarov · Jun 11, 2023 The only caveat that this approach works only for the "pre-initialised" settings - those that are presented in the production class xdata block. So, if you plan to make changes programmatically, init these settings with any placeholders and this method will be able to change it programmatically later.
go to post Evgeny Shvarov · Jun 11, 2023 Introduced a module that does the thing what @Sergey Mikhailenko suggested. So install it: USER>zpm "install production-settings" and call: do ##class(shvarov.i14y.Settings).SetValue("ProductionName","ServiceOrOperationName","Setting",Value)
go to post Evgeny Shvarov · Jun 11, 2023 Hi @Marcel Lee ! We didn't do this before. I sent you an email.
go to post Evgeny Shvarov · Jun 10, 2023 For now it ended in the following way: USER>d ##class(shvarov.telegramgpt.Setup).Init($system.Util.GetEnviron("TG_BOT_TOKEN"),$system.Util.GetEnviron("OPENAPI_KEY")) This is how we can setup production after docker build and start in the following project. Thank you, @Guillaume Rongier
go to post Evgeny Shvarov · Jun 10, 2023 Thanks @Alexander.Woodhead! Already implemented in this manner. Now the module can be installed as is: USER>zpm "install telegram-gpt -D TgToken=your_telegram_token -D GPTKey=your_ChatGPT_key"
go to post Evgeny Shvarov · Jun 10, 2023 Thank you, @Sergey Mikhailenko ! This is exactly the thing I was looking for. Implemented in a new version of ChatGPT Telegram bot
go to post Evgeny Shvarov · Jun 10, 2023 In a new version can also be installed as: USER>zpm "install telegram-gpt -D TgToken=your_telegram_token -D GPTKey=your_ChatGPT_key" so you can pass the Telegram Token and ChatGPT API keys as production parameters.
go to post Evgeny Shvarov · Jun 10, 2023 Thank you, @Kurro Lopez! And thanks for introducing chatGPT package to the community!
go to post Evgeny Shvarov · Jun 9, 2023 It is your choice, but I personally recommend to use IRIS as docker images for development. It is very convenient and this approach eliminates a gazillion problems you can met developing with IRIS desktop.
go to post Evgeny Shvarov · Jun 9, 2023 Nothing happens until you intentionally load classes from a new branch and other resources into an IRIS namespace. But I highly recommend you to rebuild iris docker image and reload classes from a new branch when switching branches otherwise you could have a mix of two (or even more) branches in IRIS that can lead to unexpected behaviour.
go to post Evgeny Shvarov · Jun 8, 2023 Great article, @Muhammad Waseem ! I'd add a docker command to start terminal. First this one launches IRIS and creates a fresh namespace alone with the user 'demo' and password 'demo': docker run --rm --name iris-demo -d -p 9091:1972 -p 9092:52773 -e IRIS_PASSWORD=demo -e IRIS_USERNAME=demo -e IRIS_NAMESPACE=DEV intersystemsdc/iris-community Then to launch a terminal in PROD namespace: docker exec -it iris-demo iris session iris -U DEV DEV>