Azure OpenAI Servislerini Kullanarak Oltalama Maili Yazma

Selamlar,

Bu makalede, Azure üzerindeki OpenAI Servisini nasıl oluşturucağımızı ve oltamala maili yazmak için gerekli parametreler ile bu servisleri nasıl kullanacağımızı hep beraber göreceğiz.

1-) Create Azure OpenAI: Azure üzerinde OpenAI servisi aranır ve aşağıdaki gibi bir ekran ile karşılaşılır. Resource Group ve Region seçildikten sonra bu servise bir isim verilip kullanılacak fiyat paketi seçilir.

2-) Netwok Seçimi: Güvenlik amaçlı Network erişimi belirlenir. Bu spesifik bir endpoint de olabilir ya da şu an seçili olan public network de olabilir.

3-) Taglerin Seçimi: Kaynakları kategorize etmek amaçlı kullanılan isimlendirmelerdir. Faturalama bu tagler üzerinden yapılmaktadır.

4-) Review + Submit: Bu son adımda yapılan tüm seçimler, bir rapor ekranında son birkez gösterilerek onay istenir. Create butonuna basıldıktan sonra,  ilgili OpenAI servisi Azure üzerinde yaratılmış olunur.

Uygulamada ilgili Azure OpenAI servislerinin kullanılması için gerekli olan  Credential Key1 ve Key2, aşağıdaki ekranda görüldüğü gibi “Resource Manageent / Keys and Endpoint” sekmesi altında görülebilir. Ayrıca Endpoint de, Client’ın oluşturulması esnasında kullanılacaktır.

Not: Ayrıca, Azure servislerini kullanacak olan makinanın IP’sine, yine Azure üzerinden yetki verilmesi gerekmektedir.

5-) *Deploy Model: Geldik en önemli kısımlardan birine. Model deployments sekmesine gelinir. Burada OpeanAI’ın kullanacağı model belirlenmektedir. Seçilecek model’e göre fiyatlandırma belirlenmektedir. Ayrıca “Deployment name” string olarak boşluksuz yazılmalıdır. İlgili Deployment name, string olarak ilerde kodun içinde de kullanılacaktır. Bu nedenle, aynı Api Key gibi bunun da bir kenara not edilmesinde fayda vardır.

Evet Azure üzerinde OpenAI servisi için gereli ayarlamalarımız yaptık. Şimdi sıra geldi .Net 8 projemizi yazmaya. Aşağıda görüldüğü gibi “AzureOpenAI” adında Console Application yaratılır.

Nuget’den henüz, Prerelase olan Azure.AI.Open AI kütüphanesi indirilir.

1-) Client Yaratma

Aşağıda görüldüğü gibi Azure OpenAI servisinin kullanılabilmesi için bir Client’ın oluşturulması gerekmektedir. Bunun için tanımlı endpoint ve Key1, makalenin başında tanımlanmış Azure Portal sayfasından alınmalıdır.

Son olarak, ilgili client altında birden fazla model tanımlanmış olabilir. Hangi Model’in kullanılacağının tanımlanması için, gene Portal sayfasında seçilen model için tanımlanan string “Deployment Name” GetChatClient() methoduna parametre olarak verilir.

2-) ChatCompletion Modelin Custom Ayarları

Aşağıda görüldüğü gibi kullanılacak model için, kişiye ve ihtiyaca özgü ayarlamalar yapılmaktadır.

  1. MaximumToken sayısı yani kelime sayısı 2000 olarak tanımlanmıştır. Seçilen model tipine göre, herbir token için ücret kesilmektedir.
  2. FrequencyPenalty: 0 ile 2 arasında verilebilen bir değerdir. Verilen değere göre, tanımlanan metindeki herbir kelimenin o ana kadarki mevcut sıklıklarına göre cezalandırma işlemi yapılır. Bu da modelin aynı satırın, tekrarlanma olasılığını azaltır.
  3. Temperature: 0 ile 2 arasında herhangi bir değer olabilir. 0.8 gibi daha yüksek değerler çıktıyı daha rastgele hale getirirken 0.2 gibi daha düşük değerler çıktıyı daha odaklanmış ve deterministik hale getirir. Genellikle bu değerin veya “top_p” değerinin değiştirilmesi önerilir, ancak ikisinin birden değiştirilmesi önerilmez.
  4. PresencePenalty: -2 ile 2 arasındaki bir sayıdır. Pozitif değerler, yeni belirteçlerin metinde daha önce yer alıp almadığına göre cezalandırılır ve modelin yeni konulardan bahsetme olasılığını artırır.

3-) ChatCompletin’in Tanımlanması Ve OpenAI’dan cevabın alınması

ChatCompletion’de, 3 tip MesajRolü bulunmaktadır.

  • System: Yapay zekaya bir role ya da tanımlama yapılarak  tarama havuzunun kısıtlanması, olasılıkların azaltıp daha hızlı ve doğru cevap dönülmesi amaçlanmıştır.
  • User: Yapay zekadan talepler bu mesaj tipinde bulunulur.
  • Assistant: Yapay zekanın bize geri döndüğü propmtlardır.

Aşağıda görüldüğü gibi önce ChatGPT’ye, yardımcı bir asistan olduğu İngilizce söylenmiştir. Daha sonra bize verdiği cevap tanımlanmıştır. Böylece chat geçmişi yazılarak, en sağlıklı cevaba erişmek istenmiştir. Daha sonra istenen oltlama mailinin içeriği tanımlanmıştır ve en sonunda cevap, asenkron olarak beklenilmişitir.

4-) Dönen Sonucun Konsol’a yazılması:

Aşağıda görüldüğü gibi, dönen sonuç 2 farklı şekilde konsol’a yazdırılmıştır.

Sonuç: İstek İngilizce sorulduğu için, oluşturulan oltalama maili de ayrıca bir dil tanımlanmadığı için ingilizcedir.

Geldik bir makalenin daha sonuna. Bu makalede AzureOpenAI servisleri ile istediğimiz bir oltalama mailini şu an için en yeni olan “GPT-4o” modeli ile yapay zekaya yazdırdık..Unutulmamalıdır ki “Azure.AI.Open AI kütüphanesi” henüz beta sürümündedir. Yani ilerleyen dönemlerde var olan servislerde değişiklikler olabileceği gibi, gereken ihtiyaçlara göre yeni servisler de gelebilmektedir.

ChatGPT’nin yakın zamanda biz geliştiricilerin yerini alabileceğini düşünmüyorum. Ama bunu bir araç olarak kullanarak, daha az eforla, kısa sürede, daha çok, daha doğru işler için kullanabileceğimizi düşünüyorum.

Yeni bir makalede görüşmek üzere hepinize hoşçakalın.

Tüm Kod (Program.cs):

 

 

 

Herkes Görsün:

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.