Örnek 3: "OpenAI Sohbet Tamamlamaları API'si (GPT-3.5, GPT-4) - Satırlar" yapılandırması
Bu örnek, OpenAI analitik bağlayıcısını "OpenAI Sohbet Tamamlamaları API'si (GPT-3.5, GPT-4) - Satırlar" yapılandırmasıyla nasıl kullanacağınızı öğretir. İşlevselliği veri modelinize ve grafik ifadelerinize nasıl dahil edeceğinizi gösteren temel alıştırmalarda size rehberlik eder.
Bu bağlayıcı yapılandırmasının işlevselliği, "OpenAI Tamamlamaları API'si (GPT-3) - Satırlar" yapılandırmasına çok benzer. Ancak bu iki yapılandırma farklı modeller kullanır ve bu da farklı yanıtlara yol açar. Ayrıca bu iki yapılandırma arasındaki parametre adlarındaki farklılıklar nedeniyle, yapılandırmanızla eşleşen öğretici örneğe bakın. Tamamlamaları yapılandırması için bkz. Örnek 1: "OpenAI Tamamlamaları API'si (GPT-3) - Satırlar" yapılandırması.
Bu örneği Azure OpenAI bağlayıcısını kullanarak da tamamlayabilirsiniz. Bu bağlayıcıyı kullanırken, modellerle OpenAI platformu yerine Microsoft Azure platformu üzerinden etkileşim kurarsınız.
Başlamadan önce:
Bu örneği tamamlayabilmeniz için aşağıdaki adımları tamamlamanız gerekir.
-
OpenAI platform hesabı oluşturun
-
OpenAI API anahtarı edinin
-
Analiz bağlantısı işlevselliğini etkinleştirmek için Qlik Cloud
-
Geçerli bağlayıcı yapılandırmalarıyla bağlantılar oluşturun
Komut dosyanızda OpenAI bağlayıcısını kullanma
OpenAI platformuyla iletişim kurmak için komut dosyası ekleyeceğiniz yeni bir Qlik Sense uygulaması oluşturun. Bu komut dosyasıyla yüklediğiniz tablolar, uygulamanızın veri modelinde erişilebilir olacaktır.
Aşağıdaki adımları izleyin. Daha fazla ayrıntı için bk. Bir OpenAI bağlantısından veri seçip yükleyin.
OpenAI'ye gönderilecek veri tablosunun oluşturulması
İlk adım, OpenAI'ye gönderdiğiniz isteği içeren bir tablo oluşturmaktır. Talepteki veri satırları "tamamlamalar" olarak bilinir. Her bir öge için metin, tabloda tek bir alanda (sütun) satırlar halinde bulunmalıdır. Bu sütundaki her satır OpenAI API tarafından tamamlanacak metni temsil eder.
İlişkilendirme Alanı için ikinci bir ek alan olabilir ancak bunun yapılandırmada belirtilen alan adıyla eşleşmesi gerekir. Bu, OpenAI'ye gönderilmeyecek özel bir alandır ancak bir Qlik veri modeli oluşturmak amacıyla yanıtlara eklenir.
Uygulamanızda Veri yükleme düzenleyicisini açın ve aşağıdaki kodu yeni kod bölümüne yapıştırın:
SourceTable:
NoConcatenate
LOAD
RowNo() as RowId,
Text
Inline
[Text
translate from English to French: What is the time you go to work?];
Bu tablo, OpenAI'ye sorduğumuz tek bir soruyu içeren Text adlı bir alan içerir. Ek sorular, mevcut soru hücresinin altına yeni ayrı hücreler olarak eklenebilir. RowId alanı, yanıtları uygulamanın veri modeline bağlamak için bir sonraki adımda kullanılacak olan İlişkilendirme Alanı'dır.
OpenAI load deyiminin oluşturulması
Bir sonraki adım, OpenAI ile iletişim kurmak için başka bir load deyimi oluşturmaktır. Bu deyimle yüklediğiniz tablo, istek verilerini göndermek için kullandığınız tablo ve alanların adlarına işaret eder. Kısacası, OpenAI'nin istek ögelerinize verdiği yanıtları sağlamak için komut dosyası tarafından ikinci bir tablo yüklenir.
Komut dosyasının bu bölümünü oluşturmak için kullandığınız bağlantı için Veri seç sihirbazını kullanabilirsiniz. Bu, sağladığınız özelliklerin adlarını içeren bir şablon komut dosyası oluşturur. Alternatif olarak, bu tabloyu sihirbazı kullanmadan komut dosyası düzenleyicisine manuel olarak ekleyebilirsiniz.
Veri yükleme düzenleyicisinin Veri kaynakları panelinde kullandığınız bağlantıyı bulun ve görseline tıklayın. Bu, Veri seç sihirbazını açar.
Veri seç sihirbazını kullanırken iki özellik sağlamanız gerekir:
-
Yerleşik Tablonun adı. Bu, OpenAI'ye gönderilen soruların yer aldığı tablodur. Bu durumda, SourceTable.
-
Veri Alanının adı. Bu, OpenAI'ye gönderilen soruları içeren alandır. Bu durumda, Text.
Tablolar altında, openai adlı tablonun onay kutusuna tıklayın.
Komut dosyası ekle'ye tıkladığınızda, yeni tablo komut dosyasına eklenir.
OpenAI load deyimi eklendiğinde, komut dosyanız aşağıdaki gibi görünmelidir:
Artık komut dosyasını çalıştırmaya hazırsınız.
Verileri uygulamaya yükleme
Komut dosyası tamamlandıktan sonra Verileri yükle'ye tıklayın. Bu, OpenAI ile iletişimi gerçekleştirir ve tabloları uygulamanızın veri modeline ekler.
Veri modeli görüntüleyicisini açın ve iki tablonun beklendiği gibi birbirine bağlandığına dikkat edin. Önizleme bölmesinde, OpenAI'nin sorduğumuz soruya verdiği yanıt ikinci tabloda yer alıyor.
Artık uygulamaya yüklenen verileri kullanarak analiz içeriği oluşturabilirsiniz. Bu verileri kullanarak oluşturduğunuz grafiklerde OpenAI bağlantısına başvurmanız gerekmez. OpenAI bağlantısını doğrudan grafik ifadelerinde (komut dosyasında kullanmak yerine) nasıl kullanacağınızı öğrenmek için bk. Grafik ifadelerinde OpenAI bağlayıcısını kullanma.
Grafik ifadelerinde OpenAI bağlayıcısını kullanma
OpenAI sorularını ve yanıtlarını komut dosyasını kullanarak uygulamanızın veri modeline eklemenin yanı sıra, bu işlemleri doğrudan uygulamanızdaki bir grafikte de gerçekleştirebilirsiniz. Bu, OpenAI ile iletişim kurmak için komut dosyasında tabloları kullanmaya bir alternatif olabilir.
Tek bir alan için veriler OpenAI ile sizin aranızda ileri geri gönderilir. Çoğu durumda, bir komut dosyası bağlantısı için kullanılan kod, bazı önemli farklılıklarla birlikte bir grafikte kullanılmak üzere yeniden tasarlanabilir.
Daha fazla ayrıntı için bk. Görselleştirme ifadelerinde OpenAI bağlantılarını kullanma.
Veri talebi hacimlerine ilişkin hususlar
Grafik ifadelerinde OpenAI bağlantılarının yalnızca bir veya birkaç veri satırı için kullanılması önerilir. OpenAI hedefine büyük miktarda veri göndermek için grafik ifadelerinin kullanılması önerilmez.
Her talepte kaç satır gönderdiğinizin farkında olmanız önemlidir. Bir grafik ifadesinde bağlantının yapılandırılmasındaki hatalar, istenmeden büyük isteklere yol açabilir (örneğin, bir grafikteki veri modelinin yanlış kullanımı nedeniyle aynı soruya sahip aynı satırlar). Bir üçüncü taraf platformuyla etkileşimde bulunmadan önce grafik ifadesi hesaplamasında kullanılan alanların ve bunların veri modelindeki yerinin, üçüncü tarafla finansal sözleşmenizi ve faturalandırma sözleşmelerinizi nasıl etkilediğini bildiğinizden emin olun. Harici platformun daha fazla kullanılması, daha yüksek maliyetler oluşmasına neden olabilir.
Taleplerinizin boyutunu denetlemek ve sınırlamak için bu yönergeleri izleyin:
-
Bağlantıyı yalnızca bir Metin ve görüntü grafiği ifadesinde kullanın. Bir Tablo nesnesinde OpenAI bağlantısı kullanılması, özellikle ifadeyi önceden eklenmiş bir veya daha fazla boyutu olan bir tabloya ekliyorsanız kesinlikle önerilmez.
-
Grafik ifadesi uygulamanızın veri modeline bağlıysa uygulamada yalnızca tek bir seçim yapıldığında grafiği hesaplamak için ifadede bir if deyimi kullanın. Bu, grafiğinizin OpenAI hedefine göndereceği isteklerdeki satır sayısını büyük ölçüde azaltır.
-
Büyük istekler göndermek için bir OpenAI bağlantısı kullanıyorsanız verilerin veri modelinize önceden yüklenmesi için bağlantıyı bir grafik ifadesi yerine komut dosyanızda kullanın.
Alıştırma: Temel grafik ifadesi oluşturma
Aşağıdakileri yapın:
-
Bir Qlik Sense uygulaması oluşturun ve gelişmiş düzenleme modunda yeni bir sayfa açın.
Bilgi notuGrafik ifadesi için kullandığınız analiz bağlantısının, uygulamayı oluşturduğunuz alanda önceden oluşturulmuş olması gerekir. Bunu bir uygulama içindeki Veri yükleme düzenleyicisinde veya Analiz etkinlik merkezinin Oluştur sayfasından yapabilirsiniz. Daha fazla bilgi için bkz. Bir OpenAI bağlantısı oluşturma. -
Sayfanın üzerine bir Metin ve görsel grafiği sürükleyin.
-
Özellikler panelinde, Veri > Hesaplamalar altında bir hesaplama ekleyin ve ifade düzenleyicisini açmak için ögesine tıklayın.
-
Aşağıdaki ifadeyi ifade düzenleyiciye yapıştırın:
endpoints.ScriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"Chat_Completions_GPT_3.5_4_Rows","column":"choices.message.content"}}', 'Translate this text from english to spanish: The sun was rising over the new tomorrow with a tinge of excitement.')
Bilgi notuBu örnekte, yalnızca tek bir veri satırı gönderdiğimiz ve bir veri modeline bağlantı olmadığı için if ifadesinin kullanılmaması kabul edilebilir. Diğer senaryolarda, grafiğin yalnızca uygulamada tek bir alan değeri seçildiğinde hesaplanmasını sağlamak için bir if ifadesi kullanın. Örnekler için bk. Hızlı örnekler.Bilgi notuTam olarak bu kodun uygulamanızda doğru şekilde çalışması için OpenAI bağlantınızın da ifadede belirtilen connectionname ile aynı Ad değeriyle yapılandırılması gerektiğini unutmayın. Bu eğitimin amaçları doğrultusunda kullanılan değerler için bk. Bağlantıları oluşturun. -
Uygula'ya tıklayın.
Alıştırma: Değişken kullanarak metin giriş kutusu oluşturma
Alternatif olarak, soru dizesini uygulamada oluşturduğunuz bir değişkenin adıyla değiştirerek, uygulama kullanıcılarının ifadelerle etkileşime girmeden kendi sorularını girebilecekleri bir giriş kutusu oluşturabilirsiniz.
Bu basit arayüz, uygulama verilerinizi gerçek zamanlı olarak oluşturulan bağlamsal bilgilerle zenginleştirmek için kullanılabilir.
Aşağıdakileri yapın:
-
Bir uygulama oluşturun ve yeni bir sayfaya bazı veriler ve görselleştirmeler ekleyin.
-
Bir değişken oluşturmak için öğesine tıklayın. Bu alıştırma için buna vUserQuestion Adını verin. Kalan parametreleri boş bırakın.
-
Varlık panelinde, bir Değişken girdi grafiğini sayfaya sürükleyin. Bu, Genişlemeler > Qlik Dashboard bundle altında bulunur.
-
Değişken girdi grafiğinin özellikler panelinde, Görünüm > Değişken ögesini genişletin.
-
Ad altında vUserQuestion ögesini seçin.
-
Farklı göster altında Girdi kutusu ögesini seçin.
-
Varlık panelinde, bir Metin ve görsel grafiğini sayfaya sürükleyin.
-
Özellikler panelinde, Veri > Hesaplamalar altında bir hesaplama ekleyin ve ifade düzenleyicisini açmak için ögesine tıklayın.
-
Aşağıdaki ifadeyi ifade düzenleyiciye yapıştırın:
if(vUserQuestion <> '', endpoints.scriptAggrStr('{"RequestType":"endpoint", "endpoint":{"connectionname":"Chat_Completions_GPT_3.5_4_Rows","column":"choices.message.content"}}',vUserQuestion))
Bilgi notuTam olarak bu kodun uygulamanızda doğru şekilde çalışması için OpenAI bağlantınızın da ifadede belirtilen connectionname ile aynı Ad değeriyle yapılandırılması gerektiğini unutmayın. Bu eğitimin amaçları doğrultusunda kullanılan değerler için bk. Bağlantıları oluşturun. -
Uygula'ya tıklayın.
-
Bu girdi ve yanıt kutularını ihtiyaçlarınıza göre yeniden boyutlandırın.
Artık düzenleme modundan çıkabilmeli ve girdi kutusuna bir soru yazabiliyor olmalısınız. Enter tuşuna bastığınızda veya sayfada başka bir yere tıkladığınızda, yanıt kutusu OpenAI'den bir yanıt doldurur.
Bu alıştırmadaki OpenAI bağlantısı, uygulamanın veri modeliyle hiçbir şekilde iletişim kurmaz ancak uygulamaya yüklenen verilerle tamamen entegre olan ve uygulamada yaptığınız seçimlere yanıt veren çok daha gelişmiş uygulamalar oluşturmak mümkündür.
Değişkenlerle çalışma hakkında daha fazla bilgi için bk. Değişken oluşturma ve Değişken girişi kontrolü.
Komut dosyası ve grafik ifadesi kodu arasındaki farklar
Bu grafik ifadelerinde, daha önceki komut dosyası dersinde girilen kodu yeniden kullandık. Aşağıdaki liste, komut dosyası sürümü ile grafik ifadeleri arasındaki en önemli farkları vurgular:
-
ScriptEval, ScriptAggrStr olarak değiştirildi. Bu, tek bir veri satırı gönderdiğimizi ve tek bir satır geri beklediğimizi özetlemektedir. Bu, bu durumda olduğu gibi bir değişken veya sabit gibi özel verilerle çalışırken gereklidir. "Str", metin değerleri gönderdiğimizi ve aldığımızı gösterir.
-
Değeri choices.message.content olan column adında yeni bir özellik ekledik. endpoint nesnesinin içine yerleştirilmiştir. Yapılandırma dizesine yapılan bu ekleme, bağlayıcıdan hangi alanın döndürüleceğini belirtmek için gereklidir. Bir grafik ifadesinde yalnızca bir alan kullanılır ve hangisinin kullanılacağını belirtmemiz gerekir.