4 Şubat 2022 Cuma

Bir Optimize Spark Engine, Azure Databricks

IDC'ye göre 2010 yılında dünya çapında üretilen veri miktarı 2 Zetabytes olarak ölçülmüş. 2022 yılında 79.5 Zetabytes, 2025 yılında ise 175 Zetabytes olacağı tahmin ediliyor.

Zetabyte devasa boyutlarda veri miktarını ifade ediyor. Buraya gelene kadar Terabyte, Petabyte ve Exabyte birimlerini geçiyoruz. 1000 Exabytes = 1 Zetabyte yapıyor yapıyor. Bir üniversitenin bu veri miktarını şöyle tarif ettiğini okumuştum: "Dünyadaki tüm plajlarda bulunan kum taneleri kadar bilgi". Sonrasında Yottabytes geliyor. O da şöyle tarif edilmiş: "7 bin insan bedenindeki toplam atom sayısı kadar bilgi". 

Üniversitede iken ödevleri 1.44 mb olan disketlerde teslim ediyorduk. Yine de baya bir boşluk kalıyordu. Şimdilerde disketi sadece kaydet butonlarında bir ikon olarak görüyoruz. Gerçekten zaman çok hızlı geçiyor, değişim her an gerçekleşiyor ve artık teknoloji hayallerimizi zorluyor.

Son zamanlardaki teknolojik gelişmeler ağırlıklı olarak bulut bilişim, yapay zeka, izleme ve güvenlik üzerine. Veri insanın damarlarında akan kan gibi teknolojinin her noktasına can veriyor.

Verinin önemini, katma değerini ve rekabette nasıl bir avantaj sağlayabileceğini hemen hemen herkes bilir. Her ölçekteki şirket hatta birey ne kadar veri okur/yazar ise o kadar kendin emin adımlar atabilir. Ne olup bitti, hatta gelecekte neler olabileceği hakkında bir fikre sahip olabilir.

Dünyadaki bu veri miktarının büyük bölümünün (yaklaşık %80) cihazlar tarafından üretileceği tahmin ediliyor. Bu veriler elbette şirketler ve bireyler hakkında olacak. 

Verinin önemini bilen herkes hızla veri depoluyor. Bu durum artık tek bir bilgisayar ile yönetilemeyecek kadar büyük verinin işlenmesini gerektirir hale geldi. Hizmet sunduğumuz firmaların bir kısmı tek bir bilgisayarın veri işleme kapasitesini zorlayacak noktalarda ve yeni çözümler arıyor. Bir kısmı ise bu konuda artık radikal adımlar atmaya başladı ve çoktan nimetlerinden faydalanabildiği bir noktaya geldi bile.

Eğer tek bir bilgisayar ile işleyemeyecek kadar büyük, farklı formatlarda ve hızlı (saniyede milyarlarca satır) veri ile çalışıyorsanız ki buna Big Data diyoruz; bu durumda karşımıza ilk çıkan çözüm yazılım ve donanım bakımından özel olarak optimize edilmiş MPP mimarisine sahip appliancelar oluyor. MPP mimarisi işlemcileri dağıtık mimariye benzer bir mantıkta paralel çalıştırıp son derece hızlı veri işleyebilse de şimdilerde bir çok firmanın hemencecik ulaşabildiği sınırlara sahip. 

Sonraki adımda karşımıza NoSQL ve NewSQL veritabanları çıkıyor. Bu veritabanları hakkında konuşulacak çok şey var. Bazı önemli noktalara daha önceki makalelerde değindiğimiz için burada çok durmayıp hedefime odaklanacağım. Farklı tiplerde veri tutma konusunda özelleşmiş, bazıları InMemory çalışabilen ve genelde yatay ölçeklendirmeye müsait bu veritabanları veri depolamak ve işlemek için bir noktaya kadar yaralara merhem olsa da ihtiyaçların çok çeşitli olması artık bizi bir sonraki adıma geçmeye zorlayacaktır.

Bir sonraki adımda ise Hadoop ve Spark ekosistemleri ile karşılaşıyoruz. Yatay ölçeklendirmeye uygun bu ekosistemler içerisinde bir çok çözümü bir arada bulabiliyoruz. Spark daha az yeteneğe sahip olsa da InMemory çalışabilmesi ve MapReduce mantığındaki iyileştirmeler Hadoop'a göre 100 kat daha hızlı veri işlemesini sağlıyor. Hadoop'tan sonra çıkması ve yeteneklerinin kısıtlı olmasına rağmen bir çok firma tarafından ilk Big Data ekosistemi olarak devreye alınıyor.

Spark üzerinde Spark SQL, Spark Streaming, GraphX, Spark ML bileşenlerini görüyoruz. Bu bileşenlere biraz daha yakından bakalım.

Spark Core: RDD, DataFrame, DataSet yapıları ile çalışma imkanı verir. Python, R, Scala, Java, SQL, ve dağıtıma bağlı olarak .NET dillerini destekler.
Spark SQL: SQL dili ve/ya diğer diller yardımıyla yapısal olan veya yapısal olmayan verilerle çalışma ve istenirse bir tür veri ambarı inşa etme imkanı verir.
Spark Streaming: Saniyede milyarlarca işlem üreten veri kaynaklarından gelen verileri micro batchler halinde yani küçük tablolarlar diyebileceğimiz bir biçimde yakalama ve işleme imkanı verir. Son versiyonda Spark SQL bileşeni altında karşımıza çıkan Structured Streaming özelliği sonsuz tablo halinde akan veriyi işleme imkanı veriyor ve işleri biraz daha kolaylaştırıyor. Spark Streaming ile ilişkisel veritabanlarının ulaşamayacağı bir veri işleme kapasitesi sunuyoruz.
Spark ML/MLLib: Bu bileşen Makine Öğrenimi konusunda çözümler sunar. Spark tasarımı neticesinde iteratif konularda inanılmaz hızlar sunuyor. Hadoop'un bir Makine Öğrenimi bileşeni olan Apache Mahout'a göre 9 kat daha hızlı.
GraphX: Graph mantığında veri depolayan bir tür NoSQL veritabanıdır.

Spark ile yapabildiklerimizden bazıları şöyle:
  • Yığın halindeki verileri işleyebiliriz. (Batch Processing)
  • Yapısal verileri depolayıp analiz edebiliriz. (Structured Data Analysis)
  • Makine Öğrenimi çalışmaları yürütebiliriz. (Machine Learning Analysis)
  • Gerçek zamanlı akan veri analizi yapabiliriz. (Real-Tme Streaming Data Analysis)
Spark ortamına kavuşmanın bazı yöntemleri şöyle:
  • Apache sitesinden ücretsiz indirmek ve yerel kaynaklara kurmak (Windows, Linux vs. deskteler)
  • Hortonworks, Cloudera gibi firmaların dağıtımlarını kurmak
  • Büyün bunları Azure üzerindeki sanal makinelerde yapmak
  • Azure HDInsight ile hazır imageları aktif etmek ve kullanıcı dostu ara yüzlerle çalışmak
  • Azure Synapse üzerinde Spark Pool ile çalışmak.
  • Azure Databricks ile çalışmak.
Her yöntemin kendine göre avanta ve dezavantajları var. Bu yazımızda özelilkle Azure Databricks üzerinde durmak istiyorum.

Databricks firması Spark gelişimine en çok katkıda bulunan bir firmadır. Kendisi açık kaynak Spark Engineını optimize etti ve hem kendi hem de farklı bulut sağlayıcıları üzerinden bu optimize Spark Engineı kullanıma sundu.

Azure üzerinde Azure Databricks ifadesiyle bulup aktif edebileceğiniz bu hizmet Azure hizmetleri ile son derece uyumlu çalışıyor. Güvenlik için Azure Active Directory, Diskler için Azure Data Lake Storage Gen 2 kullanıyor. IoT Hub, Event Hub, Azure Data Factory, Azure Machine Learning, Cosmos DB, Power BI, Azure DevOps ve daha bir çok hizmet ile kolayca haberleşebiliyor. 

Azure Databricksi portal.azure.com üzerinden aratıp kolayca bulabilirsiniz. Tüm Spark çalışmalarınız Workspace olarark isimlendirilen bir ortamda toplanıyor. Dolayısıyla hizmeti aktif etmek için bölgeyi, Workspace adını ve fiyatlandırma katmanını vermek yeterli olur. 

Fiyatlandırma katmanında Premium seçmenin bazı güvenlik adımlarında kolaylık sağlıyor. Dilerseniz Premium katmanını 14 gün ücretsiz deneyebilirsiniz.


Hizmeti oluşturduktan sonra kendi sayfasında "Overview" bölümden "Launch Workspace" butonu ile çalışma ortamına geçebilirsiniz.

Çalışma ortamını Data Science & Data Engineer, Machine Learning ve SQL seçimleri yaparak hedefinize uygun görünüme kavuşturabilirsiniz. 


Öncelikle Compute bölümünden Cluster oluşturmanız gerekli. Spark versiyonu ve cluster yapısını oluşturduktan sonra Data bölümünden ara yüzle tablo oluşturabilir, Workspace bölümünden Notebook açarak tercih ettiğiniz bir dilde çalışmaya başlayabilir, tetiklediğiniz işlemleri Jobs bölümünden takip edebilirsiniz.

Databricks notebook, diğer notebooklara göre daha kullanışlı ve stabildir. Farklı dillere kolayca geçiş yapmak, dashboardlar oluşturabilmek ve yenilenmelerini zamanlayabilmek gibi seçenekler var. Kod yazarken yardımcı olan intellisence özelliği de tatmin edici.



Azure Databricks'in optimize bir Spark engine olması, notebook'un kullanışlılığı ve Azure'un diğer hizmetleri ile entegre çalışabilmesi yerel kaynaklara yatırım yapmak istemeyip Spark ile çalışmak isteyenler için ideal bir çözüm olarak karşımıza çıkıyor. Büyük Veri işlemek için kullanışlı ve güçlü ortam.

Bir yazı ile Azure Databricks'in tüm özelliklerine değinmek mümkün değil. Bu yazımızda tam bir kullanımdan daha ziyade hizmet üzerinden kuş bakışı geçtik. Yapılabilecek çok fazla şey var. Mesela şu video ile akan veri analizi için Databricks ve IoT Hub kullanımına bir göz atabilirsiniz.










3 Şubat 2022 Perşembe

Yetenekli Orkestra Şefiniz Azure Data Factory

Azure üzerinde, farklı bulut sağlayıcıları üzerinde ve yerel ortamlarda onlarca teknoloji ve veri kaynağı mevcut. Bu farklı dünyalara ait teknolojilerin aynı amaç için bir arada ve doğru sırada çalışması, verilerin tam zamanında ve doğru şekilde işlenmesi, bütün bu sürecin akıcı bir şekilde daha fazla kişinin iş birliği ile geliştirebilmesi ve kolayca yönetilebilmesi her geçen gün çok daha kritik hale geliyor.

Bu mevcut kritik ihtiyaca çözüm olarak çıkan ve geldiğimiz noktada yetenekli bir orkestra şefine dönüşen Azure Data Factory ürünü ile hem yerel hem de bulut teknolojileri bir arada kullanabilir, veri kopyalayabilir, ETL işlemlerini yapabilir, SSIS paketlerini çalıştırabilir, Azure üzerindeki bir çok hizmeti tetikleyerek tam da amacınıza uygun veri odaklı iş akışları oluşturabilirsiniz. 

Üstelik bu başarılı veri entegrasyonu ürünü tüm çalışmaları json halinde tutuyor ve Github, Azure DevOps ile entegre hale getirilebiliyor. Böylece geliştiriciler arasında iş birliği, kodların versiyonlanması ve sürekli geliştirme (CI/CD) mümkün hale geliyor.

Bir çok Azure hizmetinde olduğu gibi tüm çalışmalarla ilgili detaylı loglara ulaşmak ve aktif çalışmaları izlemek mümkün.

Azure Data Factory 100'den fazla kaynağa bağlantı imkanı sunuyor. Bu kaynaklardan veri kopyalama ve bağlantıları tetikleyerek doğru sırada çalışmalarını sağlamak temel yeteneğidir diyebiliriz. İlk çıktığında daha çok ELT yapmak mümkün iken zamanla çeşitli bileşenlerin dahil olması ile ETL yapmak da mümkün hale geldi.

Hadoop, Databricks, SQL Database ile kompleks ETL işlemlerini kodlar yardımıyla yapabileceğimiz gibi SSIS paketleriyle veya Data Flow ve yeni dahil olan Power Query bileşenleriyle ara yüz kullanarak da yapabiliriz. Bu ara yüzlerde belli noktalarda küçük expressionlar yazmak mümkün.

Azure DF üzerine veri odaklı iş akışlar oluşturabilmek için aşağıdaki bileşenleri kullanıyoruz:

Pipelines: Activityleri bir arada tutar. SSIS paketlerine benzetebiliriz. Birbirinden izole veya parametreler ile haberleşen iş akışları oluşturabiliriz.

Activities: Pipeline içerisine ekleyebileceğimiz bir işlem adımıdır. Veri kopyalayabilir, veri işleyebilir, karar yapıları ve döngüler tanımlayabilir, diğer Azure hizmetlerinin çalışmasını tetikleyebilirsiniz. Activityleri Succeeded, Failed, Skipped, Completed gibi sonuçlara göre farklı şekillerde bağlayarak güçlü iş akışları oluşturabilirsiniz.

Datasets: Kopyalama ve veri işleme Activitilerinde girdi ve çıktı olarak kullanılacak veri yapılarını tutar.

Linked Services: Harici bir kaynağa yapılan bağlantı bilgilerini tutar. Harici kaynaklar depolama hizmetleri olabileceği gibi, işlem gücü sunan hizmetler de olabilir.

Data Flows: Arka planda yatay ölçeklendirilmiş bir Spark gücü kullanarak hiç kod yazmadan fakat bazı expressionlar yazma özgürlüğü vererek veri dönüştürme imkanı sunar.

Power Query: Power BI'dan aşina olduğumuz Power Query penceresini ve M dilini kullanarak veri dönüştürme imkanı sunuyor. Şu aralar M dili yeteneklerini tümüyle desteklemese de zamanla daha iyi olacağını ve popüler hale geleceğini düşünüyorum.

Integration Runtimes: Farklı ağ ortamlarında çeşitli veri entegrasyon yeteneklerine kavuşmak için gereklidir. Eğer Azure teknolojiler arasında veri taşıyacaksak Azure IR, bulut ile yere arasında veri taşıyacaksak Self-hosted IR, var olan SSIS paketlerini çalıştırmak için Azure-SSIS IR kullanmamız gerekli.

Parametreler: Sadece okunabilirdir. Pipeline içinde veya glolal olarak oluşturulabilir. Bir takım ayarlar parametre olarak key-value şeklinde depolanabilir ve pipeline içerisinde çalışma esnasında kullanılabilir. Mesela bir Databricks hizmeti üzerinde çalıştıracağımız Notebooklara çalışma sırasında üretilen bazı değerleri gönderebiliriz.

Triggers: Pipelineların çalışmasını tetiklemek için kullanılır. Pipelineları anında tetikleyebildiğimiz gibi belli bir zamanda ve zaman aralığında tetiklemek de mümkün.

Azure Data Factory portal.azure.com üzerinden kolayca oluşturulabilir. Temel olarak bir isim vermek kaynakların bulunacağı bölgeyi, ve versiyonu seçmek (v2 tavsiye edilir) yeterli olur. Sonraki "Git Configuration" penceresinde bulunan "Configure Git Later" seçeneğini işaretleyip hizmetin oluşmasını tetikleyebilirsiniz.



Hizmet oluştuktan sonra "Overview" pencersinden "Open Azure Data Factory Studio" linki ile geliştirme ortamını açabilirsiniz. Author bölümünden geliştirmelere başlayabilir, Monitor bölümünden çalışmaları izleyebilir, Manage bölümünden IR ve hizmet bağlantılarını, parametreleri, git konfigürasyonu, güvenlik ayarlarını yapabilirsiniz.


Eğer yerel ve bulut teknolojilerin bir arada olduğu veri entegrasyon süreci içerisindeyseniz, CI/CD yaklaşımlarının desteklendiği hem ara yüz hem de kodlarla çalışma imkan veren bir geliştirme ortamı arıyorsanız, üstelik bunlar için alt yapı yatırımı yapmak istemiyorsanız Azure Data Factory tam aradığınız çözüm demektir. 

2 Şubat 2022 Çarşamba

Azure Cognitive Services ile Yapay Zekaya (AI) Değil İşinize Odaklanın

Microsoft yıllardır veri bilimi konusunda ar-ge faaliyetleri yürütüyor ve bu faaliyetler neticesinde ortaya çıkan çeşitli ürün, araç, teknik ve teknolojileri kullanıcılarına sunuyor.

Microsoft'un Makine Öğrenimi (ML) ve Yapay Zeka (AI) alanlarında hem yerel hem de bulut çözümleri mevcut. Özellikle bulut çözümleri oldukça yetenekli ve geniş kullanıcı/geliştirici kitlesine hitap edecek nitelikte.

Bu yazımızda Microsoft'un Cognitive Services olarak isimlendirdiği yapay zeka servislerine odaklanalım istiyorum.

Öncelikle bazı terimlerde hem fikir olalım isterim:

Yapay Zeka (AI - Artificial Intelligence) ile kastımız; bir insanın yapabildiği bazı işleri kendi başına yapabilen otomatize bir mekanizmadır. Bazen temel bazı matematiksel formüller ile bazen de Makine Öğrenimi (ML), Derin Öğrenme (DL) çalışmaları neticesinde bu mekanizmaları elde edebiliriz. 

Makine Öğreniminde (ML - Machine Learning) ile kastımız; bir kısmı 1950'lerden beri kullanılan bazı algoritmalar ile veri yığınlarını işlemek ve yığınlar içerisinde bir desen, bir eğilim elde etmek, sonuç itibari ile bu desen ve eğilimleri matematiksel olarak ifade etme konusunda çalışmalar yürütmektir.

Derin Öğrenme (DL - Deep Leaarning) ile kastımız; ML çalışmalarının bir alt dalı diyebileceğimiz özellikle neural network algoritmalarına odaklandığımız, insan gibi anlayan ve üreten yapay zekalar elde etmeyi amaçladığımız özel bir çalışma alanıdır.

Microsoft'un Cognitive Services çatısı altında topladığı Azure hizmetleri, büyük veri kümeleri ve güçlü algoritmalar ile çalışılarak elde edilen, çoğu hazır bir kısmı ise özelleştirmeye açık olan ve günümüz ihtiyaçlarına nokta atışı cevaplar üreten önemli yapay zeka hizmetleridir.

Cognitive Services çatısı altında Speech, Language, Vision, Decision kategorilerine ayrılmış 15 hizmet ve bunların altında da bir çok alt yetenek yer almakta.

Bu hizmetleri Azure portal üzerinden tek tek aktif edip ayrı endpoint bilgileri ile kullanabildiğimiz gibi sadece Cognitive Services hizmetini aktif edip bir çok kritik hizmet için tek bir endpoint bilgisi ve yönetim noktası oluşturabiliriz.

Yapay Zeka hizmetlerinin her birine erişim için REST API mevcut. Ek olarak Python, C#, Java, NodeJS, JavaScript, Java, GO gibi diller için bazı SDK'lar da yayınlanmış durumda. Servisleri oluşturduktan sonra overview sayfalarındaki basit yönlendirmeleri takip ederek hızlıca kullanmaya başlayabilirsiniz.

Ayrıca bazı hizmetler için Container imageları indirebilir Azure veya yerel kaynaklarınızı daha fazla iş yükünü karşılayabilmek için kullanabilirsiniz. Docker, Azure Container Instance, Azure Kubernetes Service vs.

Hadi gelin Cognitive Services çatısı altında geçen hizmetlere bir göz atalım:

Speech

Bu kategorideki hizmetler konuşmaya odaklanıyor.

Language

Bu kategorideki hizmetler dile özgü çalışmaları içerir. Duyguları, niyeti önemli nesneleri tanıma ve çeviriye odaklanır.

  • Entity Recognition: Kişi, tarih, mekan, anahtar ifadeler ve duygu tespiti yapar. ML çalışma sürecine girmeye gerek kalmadan kolayca eğitilip özelleştirilebilir.
  • Sentiment Analysis: Metindeki duyguyu (pozitif-negatif) anlamayı sağlar.
  • Question Answering: Özellikle chat bot yaparken lazım olan önemli bir hizmet. Öncelikle soru-cevap veya benzer mantıkta başlık-açıklama biçiminde verilerle bir knowledgebase oluşturuyoruz. Hizmetin eğitimi tamamlandıktan sonra herhangi bir soru cümlesi girildiğinde bu metin knowledgebasedeki başlık veya sorulara benzetiliyor ve ilgili cevap yine knowledgebaseden veriliyor. Knowledgebasee alternatif sorular girerek daha anlayışlı bir hizmet ortaya çıkarabiliyoruz.
  • Conversational Language Understanding: LUIS hizmetinin bir yeni neslidir. Bu hizmet de özellikle chat yapımında kullandığımız önemli bir yapay zeka hizmetidir. Kurulan cümlelerdeki anahtar nesneleri ve niyetleri ortaya çıkarır. Daha önce tanımladığımız niyetler ve nesneler için ne yapacağımız konusu artık bize kalır.
  • Translator: 100'den fazla dil arasında çeviri yapma imkanı verir. Dilerseniz belli bir konuda daha iyi çeviri için eğitebilirsiniz.
Vision

Bu kategorideki hizmetler resim ve video içeriklerini analiz eder ve nesneleri tanır. Ayrıca insan yüzü ve duyguları hakkında bilgi verir.
Decision

Bu kategorideki hizmetler kişiselleştirme, içerik yönetimi ve potansiyel problemleri ön görmeye odaklanıyor.

Bu hizmetlerin alt yetenekleri de mevcut. Yani burada özetlediğimden çok daha fazlasını yapabilirsiniz.

Şimdi bir hizmet üzerinden bu hizmetlere nasıl kullanabileceğimizi görelim.

Örneğimizde Cognitive Services oluşturup bu çatı altındaki Translator hizmetinine REST API çağrısı oluşturacağım. Bu aslında neredeyse her dilde ve her platformda söz konusu hizmetlerle çalışabileceğimiz anlamına geliyor.

Bu örnekteki amacımız girilen metnin hangi dile ait olduğunu Translator hizmeti ile tespit etmek.

Öncelikle Azure Portal üzerinden (portal.azure.com) Cognitive Services hizmetini oluşturuyorum. Hizmeti oluşturma sayfasında bu hizmete özel olarak hizmetin oluşacağı bölgeyi, hizmetin ismini ve fiyatlandırma seçeneğini belirtmeniz yeterli.



Cognitive Services hizmeti oluştuktan sonra hizmetin sayfasına geçersek soldaki menuden "Keys and Endpoint" ile açılan sayfada post talebini oluşturabilmek için gerekli olan bilgilere ulaşabiliriz.

Bu bilgileri kullanarak Python ile bir çağrı oluşturacağız. Yapacaklarımızı özetleyelim: 
  • request kütüphanesi ile post talebi oluşturacağız.
  • post talebi oluştururken 'header'da key ve içerik tipini json olarak belirtiyoruz. Hizmet url'ini bir kaç farklı şekilde elde belirtebilirsiniz. Bunun için dokumantasyonu incelemek faydalı olacaktır. Amacımıza uygun çağrıyı üretebilmek için body kısmında ise aşağıdaki gibi bir json metin hazırlamamız gerekecek. 
    • "{'documents': [{'id': 0, 'text': 'Merhaba Dünyalı?'}]}"
  • Post isteğimizi gönderip dönen cevabı dict nesnesi olarak elde edelim.
İsteğin özüne odaklanırsak aşağıdaki gibi bir kod yardımıyla hizmeti kullanabilirsiniz.


#istek oluşturabileceğim kütüphaneyi çalışma ortamına alıyorum.
import requests

#-----------
#istek için header, url, body gerekli.
location = "eastus"
key_endpoint="383a-------bee---ds--123"

service_url = f"https://{location}.api.cognitive.microsoft.com/text/analytics/v3.0/languages"

header = {
            "Content-Type":"application/json",
            "Ocp-Apim-Subscription-Key":key_endpoint
}

#-----------
#Hangi dilden olduğunu merak ettiğimiz metin.
text = "Merhaba Dünyalı?"

#body json formatında olmalı. Dokumantasyonda istendiği şekilde bir body hazırlamalıyız.
body_dict = {"documents":[{"id":0 , "text":text}]}
str(body_dict) #dokumantasyonda böyle isteniyor. "{'documents': [{'id': 0, 'text': 'Merhaba Dünyalı?'}]}"
#-----------

#İstek gönderilsin ve cevabı alalım
istek = requests.post(service_url, headers=header, data=str(body_dict).encode("utf-8"))
dict_istek = istek.json() #dict  

#-----------
dict_istek.get("documents")[0]["detectedLanguage"]["name"] #Turkish

#-----------
#status_code ve raise_for_status ile statusa göre işlem yapılabilir.
#istek.status_code #isteğin durum kodlarını alabiliriz. Mesela 200 ise her şey yolunda demektir.
#istek.raise_for_status() #hata varsa raise hata gibi ortaya çıkarır.


Bu yetenekli yapay zeka servisleri ile çalışmak oldukça kolay. Üstelik bir kısmını özelleştirerek tam da ihtiyacınıza uygun şekilde çalışmasını sağlayabilirsiniz. 

Bu hizmetler sayesinde uygulamalarınızı, cihazlarınızı akıllandırabilir, yapay zekayı amaç haline getirmek yerine araç olarak kullanır, ürünlerinizin işlevselliğine odaklanabilirsiniz.