UiPath Cloud ML Skill’lerin Web Servis Üzerinden Etkinleştirilmesi ve Devre Dışı Bırakılması

Muhammed Ahmet ALKAN
Vakıf Katılım Ar-Ge Merkezi
6 min readMar 29, 2024

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.

Örnek Yapay Zeka Modelindeki Donanım Kaynağı Opsiyonları

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.)

Farklı Donanım Kaynakları ve Konfigürasyonlarında Tüketilen AI Unit Bakiyeleri

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.

Belirli Süre Sonunda Kullanılmayan Modellerin Dururulması İçin Sunulan Ayar

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.

  1. Öncelikle UiPath AI Center’da oluşturulmuş ve başarılı şekilde çalışabilen bir yapay zeka modeli olduğundan emin olmamız gerekmektedir.
Cloud Orchestrator AI Center Paneli-1

2. Ardından UiPath Cloud Orchestrator üzerinde Admin sayfasında yer alan External Applications altına gidiyoruz.

Cloud Orchestrator Admin Paneli

3. Ardından External Applications sayfasında yeni bir uygulama yetkisi tanımlamak için Add Application butonuna tıklıyoruz.

Cloud Orchestrator External Applications Paneli-1

4. Add Scopes butonu ile uygulamaya “AICenter API Access” ile AI Center’daki web servis metotlarına erişim kaynağını ekliyoruz.

Cloud Orchestrator External Applications Paneli-2

5. Uygulamaya bir isim verip Add butonuna tıklıyoruz.

Cloud Orchestrator External Applications Paneli-3

6. Ardından açılan pencerede karşımıza çıkan App ID ve App Secret değerlerini kopyalıyoruz.

Cloud Orchestrator External Applications Paneli-4

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.

Cloud Orchestrator AI Center Paneli-2

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.

Token Aldığımız Servis İsteği Body’si

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
Model Bilgilerini Elde Ettiğimiz Servis İsteği Header’ı

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
Çalışan Modeli Devre Dışı Bıraktığımız Servis İsteği Header’ı

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”
Pasif Modeli Etkinleştirdiğimiz Servis İsteği Header’ı
Pasif Modeli Etkinleştirdiğimiz Servis İsteği Body’si

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.

--

--