Aracılığıyla paylaş


İstem akışı geliştirme

İstem akışı, Büyük Dil Modelleri (LLM) tarafından desteklenen yapay zeka uygulamalarının geliştirme döngüsünü kolaylaştıran bir geliştirme aracıdır. Bu makalede, Azure Machine Learning stüdyosu'de bir istem akışı ve sohbet akışı oluşturmayı ve geliştirmeyi öğreneceksiniz.

LLM tabanlı yapay zeka uygulamalarının ivmesi arttıkça, istem akışı yapay zeka uygulamalarını prototip oluşturma, deneme, yineleme ve dağıtma sürecini basitleştiren kapsamlı bir çözüm sağlar. İstem akışını kullanarak şunları yapabilirsiniz:

  • 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 yinein.
  • İstem varyantları oluşturun ve performanslarını karşılaştırın.

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

İstem akışı oluşturmak için sol Azure Machine Learning stüdyosu gezinti bölmesinden Akış iste'yi seçin ve ardından İstem akışı sayfasında Oluştur'u seçin.

Yeni akış oluştur ekranında şu şekilde akış oluşturabilirsiniz:

  • Şablondan Standart, Sohbet veya Değerlendirme akışı oluşturma.
  • Keşfet galerisinden kullanılabilir bir örneği kopyalama.
  • Mevcut bir akışı yerel dosyalardan veya dosya paylaşımından içeri aktarma.

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

Akış oluşturmak için, istediğiniz akış kartında Oluştur veya Kopyala'yı seçin. Sonraki ekran bölmesinde, isterseniz yeni akış adını değiştirebilir ve ardından Oluştur veya Kopyala'yı seçebilirsiniz. Yeni akış yazma kullanıcı arabiriminde açılır.

İşlem oturumu

Yazmaya başlamadan önce, akış yazma sayfasının üst kısmındaki İşlem oturumunu başlat'ı seçerek işlem oturumunu başlatın. Akış yürütme için bir işlem oturumu gereklidir. İşlem oturumu, gerekli tüm bağımlılık paketlerini içeren bir Docker görüntüsü de dahil olmak üzere uygulamanın çalışması için gereken bilgi işlem kaynaklarını yönetir.

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

Yazma sayfası

İşlem oturumunun başlatılması birkaç dakika sürebilir. İşlem oturumu başlatılırken akış yazma sayfasının bölümlerini inceleyin.

  • Sayfanın sol tarafındaki Akış veya düzleştirme görünümü, akışı oluşturduğunuz ana çalışma alanıdır. Düz görünümde düğümleri, araçları, istemleri ve girişleri düzenleyebilirsiniz; düğümleri veya akışın tamamını çalıştırma; ve çıkışları tanımlayıp görüntüleyin.

  • Sağ üstteki dosyalar , akışın klasör ve dosya yapısını gösterir. Her akışın flow.dag.yaml dosyası, kaynak kod dosyaları ve sistem klasörleri içeren bir klasörü vardır. Test, dağıtım veya işbirliği için dosya ekleyebilir, düzenleyebilir, silebilir, karşıya yükleyebilir veya indirebilirsiniz.

  • Sağ altta yer alan Graf görünümü akış yapısını görselleştirir. Yakınlaştırabilir, uzaklaştırabilir veya otomatik düzeni kullanabilirsiniz. Bu görünümü doğrudan düzenleyemezsiniz, ancak düz görünümde bulup düzenlemek için bir düğüm seçebilirsiniz.

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

Girişler ve Çıkışlar bölümlerinde, girişleri ve çıkışları görüntüleyebilir, ekleyebilir veya kaldırabilir ve düzenleyebilirsiniz.

  • Akış girişi, akışa bir bütün olarak geçirilen verilerdir. Adı ve türü belirterek giriş şemasını tanımlarsınız ve akışı test etmek için her girişin değerini ayarlarsınız. kullanarak ${input.<input name>}akış düğümlerindeki 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. veya ${<node name>.output.<field name>}söz dizimini ${<node name>.output} kullanarak tek bir düğüm çıkışına başvurarak akış çıkış değerini tanımlayabilirsiniz. Akış çalıştırması veya toplu çalıştırma tamamlandıktan sonra çıkış sonuç tablosunu görüntüleyebilir ve dışarı aktarabilirsiniz.

Akış araçları

Akışta LLM, Python, Prompt, Serp API ve Content Safety gibi farklı araç türlerini kullanabilirsiniz. Bir araç seçildiğinde, bu araç için akışın sonuna yeni bir düğüm eklenir. Düğüm adını belirtmeniz ve gerekli yapılandırmaları ayarlamanız gerekir. Düğümün akıştaki konumunu değiştirmek için düğüm denetimlerini kullanabilirsiniz.

Düğüm girişleri ve çıkışları

LLM ve Prompt araçları, istemi dinamik olarak oluşturmak için şablon oluşturma dili olarak Jinja kullanır. Örneğin, sabit metin kullanmak yerine giriş adınızı içine almak için kullanabilirsiniz {{}} , böylece anında değiştirilebilir.

Düğüm Girişlerini ve Çıkışlarını aşağıdaki yollarla ayarlayabilirsiniz:

  • Giriş Değerini doğrudan ayarlayın.
  • kullanarak ${input.<input name>}akış girişlerine başvurun.
  • veya ${<node name>.output.<field name>}kullanarak ${<node name>.output} düğüm çıkışına başvurun.

bir istem veya Python betiği oluşturmayı tamamladıktan sonra, komut istemi şablonuna ve Python işlev girişine göre düğüm girişini otomatik olarak ayrıştırmak için Sistem için girişi doğrula ve ayrıştır'ı seçin.

Düğüm çıkışına başvurarak düğümleri bağlayabilirsiniz. Örneğin, Python düğüm girişindeki LLM düğümü çıkışına başvurarak Python düğümünü LLM düğümü çıkışını tüketmesini sağlayabilirsiniz. Graf görünümünde iki düğümün birbirine bağlı olduğunu görebilirsiniz.

LLM düğümleri

Azure OpenAI LLM düğümü için Bağlantı, Api ve deployment_name'ı seçip İstem'i ayarlamanız gerekir. Azure OpenAI ile etkileşime geçmek için gereken gizli anahtarlar veya diğer hassas kimlik bilgilerini güvenli bir şekilde depolamak ve yönetmek için bağlantıyı kullanırsınız.

Henüz bir bağlantınız yoksa LLM düğümünü eklemeden önce bunu oluşturun ve Azure OpenAI kaynağının bir sohbet veya tamamlama dağıtımına sahip olduğundan emin olun. Daha fazla bilgi için bkz . Bağlantı kurma ve Kaynak oluşturma ve Azure OpenAI kullanarak model dağıtma.

Python düğümleri

Python aracını kullanmak için Python betiğini, giriş değerini ve diğer yapılandırmaları ayarlamanız gerekir. Yeni bir Python düğümü, girişleri ve çıkışları tanımlayan aşağıdaki ortak Python işlevini sağlar.

from promptflow import tool

# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(input1: str) -> str:
    return 'hello ' + input1

Koşullu denetim

İstem akışı, bir akıştaki herhangi bir düğümün yürütülmesi için koşullar ayarlamanıza olanak tanıyan koşullu denetim sunar.

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

Düğüm kartında Yapılandırmayı etkinleştir düğmesini seçerek düğüm için etkinleştirme yapılandırmasını ayarlayın. Bir When deyimi ekleyin ve koşulu ayarlayın. Akış girişlerine veya düğüm çıkışına başvurarak koşulları ayarlayabilirsiniz. Örneğin, koşulu ${input.<input name>} veya ${<node name>.output} belirli değerler olarak ayarlayabilirsiniz. Koşul karşılanmazsa düğüm atlanır ve düğüm durumu Atlandı olarak görünür.

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

Akışı test edin

Tek bir düğüm çalıştırarak veya akışın tamamını çalıştırarak bir akışı test edebilirsiniz.

  • Tek bir düğümü çalıştırmak için düğüm kartındaki Çalıştır simgesini seçin. Düğüm çalıştırması tamamlandığında, düğüm Çıkışları bölümünde sonuçları hızla kontrol edebilirsiniz.
  • Akışın tamamını çalıştırmak için sayfanın üst kısmındaki Çalıştır'ı seçin.

Akış çıkışları

Akışı yürütmek için Çalıştır'ı seçtikten sonra, sayfanın üst kısmındaki başlıkta çalıştırma durumunu görebilirsiniz. Ayrıntılı giriş, çıkış, akış yürütme ve düzenleme bilgilerini görüntülemek için üst başlıkta veya üst menü çubuğunda Çıkışları görüntüle'yi seçin.

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

Akış çalıştırması tamamlandıktan sonra Çıkışları görüntüle'yi seçerek Çıkışlar ekranındaki tüm geçmiş çıkışları deleyebilirsiniz.

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

Akışın süresi ve ilişkili belirteç maliyeti hakkında bilgi sağlayan bir grafik görmek için Çıkışlar ekranında İzleme sekmesini seçin. Sağ bölmede ayrıntılı akışa genel bakış bilgilerini görmek için düğüm adının altındaki akışı seçin.

Akışı genişletin ve bu adımla ilgili ayrıntılı bilgileri görmek için herhangi bir adımı seçin. Her düğüm yürütmesinin süresini span ağacında görebilirsiniz. Daha fazla bilgi için bkz . İzleme Aralığı Belirtimi.

 İzleme ayrıntılarının ekran görüntüsü.

Sohbet akışı geliştirme

Sohbet akışı , konuşma uygulaması geliştirme için tasarlanmış belirli bir istem akışı türüdür. Sohbet akışı, sohbet girişleri/çıkışları ve sohbet geçmişi için gelişmiş destek sağlamak için standart akış özelliklerini kullanır. Sohbet akışını kullanarak, sohbet girişini ve çıkışını işleyen bir sohbet botu kolayca oluşturabilirsiniz.

Sohbet akışı oluşturmak için, Yeni akış oluştur ekranında Sohbet akışı kartında Oluştur'u seçin veya Keşfet galerisinde Sohbet'i seçip kullanılabilir akışlardan birini klonlayabilirsiniz.

Sohbet akışı yazma sayfasında, sohbet akışı standart ve değerlendirme akışlarından ayırt etmek için sohbet etiketiyle etiketlenmiş olur. Sohbet akışını test etmek için sayfanın üst kısmındaki Sohbet'i seçerek sohbet için bir Sohbet kutusu açın.

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

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

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

  • Sohbet girişi , kullanıcılar tarafından sohbet botu'na 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 , 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ışı , girişlerine yanıt olarak kullanıcılara 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ışının birden çok girişi olabilir. Sohbet akışı Girişleri bölümünde, girişlerden birini Sohbet girişi olarak işaretlersiniz ve Sohbet kutusuna bir soru girerek sohbet giriş değerini doldurursunuz.

Girişler bölümünde ve Sohbet kutusunda test sorusunu gösteren ekran görüntüsü.

Sohbet geçmişini yönetme

Sohbet geçmişini chat_history yönetmenize yardımcı olmak için, Girişler bölümünde sohbet geçmişini temsil etmek için ayrılmıştır. öğesini el ile düzenleyemezsiniz chat_history.

Sohbet geçmişi giriş ve çıkış listesi olarak yapılandırı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. Aşağıdaki kod, sohbet geçmişinin yapısını gösterir.

[
{
    "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 kutusunda testler gerçekleştirdiğinizde, sohbet geçmişini otomatik olarak kaydedersiniz. Toplu çalıştırmalar için, toplu çalıştırma veri kümesine sohbet geçmişini eklemeniz gerekir. Kullanılabilir sohbet geçmişi yoksa, öğesini toplu çalıştırma veri kümesinde boş bir liste [] olarak ayarlayınchat_history.

Geçmiş etkileşimleri almak için istemlerinize başvurun chat_history . Ardından bağlamsal olarak ilgili yanıtlar oluşturmak için önceki girişlere ve çıkışlara başvurabilirsiniz. Sohbet geçmişini istemlerinize dahil etmeniz, bağlam algılayan ve etkileşime giren sohbet botu yanıtları oluşturmak için gereklidir.

Gelen giriş ve çıkışların chat_historylistesini görüntülemek için Döngü dil bilgisi için Jinja dilini kullanabilirsiniz.

{% 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 simülasyonu 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:

  1. Sohbet kenar çubuğunu açmak için Sohbet'i seçin.
  2. Test sorularını sohbet bota göndermek için ekranın alt kısmındaki sohbet kutusuna girin.
  3. Bağlamsal olarak uygun ve doğru olduklarından emin olmak için sohbet botunun yanıtlarını gözden geçirin.
  4. Sohbet girişlerini, çıkışlarını ve geçmişini hızla görüntülemek ve hatalarını ayıklamak için yazma sayfasının üst kısmındaki Çıkışları görüntüle'yi seçin.
  5. Çıkışlar ekranında İzleme sekmesini seçin ve ardından sağ bölmede ayrıntılı akışa genel bakış bilgilerini görmek için akış'ı seçin. Akışı genişletin ve bu adımla ilgili ayrıntılı bilgileri görmek için herhangi bir adımı seçin.

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