Aracılığıyla paylaş


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.

Sıfırdan veya galeriden istem akışı oluşturma işleminin ekran görüntüsü.

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.

İstem akışı ana çalışma alanının ekran görüntüsü.

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.

Not

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.

İşlem oturumu

Yazmaya başlamadan önce işlem oturumlarını başlatmanız gerekir. İşlem oturumu, 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.

Studio'da işlem oturumunun başlatılmasının ekran görüntüsü.

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.

 Akış girişinin ve çıkışının ekran görüntüsü.

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.

 Python düğümü için Python betiği yazma ekran görüntüsü.

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

Koşullu denetimi etkinleştirmek için yapılandırmayı etkinleştir ayarının ekran görüntüsü.

Akışı test etme

Akışı iki şekilde test edebilirsiniz:

  • Tek düğüm çalıştırın.
    • 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 çıktısı bölümünde sonucu hızla kontrol edebilirsiniz.
  • Akışın tamamını çalıştırın.
    • Akışın tamamını çalıştırmak için sağ üstteki Çalıştır düğmesini seçin.

Test sonucunu ve izlemeyi görüntüleme (önizleme)

Akışın tamamı için, akışı yürüttkten sonra çalıştırma başlığının çalıştırma durumunu görebilirsiniz. Ardından, sonucu denetleme ve akış yürütmeyi gözlemleme izlemesini görüntülemek için İzlemeyi görüntüle'yi seçebilirsiniz. Burada tüm akışın ve her düğümün giriş ve çıkışını ve hata ayıklamaya yönelik daha ayrıntılı bilgileri görebilirsiniz. Çalıştırma sırasında ve çalıştırma tamamlandıktan sonra kullanılabilir.

 İki konumdaki çıktıyı görüntüle düğmesinin ekran görüntüsü.

İzleme görünümünü anlama

bir istem akışının izleme türü Flow olarak belirlenir. İzleme görünümünde akış düzenleme için kullanılan araçların net dizisi gözlemlenebilir.

Akış kökü altındaki her düzey 2 yayılma alanı akıştaki bir düğümü temsil eder ve işlev çağrısı biçiminde yürütülür, bu nedenle span türü İşlev olarak tanımlanır. Her düğüm yürütmesinin süresini span ağacında görebilirsiniz.

Yayılma ağacında, LLM çağrıları LLM yayılma alanı olarak kolayca tanımlanabilir. Bunlar LLM çağrısının süresi ve ilişkili belirteç maliyeti hakkında bilgi sağlar.

Bir yayılmaya tıklayarak, sağ tarafta ayrıntılı bilgileri görebilirsiniz. Bu giriş ve çıkış, Ham Json ve Özel Durum içerir; bunların tümü gözlemleme ve hata ayıklama için yararlıdır.  İzleme ayrıntılarının ekran görüntüsü.

Not

İstem akışı SDK'sında LLM, İşlev, Ekleme, Alma ve Akış gibi serval span türlerini tanımladık. Ayrıca sistem, belirlenen özniteliklerde ve olaylarda yürütme bilgileriyle otomatik olarak span'lar oluşturur.

Yayılma türleri hakkında daha fazla bilgi edinmek için bkz . İzleme aralığı.

Akış çalıştırması tamamlandıktan sonra, sonuçları denetlemek için Test sonuçlarını görüntüle düğmesini seçerek bir listedeki tüm geçmiş çalıştırma kayıtlarını kontrol edebilirsiniz. Varsayılan olarak, son yedi gün içinde oluşturulan çalıştırma kayıtları görüntülenir. Koşulu değiştirmek için Filtre'yi seçebilirsiniz.

Akış testi sonucunun ekran görüntüsü.

Ayrıntılı bilgileri izleme görünümünde görüntülemek için çalıştırma kaydının adı'nı da seçebilirsiniz.

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.

Sohbet akışı yazma sayfasının ekran görüntüsü.

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"
        }
    }
    ]
    

Not

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.
  4. İzlemeyi hızla gözlemlemek ve hata ayıklamak için yerinde görüntüleyin.

 Sohbet akışı sohbet kutusu deneyiminin ekran görüntüsü.

Sonraki adımlar