UiPath Cloud ML Skill’lerin Web Servis Üzerinden Etkinleştirilmesi ve Devre Dışı Bırakılması
UiPath AI Center, UiPath platformunun bir parçası olan ve yapay zeka (AI) tabanlı otomasyon projelerini yönetmek ve dağıtmak için tasarlanmış bir bileşendir. Bu bileşende kişi geliştirdiği yapay zeka modelini veya UiPath tarafından geliştirilmiş önceden eğitilmiş ya da sıfırdan eğitim gerektiren modelleri kullanabilir.
UiPath AI Center ürünü için kullanıcılara hem on-premise hem de cloud platformlarında kullanım imkanı sunuyor. Bilindiği gibi, yapay zeka modelleri genellikle yüksek donanım kaynağı gereksinimi duyan yapılardır. AI Center’da kullanıcılar eğer on-premise versiyonu tercih etmişlerse bu yüksek donanım kaynağının maliyetini doğrudan kendileri yüklenirken, cloud ortamını tercih ettiklerinde de bu maliyetler lisans modelinin içerisine dahil ediliyor. UiPath AI Center’da lisans modeli AI Unit diye adlandırılan birim bakiyelerle işletiliyor. Kullanıcı ürünü satın alırken aslında belli miktarlarda AI Unit içeren bir bakiye paketi satın alıyor. Satın aldığı bu AI Unit’ler kullandığı sistem, kullanım yoğunluğu, kaynak ve süre bazında farklı parametrelerle hesabından düşülüyor. Bu parametrelere bağlı bazı hesaplamalara link üzerinden erişebilirsiniz.
Cloud platformda çalışan AI Center üzerindeki aktif olarak kullanıma hazır her bir yapay zeka modeli, kullanılmasa dahi, aktif şekilde durduğu haliyle belli miktarda AI Unit tüketiyor. Bu tüketim, tercih edilen donanım kaynağı kapasitesi ve model replika sayıları ile orantılı olarak değişiyor.
Yukarıda örnek bir yapay zeka modelinin gelişmiş altyapı ayarları yer almaktadır. Burada GPU donanımı aktif edildiğinde, farklı kapasitelerde CPU-RAM seçildiğinde veya modelin birden fazla replikası oluşturulduğunda saat bazında kullanılan AI Unit’ler değişiklik gösteriyor. Aşağıda farklı altyapı ayarlarında saat bazından tüketilen AI Unit bakiyeleri yer almaktadır. (2024 Mart itibariyle geçerli değerlerdir. Değişiklik gösterebilir.)
Belirtilen bu AI Unit’ler kullanıcıların yapay zeka modellerinin aktif olduğu zaman dilimleri içerisinde saat bazında tüketilen birim bakiyeler. Kullanıcı modeli hiç kullanmasa dahi listelenen AI Unit’ler kullanıcı bakiyelerinden harcanmaktadır.
Yapay zeka modelleri RPA süreçlerinde kullanıldığı senaryoda iş akışının çalıştığı zaman diliminde tüketilen bakiyeler göze batmasa da iş akışlarının çalışmadığı zaman dilimlerinde yani modelin herhangi bir çıktı üretmediği sürelerde tüketilen bakiyeler kullanıcı için ekstra maliyet oluşturmaktadır. UiPath bu noktada nispeten bu sorunun çözümü için aşağıdaki şekilde belirli bir süre boyunca kullanılmayan yapay zeka modellerinin otomatik olarak kapanmasını sağlayan bir konfigürasyon sunmakta. Fakat bu konfigürasyon ile model devre dışı kaldıktan sonra otomatize edilmiş RPA süreçleri başladığında model pasif durumda kaldığı için iş akışı başarılı şekilde çalışamamaktadır.
Bu içerikte oluşturulan yapay zeka modellerinin UiPath’in sunduğu web servisler üzerinden nasıl durdurulup yeniden başlatıldığını detaylı şekilde inceleyeceğiz. Bu işlemler için adımlar aşağıdaki şekilde yürütülmektedir.
- Öncelikle UiPath AI Center’da oluşturulmuş ve başarılı şekilde çalışabilen bir yapay zeka modeli olduğundan emin olmamız gerekmektedir.
2. Ardından UiPath Cloud Orchestrator üzerinde Admin sayfasında yer alan External Applications altına gidiyoruz.
3. Ardından External Applications sayfasında yeni bir uygulama yetkisi tanımlamak için Add Application butonuna tıklıyoruz.
4. Add Scopes butonu ile uygulamaya “AICenter API Access” ile AI Center’daki web servis metotlarına erişim kaynağını ekliyoruz.
5. Uygulamaya bir isim verip Add butonuna tıklıyoruz.
6. Ardından açılan pencerede karşımıza çıkan App ID ve App Secret değerlerini kopyalıyoruz.
7. UiPath Cloud anasayfasından AI Center arayüzüne girip aşağıdaki üç noktaya tıklayarak View Profile altında yer alan Account id ve Tenant id bilgilerini kopyalıyoruz. Bu adımdan sonraki tüm adımlar Postman üzerinden gerçekleştirilecektir.
8. Bu adımda 6. adımda kopyaladığımız ID ve Secret bilgileri ile aşağıdaki şekilde https://cloud.uipath.com/identity_/connect/token adresinden erişim için token alıyoruz:
- Metot: POST
- URL: https://cloud.uipath.com/identity_/connect/token
- Body -> client_id: 6. adımda kopyalanan App ID
- Body -> client_secret: 6. adımda kopyalanan App Secret
- Body -> grant_type: client_credentials
Dönen response içeriğindeki access_token paremetresinin değerini kopyalıyoruz.
9. Token değerini aldıktan sonra tenant altındaki ML Skill’leri listelemek için aşağıdaki şekilde servis isteği gönderiyoruz.
- Metot: GET
- URL: https://cloud.uipath.com/{Account Name}/{Tenant Name}/aifabric_/ai-deployer/v1/mlskills?name={ML Skill Name}
- Header -> account-id: 7. adımda kopyalanan Account ID
- Header -> tenant-id: 7. adımda kopyalanan Tenant ID
- Header -> Authorization: 8. adımda kopyalanan access_token değeri
Servis isteğine dönen response içeriğinde name değeri kontrol edilir ve ML Skill’e ait id parametresi kopyalanır. Bu adımdan sonra ML Skill ID’sini kullanarak modeli etkinleştirip devre dışı bırakabileceğiz.
Dönen response içeriğinde modelin o andaki durumunu belirten status parametresi de aşağıdaki şekilde yer almaktadır. Bu parametre modele müdahele etmeden önce statüsünü kontrol etmek için kullanılmalıdır.
10. Bu adımda servis üzerinden aktif durumda olan modeli aşağıdaki servis isteği ile durduracağız:
- Metot: PUT
- URL: https://cloud.uipath.com/{Account Name}/{Tenant Name}/aifabric_/ai-deployer/v2/mlskills/stop/{ML Skill ID}
- Header -> account-id: 7. adımda kopyalanan Account ID
- Header -> tenant-id: 7. adımda kopyalanan Tenant ID
- Header -> Authorization: 8. adımda kopyalanan access_token değeri
Servis isteği iletildikten sonra 9. adımdaki isteği tekrar göndererek modelin durumunu kontrol edebiliriz.
11. Bu adımda devre dışı bıraktığımız modeli aşağıdaki servis isteği ile tekrar aktif hale getireceğiz. Burada modelin kullanılabilir duruma geçmesi belli bir süre almaktadır. Bu sebeple isteği gönderdiğimiz anda model kullanılabilir durumu geçmiyor. Bu durumu aşmak için etkinleştirme isteğinden sonra belli periyotlarla model statü sorgusu yapılıp durumu kontrol edilmelidir. Bu servis isteğinden ayrıca istek gövdesinden modelin çalışacağı donanıma dair konfigürasyonlar da iletilmelidir:
- Metot: POST
- URL: https://cloud.uipath.com/{Account Name}/{Tenant Name}/aifabric_/ai-deployer/v1/mlskills/{ML Skill ID}?updateType=RESUME
- Header -> account-id: 7. adımda kopyalanan Account ID
- Header -> tenant-id: 7. adımda kopyalanan Tenant ID
- Header -> Authorization: 8. adımda kopyalanan access_token değeri
- Body -> processor: Donanım kaynak tipi “CPU”
Servis isteği iletildikten sonra modelin statüsü kontrol edildiğinde aşağıdaki şekilde “DEPLOYING” olarak görülecektir.
Belli bir süre sonra model aşağıdaki şekilde “AVALIABLE” statüsüne geçerek kullanılabilir hale gelecektir.
UiPath Cloud Orchestrator’da bu adımları gerçekleştirerek bir modelin statüsünü kontrol edebilir, çalışan bir modeli devre dışı bırakabilir veya pasif bir modeli etkinleştirebiliriz. Böylelikle RPA iş akışlarının çalışmadığı zaman dilimlerinde modellerin donanım kaynak tüketiminden kaynaklı lisans maliyetinin önüne geçilebilir.