Search

Clear filter
Announcement
Anastasia Dyubaylo · Aug 16, 2022

InterSystems Interoperability Contest: Building Sustainable Solutions

Hello Developers! Want to show off your interoperability skills? Take part in our next exciting contest: 🏆 InterSystems Interoperability Contest: Building Sustainable Solutions 🏆 Duration: August 29 - September 18 More prizes: $13,500 – prize distribution has changed! >> Submit your application here << The topic 💡 Interoperability solutions for InterSystems IRIS and IRIS for Health 💡 Develop any interoperability solution or a solution that helps to develop or/and maintain interoperability solutions using InterSystems IRIS or InterSystems IRIS for Health. In addition, we invite developers to try their hand at solving one of the global issues. This time it will be a Sustainable Development Problem. We encourage you to join this competition and build solutions aimed at solving sustainability issues: 1) You will receive a special bonus if your application can solve sustainability issues, ESG, alternative energy sources, optimum utilization, etc.2) There will also be another bonus if you prepare and submit a dataset related to sustainability, ESG, alternative energy sources, or optimum utilization. General Requirements: Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest. The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition. The application should be Open Source and published on GitHub. The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works. 🆕 Contest Prizes: You asked – we did it! This time we've increased the prizes and changed the prize distribution! 1. Experts Nomination – winners will be selected by the team of InterSystems experts: 🥇 1st place - $5,000 🥈 2nd place - $3,000 🥉 3rd place - $1,500 🏅 4th place - $750 🏅 5th place - $500 🌟 6-10th places - $100 2. Community winners – applications that will receive the most votes in total: 🥇 1st place - $1,000 🥈 2nd place - $750 🥉 3rd place - $500 ✨ Global Masters badges for all winners included! Note: If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners. Important Deadlines: 🛠 Application development and registration phase: August 29, 2022 (00:00 EST): Contest begins. September 11, 2022 (23:59 EST): Deadline for submissions. ✅ Voting period: September 12, 2022 (00:00 EST): Voting begins. September 18, 2022 (23:59 EST): Voting ends. Note: Developers can improve their apps throughout the entire registration and voting period. Who Can Participate? Any Developer Community member, except for InterSystems employees (ISC contractors allowed). Create an account! Developers can team up to create a collaborative application. Allowed from 2 to 5 developers in one team. Do not forget to highlight your team members in the README of your application – DC user profiles. Helpful Resources: ✓ Instruqt plays: InterSystems Interoperability: Reddit Example ✓ Example applications: interoperability-embedded-python IRIS-Interoperability-template ETL-Interoperability-Adapter HL7 and SMS Interoperability Demo UnitTest DTL HL7 Twitter Sentiment Analysis with IRIS Healthcare HL7 XML RabbitMQ adapter PEX demo iris-megazord ✓ Online courses: Interoperability for Business Interoperability QuickStart Interoperability Resource Guide - 2019 ✓ Videos: Intelligent Interoperability Interoperability for Health Overview ✓ For beginners with IRIS: Build a Server-Side Application with InterSystems IRIS Learning Path for beginners ✓ For beginners with ObjectScript Package Manager (ZPM): How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS Package First Development Approach with InterSystems IRIS and ZPM ✓ How to submit your app to the contest: How to publish an application on Open Exchange How to submit an application for the contest Need Help? Join the contest channel on InterSystems' Discord server or talk with us in the comment to this post. We can't wait to see your projects! Good luck 👍 By participating in this contest, you agree to the competition terms laid out here. Please read them carefully before proceeding. This article from MIT Enterprise Forum might help you on getting some inspiration about sustainability issues and spark ideas on what to develop https://mitefcee.org/sustainability-challenges/ Is it required use dtl, bpl and adapters to be considered an interoperability solution? You should have a production, receive data in services and send it to operations via messages and transmit further via operations. so BPL/DTL usage is not mandatory, but will give you a bonus points Added Instruqt resource to try InterSystems Interoperability: Developers! The technology bonuses have been announced! You can gain extra points in the voting by this! Please, check here! Added also iris-megazord by @Henrique, @henry, and @José.Pereira. It has a very beautiful Flow Editor for interoperability productions. Not sure if the team will apply again with the solution but it can at least inspire participants. Please help me with the below. Fixed with the proper link https://play.instruqt.com/embed/intersystems/tracks/interop?token=em_XtBbRAsjw_hy2-c2 thank you! Dear Developers, Registration for the contest ends this Sunday.Hurry up to submit your application and you will still have a whole voting week to improve it)Happy coding! 🤩 Developers! Tomorrow is the last day to register for the contest! We are waiting for your applications! Hello Irina, I'm happy to say that I have joined the competition and that my application has been submitted !! Here is the link to my app and the link to the DC post about it. https://openexchange.intersystems.com/package/Sustainable-Machine-Learninghttps://community.intersystems.com/post/sustainable-machine-learning-intersystems-interoperability-contest Guess who's back?! Yaaay!! ;)))
Announcement
Evgeny Shvarov · Jul 25, 2022

HealthConnect and InterSystems IRIS For Health Comparison

Hi Community, There is a new PDF Resource published on our official site depicting key features and a comparison of InterSystems healthcare interoperability products: Health Connect and IRIS For Health. >> https://www.intersystems.com/health-data-integration-chart.pdf I think this could be useful for the Community. Hi @Evgeny.Shvarov This is good feature list one thing not clear as its mentioned on the first page with below text "InterSystems HealthShare Health Connect® is the high-performance integration engine delivering proven process management, monitoring and support for massive transaction volumes to keep your critical healthcare applications running. InterSystems IRIS for Health™ is a data platform for the rapid development of highly scalable healthcare solutions. It also delivers all the interoperability features of HealthShare Health Connect plus advanced support for HL7® FHIR®." Sor IRIS For Health Interoperability can not support for high-performance massive transaction volumes? For Example: one VM With 16 vCPU Running Health Connects handles 1 millions messages per minutes Same messages sent to another VM With 16 vCPU Running I4H Interoperability will handles 1 millions messages per minutes or it will be less or more? Kindly clarrify if possible. Regards Bukhtiar Hi @Bukhtiar.Ahmad9799 ! Both IRIS for Health and Health Connect are equally suitable for high-performance transaction volume use cases. It depends, of course, on the implementation and tasks, but this is not what differentiates these two products from each other.
Announcement
Olga Zavrazhnova · Jul 11, 2022

Boston InterSystems Developer Meetup on Python Interoperability

Hi Community, We are excited to announce that InterSystems Developers Meetups are finally back in person! The first Python-related meetup will take place on July 21 at 6:00 at Democracy Brewing, Boston, MA. There will be 2-3 short presentations related to Python, Q&A, networking sessions as well as free beer with snacks and brewery tours. AGENDA: 6:00-6:20 pm First round of drinks, appetizers 6:20-6:40 pm "Run Your Python Code & Your Data Together" by @Robert.Kuszewski, Product Manager - Developer Experience at InterSystems 6:40-7:00 pm "Enterprise Application Integration in Python" by @Michael.Breen, Senior Support Specialist at InterSystems 7:00-7:20 pm Open Mic & Project Discussion: Working on something exciting? Feeling the need to share it? Drop us a line and we can add you to the lineup! 7:20-8:30 pm Brewery tours & Networking Don't miss out excellent opportunity to discuss new solutions in a great company of like-minded peers. Networking is strongly recommended! :) >> REGISTER HERE << ⏱ Time: July 21, 6:00 - 8:30 p.m. 📍Place: Democracy Brewing35 Temple Place in Downtown Crossing, Boston, MAhttps://www.democracybrewing.com/
Article
Lucas Enard · Sep 11, 2022

Sustainable Machine Learning for the InterSystems Interoperability Contest

Hello everyone, I’m a French student that just arrived in Prague for an academical exchange for my fifth year of engineering school and here is my participation in the interop contest. I hadn’t much time to code since I was moving from France to Prague and I’m participating alone, so I decided to make a project that’s more like a template rather than an application. I wanted to participate since my field (Data Science and AI) is not often linked with sustainability and the contest was a way for me to express myself in this important subject that is sustainability and Environnement. As you know, Artificial Intelligence is becoming more and more popular, with many well-known firms trying to follow the movement and sell tools to easily create machine learning models, train them and use them. All of this is practical and easy, but it comes with a cost, a financial one but also an Environnmental one. Training huge models again and again can take a lot of resources and produce a lot of CO2s. Supercomputers are running for days, and days and the size of the models are just exponentially increasing taking more space than ever. All these effort for some performance improvement that are not even sure to be find in some cases. Of course, this process is needed by many firms where even 0.1% of improvement in the accuracy of a model could save thousands of lives. That's why this template is designed for more common uses. However, as I had the opportunity to work with NLP (Natural Language Process) or Image Classification, I realized that some tools and models are already almost usable as is and can help us save hundreds of hours of training and therefore a lot of CO2s production and electricity consumption. That’s why I decided to create a template using InterSystems technologies to create an interoperable solution that answer some sustainability issues by allowing you to easily, in a few clicks, download pre-trained models from the internet ONCE, use them as much as you want for your own need, and of course, fine-tune these pre-trained models with new content available on an IRIS database and add content to the existing model. That way, in the template, we are taking an NLP model, trying it, then training it on data to create five new labels in the model to grade internet review. Therefore, by doing this, we end up with (If you have time and some compute power) a great model that can be used to predict the grade of internet review, that for free and for a small amount of CO2 produced. See [the GitHub](https://github.com/LucasEnard/Contest-Sustainability) and the Open Exchange post linked to this article. Or see the ReadMe here : # 1. Contest-Sustainability This is an template using InterSystems technologies to create an interoperable solution that answer some sustainability issues by allowing you to easily, in a few clicks, download pre-trained models from the internet ONCE, use them as much as you want for your own need, and of course, fine-tune these pre-trained models with new content available on an IRIS database and add content to the existing model. In this example we are taking an NLP model, trying it, then training it on data to create five new labels in the model to grade internet review. Saving in the process a lot of resources and CO2 emission. Here are some models as example you can try : https://huggingface.co/gpt2 https://huggingface.co/Jean-Baptiste/camembert-ner https://huggingface.co/bert-base-uncased https://huggingface.co/facebook/detr-resnet-50 https://huggingface.co/facebook/detr-resnet-50-panoptic TABLE OF CONTENT : - [1. Contest-Sustainability](#1-contest-sustainability) - [2. Installation](#2-installation) - [2.1. Starting the Production](#21-starting-the-production) - [2.2. Access the Production](#22-access-the-production) - [2.3. Closing the Production](#23-closing-the-production) - [3. How it works](#3-how-it-works) - [4. HuggingFace API](#4-huggingface-api) - [5. Use any model from the web](#5-use-any-model-from-the-web) - [5.1. FIRST CASE : YOU HAVE YOUR OWN MODEL](#51-first-case--you-have-your-own-model) - [5.2. SECOND CASE : YOU WANT TO DOWNLOAD A MODEL FROM HUGGINGFACE](#52-second-case--you-want-to-download-a-model-from-huggingface) - [5.2.1. Settings](#521-settings) - [5.2.2. Testing](#522-testing) - [6. Fine-tune the models](#6-fine-tune-the-models) - [6.1. Tunning the model](#61-tunning-the-model) - [6.1.1. Download the model](#611-download-the-model) - [6.1.2. Settings](#612-settings) - [6.1.3. Train the model](#613-train-the-model) - [6.1.4. Replace the model](#614-replace-the-model) - [6.2. Use the model](#62-use-the-model) - [6.2.1. Settings](#621-settings) - [6.2.2. Test the model](#622-test-the-model) - [7. Important note](#7-important-note) - [8. TroubleShooting](#8-troubleshooting) - [9. Conclusion](#9-conclusion) # 2. Installation ## 2.1. Starting the Production While in the contest-sustainability folder, open a terminal and enter : ``` docker-compose up ``` The very first time, it may take a few minutes to build the image correctly and install all the needed modules for Python. ## 2.2. Access the Production Following this link, access the production : [Access the Production](http://localhost:52795/csp/irisapp/EnsPortal.ProductionConfig.zen?RODUCTION=INFORMATION.QuickFixProduction) ## 2.3. Closing the Production ``` docker-compose down ``` # 3. How it works For now, some models may not work with this implementation since everything is automatically done, which means, no matter what model you input, we will try to make it work through `transformers` `pipeline` library. Pipeline is a powerful tool by the HuggingFace team that will scan the folder in which we downloaded the model, then understand what library it should use between PyTorch, Keras, Tensorflow or JAX to then load that model using `AutoModel`. From here, by inputting the task, the pipeline knows what to do with the model, tokenizer or even feature-extractor in this folder, and manage your input automatically, tokenize it, process it, pass it into the model, then give back the output in a decoded form usable directly by us. # 4. HuggingFace API Some people or some systems can not download models or use them due to some restriction, that's why it is possible to use the HuggingFace API and call some models directly throught this service. It is made easier for you here : You must first start the demo, using the green `Start` button or `Stop` and `Start` it again to apply your config changes. Then, by clicking on the operation `Python.HFOperation` of your choice, and selecting in the right tab `action`, you can `test` the demo. In this `test` window, select : Type of request : `Grongier.PEX.Message` For the `classname` you must enter : ``` msg.HFRequest ``` And for the `json`, here is an example of a call to GPT2 : ``` { "api_url":"https://api-inference.huggingface.co/models/gpt2", "payload":"Can you please let us know more details about your ", "api_key":"----------------------" } ``` Now you can click on `Visual Trace` to see in details what happened and see the logs. **NOTE** that you must have an API key from HuggingFace before using this Operation ( the api-keys are free, you just need to register to HF ) **NOTE** that you can change the url to try any other models from HuggingFace, you may need to change the payload. See as example: ![sending hf req](https://user-images.githubusercontent.com/77791586/182403526-0f6e97a0-2019-4d86-b1ae-38c56dfc8746.png) ![hf req](https://user-images.githubusercontent.com/77791586/182404662-b37b9489-c12c-47f8-98bd-18008c9a615e.jpg) ![hf resp](https://user-images.githubusercontent.com/77791586/182403515-7c6c2075-bdb6-46cd-9258-ac251844d591.png) # 5. Use any model from the web In the section we will teach you how to use almost any pre-trained model from the internet, HuggingFace or not in order to save some resource or simply use these model inside IRIS. ## 5.1. FIRST CASE : YOU HAVE YOUR OWN MODEL In this case, you must copy paste your model, with the config, the tokenizer.json etc inside a folder inside the model folder. Path : `src/model/yourmodelname/` From here you must create a new operation, call it as you wish, go to the parameters of this operation. Then go to `settings` in the right tab, then in the `Python` part, then in the `%settings` part. Here, you can enter or modify any parameters ( don't forget to press `apply` once your are done ). Here's the default configuration for this case : %settings ``` name=yourmodelname task=text-generation ``` **NOTE** that any settings that are not `name` or `model_url` will go into the PIPELINE settings. Now you can double-click on the operation and `start` it. You must see in the `Log` part the starting of your model. From here, we create a `PIPELINE` using transformers that uses your config file find in the folder as seen before. To call that pipeline, click on the operation, and select in the right tab `action`, you can `test` the demo. In this `test` window, select : Type of request : `Grongier.PEX.Message` For the `classname` you must enter : ``` msg.MLRequest ``` And for the `json`, you must enter every arguments needed by your model. Here is an example of a call to GPT2 : ``` { "text_inputs":"Unfortunately, the outcome", "max_length":100, "num_return_sequences":3 } ``` Click `Invoke Testing Service` and wait for the model to operate. See for example: ![sending ml req](https://user-images.githubusercontent.com/77791586/182402707-13ca90d0-ad5a-4934-8923-a58fe821e00e.png) Now you can click on `Visual Trace` to see in details what happened and see the logs. See for example : ![ml req](https://user-images.githubusercontent.com/77791586/182402878-e34b64de-351c-49c3-affe-023cd885e04b.png) ![ml resp](https://user-images.githubusercontent.com/77791586/182402932-4afd14fe-5f57-4b03-b0a6-1c6b74474015.png) ## 5.2. SECOND CASE : YOU WANT TO DOWNLOAD A MODEL FROM HUGGINGFACE In this case, you must find the URL of the model on HuggingFace. Find a model that does what you are looking for and use it without spending resources and using the InterSystems technologies. ### 5.2.1. Settings From here you must go to the parameters of the `Hugging`. Click on the `HuggingFace` operation of your choice then go to `settings` in the right tab, then in the `Python` part, then in the `%settings` part. Here, you can enter or modify any parameters ( don't forget to press `apply` once your are done ). Here's some example configuration for some models we found on HuggingFace : %settings for gpt2 ``` model_url=https://huggingface.co/gpt2 name=gpt2 task=text-generation ``` %settings for camembert-ner ``` name=camembert-ner model_url=https://huggingface.co/Jean-Baptiste/camembert-ner task=ner aggregation_strategy=simple ``` %settings for bert-base-uncased ``` name=bert-base-uncased model_url=https://huggingface.co/bert-base-uncased task=fill-mask ``` %settings for detr-resnet-50 ``` name=detr-resnet-50 model_url=https://huggingface.co/facebook/detr-resnet-50 task=object-detection ``` %settings for detr-resnet-50-protnic ``` name=detr-resnet-50-panoptic model_url=https://huggingface.co/facebook/detr-resnet-50-panoptic task=image-segmentation ``` **NOTE** that any settings that are not `name` or `model_url` will go into the PIPELINE settings, so in our second example, the camembert-ner pipeline requirers an `aggregation_strategy` and a `task` that are specified here while the gpt2 requirers only a `task`. See as example: ![settings ml ope2](https://user-images.githubusercontent.com/77791586/182403258-c24efb77-2696-4462-ae71-9184667ac9e4.png) Now you can double-click on the operation and `start` it. **You must see in the `Log` part the starting of your model and the downloading.** **NOTE** You can refresh those logs every x seconds to see the advancement with the downloads. ![dl in real time](https://user-images.githubusercontent.com/77791586/182403064-856724b5-876e-460e-a2b4-34eb63f44673.png) From here, we create a `PIPELINE` using transformers that uses your config file find in the folder as seen before. ### 5.2.2. Testing To call that pipeline, click on the operation , and select in the right tab `action`, you can `test` the demo. In this `test` window, select : Type of request : `Grongier.PEX.Message` For the `classname` you must enter : ``` msg.MLRequest ``` And for the `json`, you must enter every arguments needed by your model. Here is an example of a call to GPT2 : ``` { "text_inputs":"George Washington lived", "max_length":30, "num_return_sequences":3 } ``` Here is an example of a call to Camembert-ner : ``` { "inputs":"George Washington lived in washington" } ``` Here is an example of a call to bert-base-uncased : ``` { "inputs":"George Washington lived in [MASK]." } ``` Here is an example of a call to detr-resnet-50 using an online url : ``` { "url":"http://images.cocodataset.org/val2017/000000039769.jpg" } ``` Here is an example of a call to detr-resnet-50-panoptic using the url as a path: ``` { "url":"/irisdev/app/misc/000000039769.jpg" } ``` Click `Invoke Testing Service` and wait for the model to operate. Now you can click on `Visual Trace` to see in details what happened and see the logs. **NOTE** that once the model was downloaded once, the production won't download it again but get the cached files found at `src/model/TheModelName/`. If some files are missing, the Production will download them again. See as example: ![sending ml req](https://user-images.githubusercontent.com/77791586/182402707-13ca90d0-ad5a-4934-8923-a58fe821e00e.png) ![ml req](https://user-images.githubusercontent.com/77791586/182402878-e34b64de-351c-49c3-affe-023cd885e04b.png) ![ml resp](https://user-images.githubusercontent.com/77791586/182402932-4afd14fe-5f57-4b03-b0a6-1c6b74474015.png) See as example: ![sending ml req](https://user-images.githubusercontent.com/77791586/183036076-f0cb9512-573b-4723-aa70-64f575c8f563.png) ![ml resp](https://user-images.githubusercontent.com/77791586/183036060-2a2328f7-535e-4046-9d2c-02d6fa666362.png) # 6. Fine-tune the models In this part we are trying to fine-tune a model in order to repurpose an existing model and make it even better without using too much resources. ## 6.1. Tunning the model ### 6.1.1. Download the model In order to use this GitHub you need to have a model from HuggingFace compatible with pipeline to use and train, and have a dataset you want to train your model on. In order to help, we let you the possibility to use the Python script in `src/utils/download_bert.py`. It will download for you the `"https://huggingface.co/bert-base-cased"` model and put inside the `src/model/bert-base-cased` folder if it's not already here. Moreover we also give you a DataSet to train the bert model on, this dataset was already loaded inside the IRIS DataBase and nothing else needs to be done if you want to use it. ( You can access it going to the SQL part of the portal and in the iris database namespace then to the review table ) To use the script, if you are inside the container, you can execute it without worry, if you are in local, you may need to `pip3 install requests` and `pip3 install beautifulsoup4` See the output : ![Download OutPut](https://user-images.githubusercontent.com/77791586/185119729-defa55d2-7d11-408e-b57e-2c00eb7823d8.png) ### 6.1.2. Settings If you want to use the bert-base-cased model, and you did downloaded it using the script, nothing needs to be added to the settings and you can advance to the [train the model part](#43-train-the-model). If you want to use your own model, click on the `Python.TuningOperation`, and select in the right tab `Settings`, then `Python` then in the `%settings` part, enter the path to the model, the name of the folder and the number of label you want it trained on. Example : ``` path=/irisdev/app/src/model/ model_name=bert-base-cased num_labels=5 ``` ### 6.1.3. Train the model To train the model you must go the `Production` following this link : ``` http://localhost:52795/csp/irisapp/EnsPortal.ProductionConfig.zen?PRODUCTION=iris.Production ``` And connect using : ```SuperUser``` as username and ```SYS``` as password. To call the training, click on the `Python.TuningOperation`, and select in the right tab `Actions`, you can `Test` the demo. In this test window, select : Type of request : Grongier.PEX.Message For the classname you must enter : ``` msg.TrainRequest ``` And for the json, you must enter every arguments needed by the trainer to train. Here is an example that train on the first 20 rows ( This isn't a proper training but it is fast ): ``` { "columns":"ReviewLabel,ReviewText", "table":"iris.Review", "limit":20, "p_of_train":0.8, "output_dir":"/irisdev/app/src/model/checkpoints", "evaluation_strategy":"steps", "learning_rate":0.01, "num_train_epochs":1 } ``` As for example : ![Train request](https://user-images.githubusercontent.com/77791586/185121527-696becaa-8b3e-4535-8156-1d40423e622b.png) As you can see, you must enter - `table` to use. - `columns` to use ( first is the `label`, second is the `input` to be tokenized ) - `limit` of rows to take in ( if you don't precise a number of rows, all the data will be used ) - `p_of_train` the percentage of training data to take from the dataset and `1 - p_of_train` the percentage of testing data to take from the dataset. After that, the other parameters are up to you and can be anything according to `https://huggingface.co/docs/transformers/main_classes/trainer` parameters. **NOTE** that the batch size for training and testing is automatically calculated if not input in the request. ( It's the biggest divider of the number of rows that's less than the square root of the number of row and less than 32 ) Click Invoke Testing Service and close the testing window without waiting. Now access the `Python.TuningOperation`, and select in the right tab `log` ; Here you can see the advancement of the training and evaluations. Once it is over, you will see a log saying that the new model was saved in a temporary folder. Now access the `Python.TuningOperation`, and select in the right tab `message` and select the last one by clicking on it's header. Here you can see the advancement of the training and evaluations and at the end you can have access to the Metrics of the old and the new model for you to compare. ### 6.1.4. Replace the model **If you want to keep the old model**, nothing must be done, the old one will stay on the non-temporary folder and is still loaded for further training. **If you want to keep the new model**, you must click on the `Python.TuningOperation`, and select in the right tab `Actions` and test. In this test window, select : Type of request : Grongier.PEX.Message For the classname you must enter : ``` msg.OverrideRequest ``` And for the json, empty brackets: ``` {} ``` Click Invoke Testing Service and see the response message. The new model was moved from the temporary folder to the non-temporary folder. ## 6.2. Use the model Training a model is interesting but you can also try it out. ### 6.2.1. Settings If you want to use the bert-base-cased model, and you did downloaded it using the script, nothing needs to be added to the settings and you can advance to the [test the model part](#52-test-the-model). If you want to use your own model, click on the `Python.TuningOperation`, and select in the right tab `Settings`, then `Python` then in the `%settings` part, enter the parameter to add to the pipeline. ### 6.2.2. Test the model To test the model you must go the `Production` following this link : ``` http://localhost:52795/csp/irisapp/EnsPortal.ProductionConfig.zen?PRODUCTION=iris.Production ``` And connect using : ```SuperUser``` as username and ```SYS``` as password. To call the testing, click on the `Python.MLOperation`, and select in the right tab `Actions`, you can `Test` the demo. In this test window, select : Type of request : Grongier.PEX.Message For the classname you must enter : ``` msg.MLRequest ``` And for the json, you must enter every arguments needed by the model to work ``` { "inputs":"This was a really bad experience" } ``` Press `Call test services` and then watch the result. # 7. Important note Fine-tuning models can take a LOT of time and resources, however it will always consume less resource than training a model from scratch. You can already see that it's taking a long time and a lot of computer power to fine-tune the model so imagine the cost if you had to train it from scratch and start over multiple times to get the right results. # 8. TroubleShooting If you have issues, reading is the first advice we can give you, most errors are easily understood just by reading the logs as almost all errors will be captured by a try / catch and logged. If you need to install a new module, or Python dependence, open a terminal inside the container and enter for example : "pip install new-module" To open a terminal there are many ways, - If you use the InterSystems plugins, you can click in the below bar in VSCode, the one looking like `docker:iris:52795[IRISAPP]` and select `Open Shell in Docker`. - In any local terminal enter : `docker-compose exec -it iris bash` - From Docker-Desktop find the IRIS container and click on `Open in terminal` Some models may require some changes for the pipeline or the settings for example, it is your task to add in the settings and in the request the right information. # 9. Conclusion From here you should be able to use some models that you may need on IRIS and fine-tune them as you wish. This template is supposed to be modified to suits your need and was created as a base for any AI and IRIS project that has sustainability and interoperability in mind. Due to the lack of time I was unable to add an API that was supposed to use a Director to directly communicate with the production and allow the users to make request to the models. However, if you are still interested in an IRIS API using this Python module you can check [my GitHub](https://github.com/LucasEnard/) or you can directly go to [my example of API in Python for IRIS](https://github.com/LucasEnard/iris-python-flask-api-template). Link to my DC profile : https://community.intersystems.com/user/lucas-enard-0 Best of luck for the contest ! Thank you so much!! Hi @Lucas.Enard2487! Thanks for such a great contribution to the community! I have a question: where can I obtain an API key for GPT2 to run the test: { "api_url":"https://api-inference.huggingface.co/models/gpt2", "payload":"Can you please let us know more details about your ", "api_key":"----------------------" } Hello, Thanks for trying my template. You need to register through the HuggingFace website and get an API key for free.
Announcement
Olga Zavrazhnova · Sep 22, 2022

InterSystems at CalHacks hackathon by UC Berkeley

Hi Community! InterSystems will be a technical sponsor at CalHacks hackathon by UC Berkeley, October 14-16 2022. We can't reveal our challenge at the moment, but as a little spoiler - it is related to healthcare ;)The team from our side @Evgeny.Shvarov @Dean.Andrews2971 @Regilo.Souza @Akshat.Vora and more!Join InterSystems in this fun and inspirational event - apply to be a mentor, volunteer, or judge here
Announcement
Evgeny Shvarov · May 4, 2020

InterSystems Developers Community Release, May 2020

Hi Developers! Here is the May 2020 review on the new features on Developers Community! We introduced the following new features: improved events section; Other topics were removed from main; Search in the specific language only; subscription settings in all the supported languages; Discord Channel is introduced. See the details below. Enhanced Events Section In this release Events section of the site shows upcoming and past events, and has event categories: online and offline. Read more about the feature. And hold your webinars on Developers Community. 'Other' topics removed from Main Sometimes, not often, we are getting posts that are not relevant to InterSystems or to InterSystems community but could be interesting to members of the InterSystems Developers Community. We don't want to block such conversations but also don't want to mix them with general technology conversation. So if the post goes with 'Other' main tag only it lives under the separate Other tag and is never shown in the main feed. Search in the specific language only Now DC search will not show you the results in Spanish if for the search in English. And vice-versa. And both will not show Japanese articles. And the search in Japanese will show Japanese posts only. Convenient, isn't it? This functionality comes with the current release. Subscription settings in all the supported languages When you open a language-specific community for the first time we suggest copying your subscription settings to a new site too. And if you agree you start getting emails in another language too. And it was difficult to unsubscribe or adjust your email settings on another language moreover if you don't know another language at all and opened the language-specific site because of curiosity. In this release, we introduced the management of all the subscriptions in all the sites in all the languages. So you can go to your subscriptions settings to examine and change the subscriptions on all the DC-language sites: Discord Channel for DC We have a Discord channel now! We introduced it during the contest, but it makes total sense for any other InterSystems technology-related chats. Welcome! As always we fixed a lot of minor bugs, such as the bug in a search, improved events management, and so on. Check the full kanban of solved issues in April 2020. Here is the planned kanban for May 2020. Submit your ideas, bug fixes, contribute to Developers Community, and stay tuned!
Announcement
Cristiano Silva · May 4, 2020

InterSystems IRIS Core Solutions Developer Specialist

Hi fellows, I'm glad in annouce that now I'm certified: https://www.youracclaim.com/badges/30f9d00f-82a3-45ab-a879-b83a7053f00d/public_url Congrats, @Cristiano.Silva! Congrats Thanks Evgeny. Obrigado Henrry. Updated link to the badge https://www.youracclaim.com/badges/30f9d00f-82a3-45ab-a879-b83a7053f00d/public_url Congrats!! Do you have tips for exam prep?
Announcement
Evgeny Shvarov · Jun 4, 2020

InterSystems Developers Community Release, June 2020

Hi Developers! Want to share with you what we did in May 2020 to improve InterSystems Developers Community. Here are the new features: * New, better design for DC notification letters. * Editor in markdown: images import with hosting, decoration, etc. * Unanswered questions management improvements. Here we go! ## Better DC notifications design Since this release, we send you emails with an improved design which makes DC letters more readable, clear, accurate, and even beautiful. If this is not what you experience, please send your feedback in this post or into the issues section for DC. Here is an example of the notification: ## Markdown Editor Enhancements Since this release we make markdown as a first-class-citizen on DC: Images import and hosting, code highlighting, teaser brakes. Images can be drag-n-dropped with new markdown editor! We have the e - all that you asked! Even the Editor toolbar! Bravo DC Developers team! Moreover, I write this announcement in Markdown :) Because I can do it now with pleasure. I Hope, you will like this new feature as I do. ## Engagement for unanswered questions Developers! When we ask questions and get answers we often forget to mark replies as answers - please, don't forget to do this if the reply satisfies you and you can accept it as an answer. This makes the difference: everybody sees that problem is solved, the developer who replied you, understands that his answer was helpful and thus the world is getting a little bit better place. Since this release, we introduced a couple of new email notifications (very beautiful of course) which remind you that you have questions with new replies. Also, we added a new menu in your Member profile which gives you the quick access to unaccepted answers: We also introduced a number of other features and solved a lot of bugs. You can check this in [May's kanban](https://github.com/intersystems-community/developer-community/projects/26). And here is a new [June 2020 kanban. ](https://github.com/intersystems-community/developer-community/projects/27) You are very welcome for new [enhancement requests and bug reports](https://github.com/intersystems-community/developer-community/issues)! Stay tuned!
Announcement
Anastasia Dyubaylo · Nov 17, 2020

New Video: OCR Service for InterSystems IRIS

Hi Community, Please welcome the new video, specially recorded by @Yuri.Gomes for the InterSystems Interoperability contest: ⏯ OCR Service for InterSystems IRIS This video details how to develop OCR using InterSystems IRIS using Tesseract and Java. This is an InterSystems IRIS Interoperability OCR Service to extract text from images and pdfs from a file into a multipart request from form or HTTP request. ⬇️ OCR Service on Open Exchange ➡️ Learn more: Using Tesseract OCR and Java Gateway For any questions, please write to @Yuri.Gomes at yurimarx@gmail.com or in the Direct Messages on DC. And don't forget to vote for this project in the InterSystems Interoperability Contest! 🔥 Stay tuned! Hi community, Tesseract is the best tool open source to extract text from pdf and images. Now, it is possible use this fantastic ocr engine from google into IRIS. See in the video.
Announcement
Anastasia Dyubaylo · Feb 17, 2021

New Video: Using InterSystems IRIS and Alteryx

Hey Developers, See how you can use InterSystems IRIS and Alteryx together to provide analytics and insights to your users. ⏯ Using InterSystems IRIS and Alteryx 👉🏼 Subscribe to InterSystems Developers YouTube. Enjoy and stay tuned!
Question
Muhammad Waseem · Jun 14, 2021

Visual studio .Net over InterSystems studio

Just want to know what is the reason to user Visual Studio .Net editor over InterSystems studio. Thanks I prefer editing in Visual Studio Code for two main reasons: It's available on Windows, Mac, and Linux. So I always have it available. It's a great editor for all my code - ObjectScript, JavaScript, Python, Java. https://intersystems-community.github.io/vscode-objectscript/introduction/ The reason for that will be that it is Cross Platform my friend. Visual Studio Code is supported on all the available platforms as at present. And also it has a compatibility to to edit, run and debug any version of the code that you have chosen. Ex: F#, C#, VB, Python etc. Hope this was useful and i have made it simple and clear. Thanks. We use both depending on the situation. VS Code is more modern and certainly better for Git and Merge tools than Studio but it doesn't have all the abilities of Studio that I've found, global storage properties etc. We've found VS Code doesn't handle physical files as well as Studio at least for InterSystems so its unfriendly when using CSPs that are version controlled.
Announcement
Anastasia Dyubaylo · Jun 22, 2021

InterSystems AI Contest Kick-Off Webinar

Hi Community, We're pleased to invite all the developers to the upcoming InterSystems AI Contest Kick-Off Webinar! The topic of this webinar is dedicated to the InterSystems AI programming contest. During the webinar, we will demo how to load data into IRIS, how to deal with it using ODBC/JDBC and REST, and how to use special AI/ML features of IRIS: IntegratedML, DataRobot, R Gateway, Embedded Python, PMML. Date & Time: Monday, June 28 — 11:00 AM EDT Speakers: 🗣 @Aleksandar.Kovacevic, InterSystems Sales Engineer🗣 @Théophile.Thierry, InterSystems Intern🗣 @Robert.Kuszewski, Product Manager - Developer Experience, InterSystems 🗣 @Evgeny.Shvarov, InterSystems Developer Ecosystem Manager Join the webinar to find out all the details about this competition and ask your questions to our speakers! ✅ REGISTER TODAY! Hey Developers, The recording of this webinar is available on InterSystems Developers YouTube! Please welcome: ⏯ InterSystems AI Contest Kick-Off Webinar Big applause to our speakers! 👏🏼
Announcement
Evgeny Shvarov · Aug 3, 2021

Join InterSystems Discord While DC Is Not Available

Hi Developers! Currently, we are experiencing technical issues with DC sign-in - you may not be able to sign in and contribute to the Developer Community. Our engineers are already working to solve the issue, so we are committed to restoring service quickly. To stay in touch, let's continue our tech talks on InterSystems Developers Discord Server 👈 Thank you for your patience!
Announcement
Evgeny Shvarov · Aug 26, 2021

Technology Bonuses for InterSystems Analytics Contest 2021

Hi Developers! Here're the technology bonuses for the InterSystems Analytics contest that will give you extra points in the voting. Adaptive Analytics (AtScale) Cubes usage - 4 pointsInterSystems Adaptive Analytics provides the option to create and use AtScale cubes for analytics solutions. You can use the AtScale server we set up for the contest (URL and credentials can be collected in the Discord Channel) to use cubes or create a new one and connect to your IRIS server via JDBC. The visualization layer for your Analytics solution with AtScale can be crafted with Tableau, PowerBI, Excel, or Logi. Documentation, AtScale documentation Training Tableau, PowerBI, Logi usage - 3 points Collect 3 points for the visualization you made with Tableau, PowerBI, or Logi - 3 points per each. Visualization can be made vs direct IRIS BI server or via the connection with AtScale. Logi is available on behalf of the InterSystems Reports solution - you can download the composer on InterSystems WRC. A temporary license can be collected in the discord channel. Documentation Training InterSystems IRIS BI - 3 points InterSystems IRIS Business Intelligence is a feature of IRIS which gives you the option to create BI cubes and pivots against persistent data in IRIS and deliver then this information to users using interactive dashboards. Learn more The basic iris-analytics-template contains examples of IRIS BI cube, pivot, and a dashboard. Here is the set of examples on IRIS BI solutions: Samples BI Covid19 analytics Analyze This Game of Throne Analytics Pivot Subscriptions Error Globals Analytics Creating InterSystems IRIS BI Solutions Using Docker & VSCode (video) The Freedom of Visualization Choice: InterSystems BI (video) InterSystems BI(DeepSee) Overview (online course) InterSystems BI(DeepSee) Analyzer Basics (online course) InterSystems IRIS NLP (iKnow) - 3 points InterSystems NLP a.k.a. iKnow is an InterSystems IRIS feature and is a library for Natural Language Processing that identifies entities (phrases) and their semantic context in natural language text in English, German, Dutch, French, Spanish, Portuguese, Swedish, Russian, Ukrainian, Czech and Japanese. Learn more about iKnow on Open Exchange Examples: Covid iKnow Text Navigator Samples Aviation and more. Use iKnow to manage unstructured data in your analytics solution and get 1 bonus point. Docker container usage - 2 points The application gets a 'Docker container' bonus if it uses InterSystems IRIS running in a docker container. Here is the simplest template to start from. ZPM Package deployment - 2 points You can collect the bonus if you build and publish the ZPM(ObjectScript Package Manager) package for your Full-Stack application so it could be deployed with: zpm "install your-multi-model-solution" command on IRIS with ZPM client installed. ZPM client. Documentation. Unit Testing - 2 points Applications that have Unit Testing for the InterSystems IRIS code will collect the bonus. Learn more about ObjectScript Unit Testing in Documentation and on Developer Community. Online Demo of your project - 3 pointsCollect 3 more bonus points if you provision your project to the cloud as an online demo. You can use this template or any other deployment option. Example. Here is the video on how to use it. Code quality analysis with zero bugs - 2 points Include the code quality Github action for code static control and make it show 0 bugs for ObjectScript. Article on Developer Community - 2 points Post an article on Developer Community that describes the features of your project. Collect 2 points for each article. Translations to different languages work too. Video on YouTube - 3 points Make the Youtube video that demonstrates your product in action and collect 3 bonus points per each. Example. The list of bonuses is subject to change. Stay tuned!
Announcement
Anastasia Dyubaylo · Sep 10, 2021

Video: Best Practices for InterSystems API Manager

Hey Community A new video is already on InterSystems Developers YouTube ⏯ Best Practices for InterSystems API Manager Learn how to setup your services and routes to leverage full potencial of InterSystems API Manager (IAM) and how to use effectively the workspaces. See an example of a good workflow for Open API specification files and learn about High Availability setup. 🗣 Presenter: @Stefan.Wittmann, Product Manager, InterSystems Enjoy and stay tuned!