Bagikan melalui


Mengembangkan alur prompt

Alur prompt adalah alat pengembangan yang menyederhanakan siklus pengembangan aplikasi AI yang didukung oleh Model Bahasa Besar (LLM). Dalam artikel ini, Anda mempelajari cara membuat dan mengembangkan alur perintah dan alur obrolan di studio Azure Pembelajaran Mesin.

Seiring berkembangnya momentum untuk aplikasi AI berbasis LLM, alur prompt menyediakan solusi komprehensif yang menyederhanakan proses prototipe, bereksperimen, iterasi, dan penyebaran aplikasi AI. Dengan menggunakan alur perintah, Anda dapat:

  • Mengatur alur yang dapat dieksekusi dengan LLM, perintah, dan alat Python melalui grafik yang divisualisasikan.
  • Uji, debug, dan iterasi alur Anda dengan mudah.
  • Buat varian prompt dan bandingkan performanya.

Membuat dan mengembangkan alur prompt Anda

Untuk membuat alur perintah, pilih Alur perintah di navigasi kiri studio Azure Pembelajaran Mesin, lalu pilih Buat di halaman Alur perintah.

Pada layar Buat alur baru, Anda dapat membuat alur dengan:

  • Membuat alur Standar, Obrolan, atau Evaluasi dari templat.
  • Mengkloning sampel yang tersedia dari galeri Jelajahi.
  • Mengimpor alur yang ada dari file lokal atau berbagi file.

Cuplikan layar pembuatan alur perintah dari awal atau galeri.

Untuk membuat alur, pilih Buat atau Kloning pada kartu alur yang Anda inginkan. Pada panel layar berikutnya, Anda bisa mengubah nama alur baru jika diinginkan, lalu pilih Buat atau Kloning. Alur baru terbuka di antarmuka pengguna penulisan.

Sesi komputasi

Sebelum Anda mulai menulis, mulai sesi komputasi dengan memilih Mulai sesi komputasi di bagian atas halaman penulisan alur. Sesi komputasi diperlukan untuk eksekusi alur. Sesi komputasi mengelola sumber daya komputasi yang diperlukan agar aplikasi berjalan, termasuk gambar Docker yang berisi semua paket dependensi yang diperlukan.

Cuplikan layar mulai sesi komputasi di studio.

Halaman penulisan

Sesi komputasi dapat memakan waktu beberapa menit untuk memulai. Saat sesi komputasi dimulai, periksa bagian halaman penulisan alur.

  • Tampilan Alur atau rata di sisi kiri halaman adalah area kerja utama tempat Anda menulis alur. Dalam tampilan datar, Anda dapat mengedit simpul, alat, perintah, dan input; menjalankan simpul atau seluruh alur; dan tentukan dan lihat output.

  • File di kanan atas menunjukkan folder dan struktur file alur. Setiap alur memiliki folder yang berisi file flow.dag.yaml , file kode sumber, dan folder sistem. Anda dapat menambahkan, mengedit, menghapus, mengunggah, atau mengunduh file untuk pengujian, penyebaran, atau kolaborasi.

  • Tampilan Grafik di kanan bawah memvisualisasikan struktur alur. Anda dapat memperbesar atau memperkecil atau menggunakan tata letak otomatis. Anda tidak dapat mengedit tampilan ini secara langsung, tetapi Anda dapat memilih simpul untuk menemukan dan mengeditnya dalam tampilan datar.

Input dan output aliran

Di bagian Input dan Output , Anda dapat melihat, menambahkan atau menghapus, dan mengedit input dan output.

  • Input alur adalah data yang diteruskan ke alur secara keseluruhan. Anda menentukan skema input dengan menentukan nama dan jenis, dan Anda mengatur nilai setiap input untuk menguji alur. Anda dapat mereferensikan input alur dalam simpul alur dengan menggunakan ${input.<input name>}.

  • Output alur adalah data yang dihasilkan oleh alur secara keseluruhan, yang meringkas hasil eksekusi alur. Anda dapat menentukan nilai output alur dengan mereferensikan output simpul tunggal menggunakan sintaks ${<node name>.output} atau ${<node name>.output.<field name>}. Anda dapat melihat dan mengekspor tabel hasil output setelah eksekusi alur atau eksekusi batch selesai.

Alat alur

Dalam alur, Anda dapat menggunakan berbagai jenis alat, seperti LLM, Python, Prompt, Serp API, dan Content Safety. Memilih alat menambahkan simpul baru untuk alat tersebut ke akhir alur. Anda harus menentukan nama simpul dan mengatur konfigurasi yang diperlukan. Anda dapat menggunakan kontrol simpul untuk mengubah posisi simpul dalam alur.

Input dan output simpul

Alat LLM dan Prompt menggunakan Jinja sebagai bahasa templat untuk menghasilkan perintah secara dinamis. Misalnya, Anda dapat menggunakan {{}} untuk mengapit nama input Anda alih-alih menggunakan teks tetap, sehingga dapat diganti dengan cepat.

Anda dapat mengatur Input dan Output simpul dengan cara berikut:

  • Atur Nilai input secara langsung.
  • Referensikan input alur menggunakan ${input.<input name>}.
  • Referensikan output simpul menggunakan ${<node name>.output} atau ${<node name>.output.<field name>}.

Setelah Anda selesai membuat perintah atau skrip Python, pilih Validasi dan uraikan input untuk sistem guna mengurai input simpul secara otomatis berdasarkan templat perintah dan input fungsi Python.

Anda dapat menautkan simpul dengan mereferensikan output simpul. Misalnya, Anda dapat mereferensikan output simpul LLM dalam input simpul Python sehingga simpul Python mengonsumsi output simpul LLM. Dalam tampilan Grafik, Anda dapat melihat dua simpul yang ditautkan bersama-sama.

Simpul LLM

Untuk node Azure OpenAI LLM, Anda perlu memilih Koneksi, Api, dan deployment_name, dan mengatur Prompt. Anda menggunakan koneksi untuk menyimpan dan mengelola kunci rahasia dengan aman atau kredensial sensitif lainnya yang diperlukan untuk berinteraksi dengan Azure OpenAI.

Jika Anda belum memiliki koneksi, buat sebelum menambahkan simpul LLM, dan pastikan sumber daya Azure OpenAI memiliki penyebaran obrolan atau penyelesaian . Untuk informasi selengkapnya, lihat Menyiapkan koneksi dan Membuat sumber daya dan menyebarkan model menggunakan Azure OpenAI.

Simpul Python

Untuk menggunakan alat Python, Anda perlu mengatur skrip Python, nilai input, dan konfigurasi lainnya. Simpul Python baru menyediakan fungsi Python boilerplate berikut yang menentukan input dan output.

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

Kontrol kondisional

Alur perintah menawarkan kontrol bersyarah, yang memungkinkan Anda mengatur kondisi untuk eksekusi simpul apa pun dalam alur.

Kontrol kondisional menyediakan kemampuan untuk mengaitkan setiap simpul dalam alur dengan konfigurasi aktifkan. Konfigurasi ini adalah when pernyataan yang menentukan kapan simpul harus dijalankan. Kekuatan fitur ini diwujudkan dalam alur kompleks di mana eksekusi tugas tertentu tergantung pada hasil tugas sebelumnya. Dengan menggunakan kontrol kondisional, Anda dapat mengonfigurasi simpul tertentu untuk dijalankan hanya saat kondisi yang ditentukan terpenuhi.

Atur konfigurasi aktifkan untuk simpul dengan memilih tombol Aktifkan konfigurasi di kartu simpul. Tambahkan pernyataan Kapan dan atur kondisi. Anda dapat mengatur kondisi dengan mereferensikan input alur atau output simpul. Misalnya, Anda dapat mengatur kondisi ${input.<input name>} atau ${<node name>.output} sebagai nilai tertentu. Jika kondisi tidak terpenuhi, simpul dilewati dan status simpul muncul sebagai Dilewati.

Cuplikan layar pengaturan mengaktifkan konfigurasi untuk mengaktifkan kontrol kondisional.

Menguji alur

Anda dapat menguji alur dengan menjalankan satu simpul atau menjalankan seluruh alur.

  • Untuk menjalankan satu simpul, pilih ikon Jalankan pada kartu simpul. Ketika eksekusi node selesai, Anda dapat dengan cepat memeriksa hasilnya di bagian Output simpul.
  • Untuk menjalankan seluruh alur, pilih Jalankan di bagian atas halaman.

Output alur

Setelah Memilih Jalankan untuk menjalankan alur, Anda dapat melihat status eksekusi di banner di bagian atas halaman. Pilih Tampilkan output di banner atas atau bilah menu atas untuk melihat informasi input, output, eksekusi aliran, dan orkestrasi terperinci.

 Cuplikan layar tombol tampilkan output di dua lokasi.

Setelah eksekusi alur selesai, Anda dapat memilih Tampilkan output untuk memeriksa semua output historis di layar Output .

Cuplikan layar hasil pengujian alur.

Pilih tab Lacak pada layar Output untuk melihat grafik yang menyediakan informasi tentang durasi dan biaya token terkait alur. Pilih alur di bawah nama simpul untuk melihat informasi gambaran umum alur terperinci di panel kanan.

Perluas alur dan pilih langkah apa pun untuk melihat informasi terperinci untuk langkah tersebut. Anda dapat melihat durasi setiap eksekusi simpul di pohon rentang. Untuk informasi selengkapnya, lihat Spesifikasi Rentang Jejak.

 Cuplikan layar detail pelacakan.

Mengembangkan alur obrolan

Alur obrolan adalah jenis alur permintaan tertentu yang dirancang untuk pengembangan aplikasi percakapan. Alur obrolan dibangun berdasarkan kemampuan alur standar untuk memberikan dukungan yang ditingkatkan untuk input/output obrolan dan riwayat obrolan. Dengan menggunakan alur obrolan, Anda dapat dengan mudah membuat chatbot yang menangani input dan output obrolan.

Untuk membuat alur obrolan, pada layar Buat alur baru, pilih Buat di kartu alur Obrolan, atau pilih Obrolan di galeri Jelajahi dan kloning salah satu alur yang tersedia.

Di halaman penulisan alur obrolan, alur obrolan ditandai dengan label Obrolan untuk membedakannya dari alur standar dan evaluasi. Untuk menguji alur obrolan, Anda memilih Obrolan di bagian atas halaman untuk membuka kotak Obrolan untuk percakapan.

Cuplikan layar halaman penulisan alur obrolan.

Input obrolan, output obrolan, dan riwayat obrolan

Elemen terpenting yang membedakan alur obrolan dari alur standar adalah input obrolan, riwayat obrolan, dan output obrolan. Riwayat obrolan dan input obrolan diperlukan dalam alur obrolan.

  • Input obrolan mengacu pada pesan atau kueri yang dikirimkan oleh pengguna ke chatbot. Menangani input obrolan secara efektif sangat penting untuk percakapan yang sukses, karena melibatkan pemahaman niat pengguna, mengekstrak informasi yang relevan, dan memicu respons yang sesuai.

  • Riwayat obrolan adalah catatan semua interaksi antara pengguna dan chatbot, termasuk input pengguna dan output yang dihasilkan AI. Mempertahankan riwayat obrolan sangat penting untuk melacak konteks percakapan dan memastikan AI dapat menghasilkan respons yang relevan secara kontekstual.

  • Output obrolan mengacu pada pesan yang dihasilkan AI yang dikirim ke pengguna sebagai respons terhadap input mereka. Menghasilkan output obrolan yang sesuai secara kontekstual dan menarik sangat penting untuk pengalaman pengguna yang positif.

Alur obrolan dapat memiliki beberapa input. Di bagian Input alur obrolan, Anda menandai salah satu input sebagai input Obrolan, dan Anda mengisi nilai input obrolan dengan memasukkan pertanyaan di kotak Obrolan.

Cuplikan layar memperlihatkan pertanyaan pengujian di bagian Input dan kotak Obrolan.

Mengelola riwayat obrolan

Untuk membantu Anda mengelola riwayat obrolan, chat_history di bagian Input dicadangkan untuk mewakili riwayat obrolan. Anda tidak dapat mengedit chat_historysecara manual .

Riwayat obrolan disusun sebagai daftar input dan output. Semua interaksi dalam kotak obrolan, termasuk input obrolan pengguna, output obrolan yang dihasilkan, dan input dan output alur lainnya, secara otomatis disimpan dalam riwayat obrolan. Kode berikut menunjukkan struktur riwayat obrolan.

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

Catatan

Saat Anda melakukan pengujian di kotak Obrolan , Anda secara otomatis menyimpan riwayat obrolan. Untuk eksekusi batch, Anda harus menyertakan riwayat obrolan dalam himpunan data eksekusi batch. Jika tidak ada riwayat obrolan yang chat_history tersedia, atur ke daftar [] kosong dalam himpunan data eksekusi batch.

Untuk mengambil interaksi sebelumnya, referensi chat_history dalam perintah Anda. Anda kemudian dapat merujuk ke input dan output sebelumnya untuk membuat respons yang relevan secara kontekstual. Memasukkan riwayat obrolan ke dalam perintah Anda sangat penting untuk membuat respons chatbot yang sadar konteks dan menarik.

Anda dapat menggunakan bahasa Jinja untuk tata bahasa perulangan untuk menampilkan daftar input dan output dari chat_history.

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

Uji dengan kotak obrolan

Kotak Obrolan menyediakan cara interaktif untuk menguji alur obrolan Anda dengan mensimulasikan percakapan dengan chatbot Anda. Untuk menguji alur obrolan Anda dengan menggunakan kotak Obrolan :

  1. Pilih Obrolan untuk membuka bar samping Obrolan .
  2. Masukkan pertanyaan pengujian di kotak obrolan di bagian bawah layar untuk mengirimnya ke chatbot.
  3. Tinjau respons chatbot untuk memastikan respons tersebut sesuai dan akurat secara kontekstual.
  4. Pilih Tampilkan output di bagian atas halaman penulisan untuk melihat dan men-debug input, output, dan riwayat obrolan dengan cepat.
  5. Pada layar Output, pilih tab Lacak lalu pilih alur untuk melihat informasi gambaran umum alur terperinci di panel kanan. Perluas alur dan pilih langkah apa pun untuk melihat informasi terperinci untuk langkah tersebut.

 Cuplikan layar pengalaman kotak obrolan alur obrolan.