Share via


Akış geliştirme

İstem akışı, Büyük Dil Modelleri (LLM' ler) tarafından desteklenen yapay zeka uygulamalarının geliştirme döngüsünün tamamını kolaylaştırmak için tasarlanmış bir geliştirme aracıdır. LLM tabanlı yapay zeka uygulamalarının ivmesi dünya genelinde artmaya devam ettikçe, istem akışı yapay zeka uygulamalarınızı prototip oluşturma, deneme, yineleme ve dağıtma sürecini basitleştiren kapsamlı bir çözüm sunar.

İstem akışı ile şunları yapabileceksiniz:

  • Görselleştirilmiş bir grafik aracılığıyla LLM'ler, istemler ve Python araçlarıyla yürütülebilir akışları düzenleme.
  • Akışlarınızı kolayca test edin, hatalarını ayıklayın ve yinelenin.
  • İstem varyantları oluşturun ve performanslarını karşılaştırın.

Bu makalede, Azure Machine Learning stüdyosu ilk istem akışınızı oluşturmayı ve geliştirmeyi öğreneceksiniz.

İstem akışınızı oluşturma ve geliştirme

Studio'da sol gezinti çubuğundaki Akış sekmesini sor'u seçin. İlk istem akışınızı oluşturmak için Oluştur'u seçin. Galeride bulunan örnekleri kopyalayarak veya sıfırdan akış oluşturarak akış oluşturabilirsiniz. Yerel veya dosya paylaşımında akış dosyalarınız zaten varsa, akış oluşturmak için dosyaları da içeri aktarabilirsiniz.

Screenshot of prompt flow creation from scratch or gallery.

Akışı yazma

Sol taraftaki düz görünüm, akışı yazabileceğiniz ana çalışma alanıdır; örneğin akışınıza araç ekleyebilir, istemi düzenleyebilir, akış giriş verilerini ayarlayabilir, akışınızı çalıştırabilir, çıkışı görüntüleyebilir vb.

Screenshot of the prompt flow main working area.

Sağ üst kısımda akış dosyaları görünümü yer alır. Her akış bir 'flow.dag.yaml'' dosyası, kaynak kod dosyaları ve sistem klasörleri içeren bir klasörle temsil edilebilir. Yeni dosyalar ekleyebilir, var olan dosyaları düzenleyebilir ve dosyaları silebilirsiniz. Ayrıca, dosyaları yerel ortama aktarabilir veya yerel dosyalardan içeri aktarabilirsiniz.

Düğümü düz görünümde satır içi düzenlemeye ek olarak, Ham dosya modu geçişini açabilir ve dosya adını seçerek dosyayı açma dosyası sekmesinde düzenleyebilirsiniz.

Sağ alt kısımda yalnızca görselleştirme için graf görünümü yer alır. Geliştirdiğiniz akış yapısını gösterir. Yakınlaştırabilir, uzaklaştırabilir, otomatik düzen vb.

Dekont

Grafik görünümünü doğrudan düzenleyemezsiniz, ancak düz görünümde ilgili düğüm kartını bulmak için düğümü seçip satır içi düzenlemeyi yapabilirsiniz.

Çalışma zamanı: Var olan çalışma zamanını seçin veya yeni bir çalışma zamanı oluşturun

Yazmaya başlamadan önce bir çalışma zamanı seçmelisiniz. Çalışma zamanı, gerekli tüm bağımlılık paketlerini içeren bir Docker görüntüsü içeren istem akışını çalıştırmak için gereken işlem kaynağı görevi görür. Akış yürütme için olması gereken bir durum.

Açılan listeden var olan bir çalışma zamanını seçebilir veya Çalışma zamanı ekle düğmesini seçebilirsiniz. Bu işlem çalışma zamanı oluşturma sihirbazını açar. Açılan listeden mevcut bir işlem örneğini seçin veya yeni bir tane oluşturun. Bundan sonra çalışma zamanını oluşturmak için bir ortam seçmeniz gerekir. Hızlı bir şekilde başlamak için varsayılan ortamı kullanmanızı öneririz.

Screenshot of runtime creation in studio.

Akış girişi ve çıkışı

Akış girişi, akışa bir bütün olarak geçirilen verilerdir. Adı ve türü belirterek giriş şemasını tanımlayın. Akışı test etmek için her girişin giriş değerini ayarlayın. Daha sonra akış düğümlerinde söz dizimini kullanarak ${input.[input name]} akış girişlerine başvurabilirsiniz.

Akış çıktısı, akışın bir bütün olarak ürettiği ve akış yürütme sonuçlarını özetleyen verilerdir. Akış çalıştırması veya toplu çalıştırma tamamlandıktan sonra çıkış tablosunu görüntüleyebilir ve dışarı aktarabilirsiniz. Söz dizimini ${[node name].output} veya ${[node name].output.[field name]}kullanarak akış tek düğüm çıkışına başvurarak akış çıktısı değerini tanımlayın.

 Screenshot of flow input and output.

Farklı araçlar kullanarak akışı geliştirme

Akışta LLM, Python, Serp API, content Kasa ty gibi farklı araç türlerini kullanabilirsiniz.

Bir araç seçerek akışa yeni bir düğüm ekleyeceksiniz. Düğüm adını belirtmeniz ve düğüm için gerekli yapılandırmaları ayarlamanız gerekir.

Örneğin, LLM düğümü için bir bağlantı, dağıtım seçmeniz, istemi ayarlamanız vb. gerekir. Bağlan ion, Azure OpenAI ile etkileşim kurmak için gereken gizli anahtarları veya diğer hassas kimlik bilgilerini güvenli bir şekilde depolamanıza ve yönetmenize yardımcı olur. Henüz bir bağlantınız yoksa, önce bağlantıyı oluşturmanız ve Azure OpenAI kaynağınızda sohbet veya tamamlama dağıtımlarının olduğundan emin olmanız gerekir. LLM ve Prompt aracı, istemi dinamik olarak oluşturmak için şablon oluşturma dili olarak Jinja kullanmanızı destekler. Örneğin, sabit metin yerine giriş adınızı içine almak için kullanabilirsiniz {{}} , böylece anında değiştirilebilir.

Python aracını kullanmak için Python betiğini ayarlamanız, giriş değerini ayarlamanız vb. gerekir. Girişler ve çıkışlar içeren bir Python işlevi tanımlamanız gerekir.

 Screenshot of writing a Python script for Python node.

İstemi veya Python betiğini oluşturmayı tamamladıktan sonra Doğrula'yı seçebilir ve girişi ayrıştırabilirsiniz; böylece sistem, komut istemi şablonuna ve python işlev girişlerine göre düğüm girişini otomatik olarak ayrıştırabilir. Düğüm giriş değeri aşağıdaki yollarla ayarlanabilir:

  • Değeri doğrudan giriş kutusunda ayarlama
  • Söz dizimini kullanarak ${input.[input name]} akış girişlerine başvurma
  • veya ${[node name].output.[field name]} söz dizimini kullanarak ${[node name].output} düğüm çıkışına başvurma

Düğüm çıkışına başvurarak düğümleri birbirine bağlayabilirsiniz. Örneğin, Python düğümü girişindeki LLM düğümü çıkışına başvurabilirsiniz; böylece Python düğümü LLM düğüm çıkışını kullanabilir ve grafik görünümünde iki düğümün birbirine bağlandiğini görebilirsiniz.

Akışta koşullu denetimi etkinleştirme

İstem Akışı yalnızca akışı yürütmek için kolaylaştırılmış bir yol değil, aynı zamanda geliştiriciler için güçlü bir özellik de getirir: koşullu denetim, kullanıcıların akıştaki herhangi bir düğümün yürütülmesi için koşullar ayarlamasına olanak tanır.

Temel olarak, koşullu denetim bir akıştaki her düğümü etkinleştirme yapılandırmasıyla ilişkilendirme özelliği sağlar. Bu yapılandırma temelde bir düğümün ne zaman yürütülmesi gerektiğini belirleyen bir "when" deyimidir. Bu özelliğin gücü, belirli görevlerin yürütülmesinin önceki görevlerin sonucuna bağlı olduğu karmaşık akışlarınız olduğunda gerçekleştirilir. Koşullu denetimden yararlanarak, belirli düğümlerinizi yalnızca belirtilen koşullar karşılandığında yürütülecek şekilde yapılandırabilirsiniz.

Özellikle, düğüm kartındaki Yapılandırmayı etkinleştir düğmesini seçerek bir düğüm için etkinleştirme yapılandırması ayarlayabilirsiniz. "when" deyimini ekleyebilir ve koşulu ayarlayabilirsiniz. Akış girişlerine veya düğüm çıkışına başvurarak koşulları ayarlayabilirsiniz. Örneğin, koşulu ${input.[input name]} belirli bir değer veya ${[node name].output} belirli bir değer olarak ayarlayabilirsiniz.

Koşul karşılanmazsa düğüm atlanır. Düğüm durumu "Atlandı" olarak gösterilir.

Screenshot of setting activate config to enable conditional control.

Akışı test etme

Akışı iki şekilde test edebilirsiniz: tek düğümü çalıştırma veya akışın tamamını çalıştırma.

Tek bir düğüm çalıştırmak için düz görünümde düğümde Çalıştır simgesini seçin. Çalıştırma tamamlandıktan sonra düğüm çıkışı bölümündeki çıkışı denetleyin.

Akışın tamamını çalıştırmak için sağ üstteki Çalıştır düğmesini seçin. Ardından her düğümün çalıştırma durumunu ve çıkışını ve akışta tanımlanan akış çıkışlarının sonuçlarını de kontrol edebilirsiniz. Akış giriş değerini istediğiniz zaman değiştirebilir ve akışı yeniden çalıştırabilirsiniz.

 Screenshot of view output button in two locations.

Screenshot of outputs on the output tab.

Sohbet akışı geliştirme

Sohbet akışı, standart akışın özelliklerini geliştirerek sohbet girişleri/çıkışları ve sohbet geçmişi yönetimi için gelişmiş destek sağlayan konuşma uygulaması geliştirme için tasarlanmıştır. Sohbet akışıyla, sohbet girişini ve çıkışını işleyen bir sohbet botu kolayca oluşturabilirsiniz.

Sohbet akışı yazma sayfasında, sohbet akışı standart akış ve değerlendirme akışından ayırt etmek için bir "sohbet" etiketiyle etiketlendi. Sohbet akışını test etmek için "Sohbet" düğmesini seçerek konuşma için bir sohbet kutusu tetikleyebilirsiniz.

Screenshot of chat flow authoring page.

Sohbet girişi/çıkışı ve sohbet geçmişi

Sohbet akışını standart akıştan ayıran en önemli öğeler Sohbet girişi, Sohbet geçmişi ve Sohbet çıkışıdır.

  • Sohbet girişi: Sohbet girişi, kullanıcılar tarafından sohbet bota gönderilen iletileri veya sorguları ifade eder. Kullanıcı amaçlarını anlamayı, ilgili bilgileri ayıklamayı ve uygun yanıtları tetikleyi içerdiği için sohbet girişini etkili bir şekilde işlemek başarılı bir konuşma için çok önemlidir.
  • Sohbet geçmişi: Sohbet geçmişi, hem kullanıcı girişleri hem de yapay zeka tarafından oluşturulan çıkışlar dahil olmak üzere kullanıcı ile sohbet botu arasındaki tüm etkileşimlerin kaydıdır. Sohbet geçmişini korumak, konuşma bağlamını izlemek ve yapay zekanın bağlamsal olarak ilgili yanıtlar oluşturabilmesini sağlamak için gereklidir.
  • Sohbet çıkışı: Sohbet çıkışı, girişlerine yanıt olarak kullanıcıya gönderilen yapay zeka tarafından oluşturulan iletileri ifade eder. Bağlamsal olarak uygun ve ilgi çekici bir sohbet çıkışı oluşturmak, olumlu bir kullanıcı deneyimi için çok önemlidir.

Sohbet akışında birden çok giriş olabilir, sohbet geçmişi ve sohbet akışında sohbet girişi gerekir .

  • Sohbet akışı girişleri bölümünde, bir akış girişi sohbet girişi olarak işaretlenebilir. Ardından sohbet kutusuna yazarak sohbet giriş değerini doldurabilirsiniz.

  • İstem akışı, kullanıcının sohbet geçmişini yönetmesine yardımcı olabilir. chat_history Girişler bölümündeki bölümü Sohbet geçmişini temsil etmek için ayrılmıştır. Kullanıcı sohbeti girişleri, oluşturulan sohbet çıkışları ve diğer akış girişleri ve çıkışları dahil olmak üzere sohbet kutusundaki tüm etkileşimler otomatik olarak sohbet geçmişinde depolanır. Kullanıcı, Girişler bölümünde değerini chat_history el ile ayarlayamaz. Giriş ve çıkış listesi olarak yapılandırılmıştır:

    [
    {
        "inputs": {
        "<flow input 1>": "xxxxxxxxxxxxxxx",
        "<flow input 2>": "xxxxxxxxxxxxxxx",
        "<flow input N>""xxxxxxxxxxxxxxx"
        },
        "outputs": {
        "<flow output 1>": "xxxxxxxxxxxx",
        "<flow output 2>": "xxxxxxxxxxxxx",
        "<flow output M>": "xxxxxxxxxxxxx"
        }
    },
    {
        "inputs": {
        "<flow input 1>": "xxxxxxxxxxxxxxx",
        "<flow input 2>": "xxxxxxxxxxxxxxx",
        "<flow input N>""xxxxxxxxxxxxxxx"
        },
        "outputs": {
        "<flow output 1>": "xxxxxxxxxxxx",
        "<flow output 2>": "xxxxxxxxxxxxx",
        "<flow output M>": "xxxxxxxxxxxxx"
        }
    }
    ]
    

Dekont

Sohbet geçmişini otomatik olarak kaydetme veya yönetme özelliği, sohbet kutusunda testler yürütülürken yazma sayfasındaki bir özelliktir. Toplu çalıştırmalar için, kullanıcıların sohbet geçmişini toplu çalıştırma veri kümesine eklemesi gerekir. Test için kullanılabilir sohbet geçmişi yoksa, chat_history toplu çalıştırma veri kümesindeki boş bir listeye [] ayarlamanız yeterlidir.

Sohbet geçmişiyle yazma istemi

Sohbet geçmişini istemlerinize dahil etmeniz, bağlam duyarlı ve etkileşime giren sohbet botu yanıtları oluşturmak için gereklidir. İstemlerinizde, geçmiş etkileşimleri almak için başvurabilirsiniz chat_history . Bu, bağlamsal olarak ilgili yanıtlar oluşturmak için önceki girişlere ve çıkışlara başvurmanızı sağlar.

'den chat_historygelen giriş ve çıkışların listesini görüntülemek için Jinja dilinin döngü dil bilgisini kullanın.

{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}

Sohbet kutusuyla test edin

Sohbet kutusu, sohbet botunuzla bir konuşma benzetimi yaparak sohbet akışınızı test etmek için etkileşimli bir yol sağlar. Sohbet kutusunu kullanarak sohbet akışınızı test etmek için şu adımları izleyin:

  1. Sohbet kutusunu açmak için "Sohbet" düğmesini seçin.
  2. Test girişlerinizi sohbet kutusuna yazın ve sohbet botuna göndermek için Enter tuşuna basın.
  3. Bağlamsal olarak uygun ve doğru olduklarından emin olmak için sohbet botunun yanıtlarını gözden geçirin.

 Screenshot of Chat flow chat box experience.

Sonraki adımlar