Referensi untuk semua node Application Flow, dikelompokkan ke dalam empat kategori: Flow control, AI capabilities, Data retrieval, dan Data processing.
Flow control
Start
*Tentukan titik masuk dan parameter input dari sebuah alur aplikasi.*
Setiap Application Flow harus memiliki tepat satu node Start.
Node Start menandai tempat eksekusi dimulai dan mendeklarasikan parameter input. Untuk alur percakapan, dua bidang disediakan secara default: Conversation History dan User Input. Tambahkan variabel kustom sesuai kebutuhan. Untuk menerima unggahan file, tambahkan variabel input bertipe File. Untuk detail selengkapnya, lihat Input/output tipe file.

Saat menjalankan alur, atur parameter input untuk sesi saat ini di panel percakapan.

Conditional branch
*Tambahkan logika IF/ELSE untuk mengarahkan eksekusi melalui jalur berbeda.*
Node Conditional Branch mengevaluasi kondisi dan mengarahkan eksekusi ke cabang yang sesuai. Jika tidak ada kondisi yang terpenuhi, cabang else akan dijalankan. Pasangkan node ini dengan node Variable aggregate untuk mengumpulkan hasil dari semua cabang.

Input
Setiap cabang merepresentasikan satu jalur eksekusi. Perhatikan hal berikut saat mengonfigurasi kondisi:
-
Cabang terakhir selalu else. Cabang ini dijalankan ketika tidak ada kondisi lain yang terpenuhi dan tidak dapat diedit.
-
Setiap cabang mendukung beberapa kondisi yang dikombinasikan dengan logika
and/or. -
Verifikasi output node hulu, operator pencocokan (seperti
=,≠,is empty,does not include), dan nilai pencocokan untuk memastikan kondisi akurat.
Output
Node ini tidak menghasilkan output.
Contoh penggunaan
Setiap cabang memiliki Port yang sesuai pada node-nya. Ketika kondisi cabang dipicu, node hilir dalam cabang tersebut dijalankan, sedangkan cabang lainnya dilewati. Gunakan node Variable aggregate setelahnya untuk menggabungkan hasil.

Variable aggregate
*Gabungkan output dari beberapa cabang ke dalam satu variabel.*
Masalah percabangan: Saat node Conditional Branch atau Intent Recognition dijalankan, hanya satu cabang yang dieksekusi. Tanpa agregasi, node hilir harus menangani setiap cabang secara terpisah, yang menyebabkan duplikasi logika. Node Variable aggregate mengatasi masalah ini dengan memetakan output dari cabang mana pun yang dijalankan ke dalam satu variabel terpadu untuk digunakan oleh node hilir.

Input
Konfigurasikan satu atau beberapa grup variabel. Setiap grup mengumpulkan satu output dari cabang-cabang:
-
Node hulu biasanya merupakan cabang eksekusi dari node Conditional branch atau node Intent recognition.
-
Semua variabel dalam satu grup harus bertipe sama. Nilai pertama yang tidak kosong menjadi output grup tersebut.
-
Karena hanya satu cabang yang dijalankan dalam satu waktu, setiap grup akan memiliki tepat satu nilai yang tidak kosong.
-
Untuk mengumpulkan beberapa output per cabang, tambahkan beberapa grup—satu grup untuk setiap output.
Output
Node ini menghasilkan satu pasangan kunci-nilai per grup. Kuncinya adalah nama grup; nilainya adalah variabel pertama yang tidak kosong dalam grup tersebut.
Contoh penggunaan
Lihat Conditional branch.
Loop
*Ulangi sub-alur hingga kondisi terpenuhi atau jumlah iterasi maksimum tercapai.*
Node Loop digunakan untuk tugas-tugas di mana setiap iterasi bergantung pada hasil sebelumnya, seperti menyempurnakan respons secara progresif atau menyelesaikan masalah langkah demi langkah. Untuk memproses daftar item independen secara paralel, gunakan Batch processing sebagai gantinya.
|
Loop |
Batch processing |
|
|
Urutan eksekusi |
Berurutan—setiap iterasi menggunakan hasil sebelumnya |
Paralel—item diproses secara independen |
|
Ketergantungan |
Setiap siklus bergantung pada output siklus sebelumnya |
Item saling independen satu sama lain |
|
Kasus penggunaan |
Penyempurnaan konten, penyelesaian masalah multi-langkah |
Penguraian dokumen massal, inferensi LLM batch |

Input
|
Parameter |
Deskripsi |
|
Loop variables |
Data yang diteruskan antar iterasi. Atur nilainya secara manual atau dari output node hulu. Variabel-variabel ini tetap tersedia untuk node hilir setelah loop berakhir. |
|
Loop exit condition |
Kondisi berdasarkan variabel loop yang menghentikan loop lebih awal. |
|
Maximum loop count |
Jumlah iterasi maksimum. Mencegah loop tak terbatas. |
Output
Nilai variabel loop setelah iterasi terakhir. Variabel loop hanya diperbarui oleh node Variable Assigner. Tanpa node tersebut, output loop selalu identik dengan input awal, terlepas dari jumlah iterasi.
Node terkait
Tambahkan node berikut di dalam loop dengan mengklik + di sebelah kanan node dalam loop:
-
Break Loop: Keluar dari loop segera. Biasanya didahului oleh node Conditional branch.
-
Variable Assigner: Menetapkan output sub-node ke variabel loop, memajukan status loop.

Direct output
*Kirim balasan langsung tanpa menunggu alur selesai sepenuhnya.*
Node Direct Output mengirim pesan berbasis templat sebelum sisa alur selesai. Referensikan output node hulu dengan sintaks {{node.variable}}. Output streaming didukung.
Contoh: Tempatkan node Direct Output sebelum node LLM untuk mengirim pesan "thinking..." kepada pengguna saat LLM memproses permintaan.


Batch processing
*Proses daftar item secara paralel menggunakan sub-alur yang sama.*
Node Batch processing menerapkan sub-alur ke setiap elemen dalam daftar input, memproses hingga 10 item secara simultan. Untuk tugas iteratif di mana setiap langkah bergantung pada hasil sebelumnya, gunakan Loop sebagai gantinya.
Input
|
Parameter |
Deskripsi |
|
Input list |
Daftar data yang akan diproses. Setiap elemen dilewatkan secara independen ke sub-alur. |
|
Output field |
Variabel output dari node sub-alur yang digunakan sebagai hasil setiap item. |
|
Parallel count |
(Opsional) Jumlah item yang diproses secara simultan. Default: |
Output
|
Variabel |
Deskripsi |
|
|
Daftar hasil dalam urutan yang sama dengan daftar input. Jika suatu item keluar lebih awal atau tidak menghasilkan output, posisinya bernilai |
Node terkait
-
Batch Start: Titik masuk untuk sub-alur batch. Menyediakan
item(elemen data saat ini) danindex(posisi elemen dalam daftar input, dimulai dari 0) sebagai output untuk node hulu. -
Batch Break: Menghentikan pemrosesan item saat ini ketika kondisi terpenuhi. Item lain tetap diproses secara normal.
Contoh penggunaan
Skenario: Perusahaan perlu mengurai beberapa dokumen dan menjalankan pemrosesan LLM pada masing-masing. Dokumen yang gagal diurai dilewati secara otomatis.
Konfigurasi:
|
Parameter |
Nilai |
Deskripsi |
|
Input list |
|
Daftar file dari node Start hulu |
|
Output field |
|
Bidang output node LLM |
|
Parallel count |
|
Memproses 4 file secara simultan |

Contoh output:
{
"result": [
"Dokumen ini adalah panduan pengguna produk XX, mencakup fitur produk dan langkah instalasi...",
"Kontrak ini untuk pengadaan layanan perangkat lunak dengan masa berlaku 12 bulan...",
null,
"Faktur PPN standar, diterbitkan pada 15 Januari 2026..."
]
}
Nilai null berarti file gagal diurai, sehingga node Batch Break melewati pemrosesan lanjutan untuk item tersebut.
Catatan penggunaan
-
Urutan hasil: Daftar output mempertahankan urutan yang sama dengan daftar input.
-
Fleksibilitas sub-alur: Item dapat memicu jalur eksekusi berbeda dalam sub-alur.
-
Nilai null: Jika jalur eksekusi keluar lebih awal atau output kosong, posisi yang sesuai bernilai
null.
End
*Tandai akhir alur aplikasi dan tentukan parameter outputnya.*
Application Flow harus memiliki satu node Start dan satu node End. Hanya node dalam jalur dari Start ke End yang dieksekusi. Node yang berdiri sendiri tidak dieksekusi.
Konfigurasi parameter output
Referensikan output node hulu apa pun sebagai output alur. Misalnya, answer dapat mereferensikan output node LLM, sedangkan search_results dapat mereferensikan output node pencarian.

Alur percakapan mencakup bidang output default Chat, yang berfungsi sebagai output percakapan alur.
AI capabilities
LLM
*Panggil model bahasa besar untuk menghasilkan teks, mengklasifikasikan konten, menerjemahkan, atau menjawab pertanyaan.*
Node LLM adalah komponen AI inti dalam Application Flows. Konfigurasikan model, kelola riwayat percakapan, dan sesuaikan prompt untuk menyesuaikan kualitas respons.
Kasus Penggunaan:
-
Generasi teks: Hasilkan konten berdasarkan topik atau kata kunci.
-
Klasifikasi: Kategorikan input, seperti mengklasifikasikan email sebagai permintaan informasi, keluhan, atau spam.
-
Terjemahan: Terjemahkan teks ke bahasa target.
-
Retrieval-augmented generation (RAG): Jawab pertanyaan dengan menggabungkan pengetahuan yang diambil dengan penalaran LLM.

Input
Pengaturan model
Mendukung model yang diterapkan dari ModelGallery, penerapan kustom, dan penyedia pihak ketiga seperti DashScope dan DeepSeek. Untuk kinerja lebih baik, pilih model yang lebih canggih.
|
Parameter |
Deskripsi |
|
Temperature |
Mengontrol keacakan output. Rentang: |
|
Top P |
Ambang batas sampling nucleus. Model melakukan sampling dari himpunan token terkecil yang probabilitas kumulatifnya melebihi P. |
|
Top K |
Membatasi token kandidat ke K token paling mungkin. Membatasi keacakan lebih langsung daripada Top P. |
|
Presence penalty |
Memberikan penalti pada konten yang sudah dihasilkan, mendorong informasi baru. Nilai lebih tinggi mengurangi pengulangan lebih agresif. |
|
Frequency penalty |
Memberikan penalti pada token secara proporsional terhadap frekuensinya, mengurangi penggunaan berlebihan kata umum dan meningkatkan keragaman leksikal. |
|
Max tokens |
Panjang output maksimum untuk satu panggilan. Nilai lebih rendah dapat memotong respons. |
|
Seed |
Saat diatur, model mencoba sampling deterministik. Permintaan berulang dengan seed dan parameter yang sama seharusnya menghasilkan hasil yang sama. Determinisme lengkap tidak dijamin; pantau parameter respons |
|
Stop sequences |
Hingga empat sekuens. Saat model menemukan salah satunya, generasi berhenti. Sekuens berhenti tidak termasuk dalam output. |
Pengaturan lain
|
Pengaturan |
Deskripsi |
|
Conversation history |
Saat diaktifkan, riwayat percakapan secara otomatis dimasukkan ke dalam prompt. |
|
Input variables |
Referensikan output dari node sebelumnya. |
|
Prompt |
Sesuaikan konten prompt |
Output
Default ke output String. Konfigurasikan output JSON untuk menentukan variabel output kustom. LLM menghasilkan nilai berdasarkan nama setiap variabel. Versi mendatang berencana menambahkan bidang deskripsi untuk setiap variabel guna membimbing generasi output.
Topik terkait
Intent recognition
*Arahkan eksekusi alur berdasarkan maksud pengguna.*
Node Intent Recognition menggunakan LLM untuk mengklasifikasikan maksud pengguna dan mengarahkan eksekusi ke cabang yang sesuai. Mendukung konfigurasi multi-maksud dan riwayat percakapan.

Input
|
Parameter |
Deskripsi |
|
User input |
Input untuk mengklasifikasikan intent. |
|
Multi-intent configuration |
Tentukan setiap maksud. Buat deskripsi spesifik dan berbeda. Maksud terakhir default ke Other (cocok saat tidak ada maksud lain yang berlaku) dan tidak dapat diedit. |
|
Model settings |
LLM untuk klasifikasi maksud. Untuk akurasi lebih baik, gunakan model canggih seperti |
|
Conversation history |
Saat diaktifkan, model menyertakan riwayat percakapan dalam prompt selama inferensi. |
|
Additional prompt |
Teks yang ditambahkan ke prompt sistem untuk membimbing pengenalan maksud. |
Output
Node ini tidak menghasilkan output.
Contoh penggunaan
Setiap intent memiliki Port yang sesuai pada node. Ketika suatu intent dikenali, node downstream pada cabang tersebut dijalankan, sedangkan cabang lainnya dilewati. Gunakan node Variable aggregate untuk mengumpulkan hasil.

Agent
*Berikan kontrol otonom LLM atas alat untuk menyelesaikan tugas kompleks multi-langkah.*
Node Agent memungkinkan LLM merencanakan, memilih alat, dan bertindak secara otonom. Node ini memanggil alat Model Context Protocol (MCP), alat OpenAPI kustom, atau alat Python saat waktu proses untuk menghasilkan jawaban akhir.
Konfigurasi parameter node
Agent Strategy
Pilih cara agent melakukan penalaran dan memanggil alat:
|
Strategi |
Cara kerja |
Paling cocok untuk |
|
FunctionCalling |
Menggunakan format terstruktur |
Tugas dengan tujuan jelas dan langkah-langkah sederhana (pemeriksaan cuaca, kueri data). Memerlukan model dengan dukungan pemanggilan alat native. |
|
ReAct |
(Reasoning + Acting) Menggunakan prompt untuk membimbing model menghasilkan langkah eksplisit "Thought" dan "Action", memicu eksekusi alat melalui output bahasa alami. Tidak memerlukan pemanggilan alat tingkat API. |
Tugas yang memerlukan penalaran langkah demi langkah, visibilitas debugging, atau model tanpa dukungan output terstruktur. |
Parameter lain
|
Parameter |
Deskripsi |
|
Model settings |
FunctionCalling memerlukan model dengan dukungan pemanggilan alat native. ReAct bekerja dengan model apa pun tetapi berkinerja terbaik dengan model penalaran kuat. |
|
Conversation history |
Saat diaktifkan, agent menerima pesan percakapan sebelumnya sebagai konteks, menyelesaikan pronomina dan referensi tanpa meminta pengguna mengulang informasi. |
|
Task planning |
Saat diaktifkan, alat |
|
MCP tools |
Sambungkan server MCP menggunakan SSE atau Streamable HTTP. Gunakan tool scope untuk mengontrol alat mana yang terlihat oleh LLM. Untuk operasi sensitif (seperti memodifikasi data pengguna), aktifkan approval untuk menjeda alur kerja dan memerlukan konfirmasi manual sebelum eksekusi. |
|
Tools |
Konfigurasikan alat non-MCP: alat OpenAPI kustom dan alat Python. Edit deskripsi, parameter output, dan persyaratan persetujuan setiap alat. |
|
Loop count |
Iterasi penalaran maksimum. Rentang: |
Konfigurasi prompt
|
Pengaturan |
Deskripsi |
|
Input variables |
Untuk mereferensikan output node hulu dalam prompt, definisikan variabel input di sini dan gunakan |
|
System prompt |
Menentukan tujuan tugas dan konteks agent. Opsional untuk strategi ReAct. |
|
User prompt |
Input atau kueri pengguna untuk direspons oleh agent. |
Variabel output
|
Variabel |
Deskripsi |
|
|
Jejak penalaran agent: setiap pemanggilan alat, hasil, dan langkah keputusan. Gunakan ini untuk memahami bagaimana agent mencapai kesimpulannya. Format string. |
|
|
Jawaban akhir agent. Format string. |
Lihat jejak dan log
Setelah mengklik Run, lihat detail eksekusi di dialog hasil.
-
Output antara: Klik ikon status run pada node Agent, lalu cari
intermediate_stepsdi bawah Output untuk melihat proses penalaran. -
Jejak: Periksa setiap permintaan model: input, output (termasuk pemanggilan alat dan parameter), penggunaan token, dan waktu.
-
Log: Saat alur gagal, periksa log run untuk detail eksekusi tingkat node.
Untuk meninjau run sebelumnya, klik More > Run History di pojok kanan atas, lalu pilih catatan.
Document parsing
*Ekstrak teks terstruktur dari berkas dokumen untuk digunakan dalam alur kerja hilir seperti RAG, Ringkasan, atau Tanya-Jawab.*
Node Document Parsing mendukung dua parser:
-
Built-in parser: Ekstrak konten dan metadata terstruktur dari format umum: PDF, DOCX, PPTX, TXT, HTML, CSV, XLSX, XLS, JSONL, dan MD.
-
AI Search Open Platform: Penguraian terstruktur presisi tinggi yang mengekstrak elemen logis seperti judul, paragraf, tabel, dan gambar dari file PDF, DOCX, PPTX, TXT, dan HTML. Konfigurasikan koneksi layanan model AI Search Open Platform di LangStudio sebelum digunakan.

Input
|
Parameter |
Deskripsi |
|
Document file |
Satu file dokumen dari output bertipe file node hulu. |
|
Model settings |
(Opsional) Pilih koneksi AI Search Open Platform. Jika tidak dikonfigurasi, parser bawaan digunakan. |
Output
|
Variabel |
Deskripsi |
|
|
Identifier unik file input. |
|
|
Teks terstruktur yang diurai, termasuk elemen hierarkis seperti judul dan paragraf. |
|
|
Hasil penguraian: |
|
|
Metadata dokumen dan detail penguraian. Bidang tercantum di bawah. |
Bidang metadata:
|
Bidang |
Deskripsi |
|
|
Nama file. |
|
|
Jenis file. |
|
|
URI file asli. |
|
|
URL yang dapat diunduh. |
|
|
Parser yang digunakan: |
Menggunakan output dalam node LLM hulu: Referensikan content dalam prompt user node LLM untuk meneruskan teks yang diurai ke model.

Speech recognition
*Transkripsikan file audio atau video ke teks.*
Input
|
Parameter |
Deskripsi |
|
Model settings |
Model pengenalan ucapan. Menggunakan layanan pengenalan ucapan Alibaba Cloud Bailian. Untuk dukungan multi-bahasa dan akurasi terbaik, gunakan |
|
Audio/video file |
File untuk ditranskripsikan. Untuk format yang didukung, lihat Input/output tipe file. |
|
Recognition language |
Bahasa untuk pengenalan. Opsi: Mandarin, Inggris, Jepang, Kanton, Korea, Jerman, Prancis, Rusia, atau deteksi otomatis. Pemilihan bahasa hanya didukung oleh |
Output
|
Variabel |
Deskripsi |
|
|
Identifier unik file input. |
|
|
Hasil pengenalan: |
|
|
Teks transkripsi lengkap. |
|
|
Daftar segmen kalimat dengan timestamp dan detail teks. |
|
|
Metadata file: |
Data retrieval
Knowledge base retrieval
*Cari basis pengetahuan untuk konten relevan yang digunakan sebagai konteks untuk node LLM.*
Cara kerja
Alur kerja RAG khas menggunakan node ini:
-
Node Start mengumpulkan kueri pengguna.
-
Node Knowledge Base Retrieval mencari basis pengetahuan dan mengembalikan potongan dokumen paling relevan.
-
Node LLM menghasilkan respons menggunakan kueri dan konten yang diambil.
-
Node End mengembalikan jawaban.

Input
|
Parameter |
Deskripsi |
|
Knowledge base index name |
Pilih basis pengetahuan yang terdaftar di LangStudio. Lihat Kelola basis pengetahuan. |
|
Search keywords |
Kueri untuk dicari. Harus mereferensikan output node hulu dalam format |
|
Top K |
Jumlah hasil yang dikembalikan. Mengembalikan K potongan dokumen paling relevan dengan kueri. |
Output
Mengembalikan result, sebuah List[Dict] di mana setiap kamus berisi:
|
Kunci |
Deskripsi |
|
|
Potongan dokumen yang diambil. Fragmen teks dari basis pengetahuan yang relevan dengan kueri. |
|
|
Skor kemiripan antara potongan dan kueri. Skor lebih tinggi menunjukkan relevansi lebih kuat. |
Contoh output (hasil top K diurutkan berdasarkan skor):
[
{
"score": 0.8057173490524292,
"content": "Karena ketidakpastian terkait pandemi, Bank XX secara proaktif\nmeningkatkan penyisihan kerugian pinjaman...",
"id": "49f04c4cb1d48cbad130647bd0d75f***1cf07c4aeb7a5d9a1f3bda950a6b86e",
"metadata": {
"page_label": "40",
"file_name": "2021-02-04_China XX Insurance Group Co., Ltd._XX_China XX_2020_Annual Report.pdf",
"file_path": "oss://my-bucket-name/datasets/chatglm-fintech/2021-02-04__China_XX_Insurance_Group_Co.__Ltd.__601318__China_XX__2020__Annual_Report.pdf",
"file_type": "application/pdf",
"file_size": 7982999,
"creation_date": "2024-10-10",
"last_modified_date": "2024-10-10"
}
},
{
"score": 0.7708036303520203,
"content": "7,2 miliar, naik 5,2% year-on-year...",
"id": "8066c16048bd722d030a85ee8b1***36d5f31624b28f1c0c15943855c5ae5c9f",
"metadata": {
"page_label": "19",
"file_name": "2021-02-04_China XX Insurance Group Co., Ltd._XXX_China XX_2020_Annual Report.pdf",
"file_path": "oss://my-bucket-name/datasets/chatglm-fintech/2021-02-04__China_XX_Insurance_Group_Co.__Ltd.__601318__China_XX__2020__Annual_Report.pdf",
"file_type": "application/pdf",
"file_size": 7982999,
"creation_date": "2024-10-10",
"last_modified_date": "2024-10-10"
}
}
]
Topik terkait
Alibaba Cloud IQS - web search (IQS-GenericSearch)
*Cari web menggunakan Layanan Kueri Informasi (IQS) Alibaba Cloud, dengan filter rentang waktu.*

Input
|
Parameter |
Deskripsi |
|
Search keywords |
Kueri untuk dicari. Panjang: |
|
Time range |
Filter hasil berdasarkan waktu publikasi. Opsi: |
|
IQS connection |
Jika peran dengan izin yang diperlukan tidak dikonfigurasi saat startup, pilih koneksi IQS yang telah dikonfigurasi sebelumnya. Atur kunci ke |
Output
|
Variabel |
Deskripsi |
|
|
Hasil pencarian web sebagai |
|
|
Data tambahan untuk jenis kueri tertentu (waktu, cuaca, kalender). Kosong untuk pencarian umum. |
Bidang dalam setiap kamus output:
|
Kunci |
Deskripsi |
|
|
Judul halaman. |
|
|
URL halaman. |
|
|
Rangkuman singkat konten halaman. |
|
|
Konten halaman lengkap. |
|
|
Konten dalam format Markdown. Mungkin kosong. |
|
|
Skor relevansi atau kualitas untuk hasil tersebut. |
|
|
Timestamp publikasi. |
|
|
URL logo situs sumber. |
|
|
Nama domain situs sumber. |
|
|
Label kategori situs sumber. |
Topik terkait
SerpAPI - generic search
*Cari web melalui SerpAPI di berbagai mesin pencari.*

Input
|
Parameter |
Deskripsi |
|
SerpApi connection |
Pilih koneksi SerpApi yang dibuat di LangStudio. Lihat Buat koneksi SerpApi. |
|
Search keywords |
Kueri. Harus mereferensikan output node hulu dalam format |
|
Search engine |
|
|
Location |
Konteks geografis untuk pencarian. Gunakan lokasi spesifik untuk hasil lebih baik (misalnya, |
|
Result count |
Jumlah hasil yang dikembalikan. |
Output
Mengembalikan output, sebuah List[Dict] di mana setiap kamus berisi:
|
Kunci |
Deskripsi |
|
|
Judul halaman. |
|
|
URL halaman. |
|
|
Rangkuman singkat konten halaman. |
Topik terkait
Solusi chatbot LangStudio & DeepSeek dengan RAG dan pencarian web
HTTP request
*Panggil API eksternal dari dalam alur.*
Node HTTP Request mengirim permintaan HTTP ke layanan eksternal dan mengembalikan tanggapan ke node hilir.
Input
Konfigurasi permintaan
|
Parameter |
Deskripsi |
|
Request method |
|
|
URL |
URL target. |
|
Request headers |
Header kustom sebagai pasangan kunci-nilai, satu per baris. |
|
Request parameters |
Parameter string kueri sebagai pasangan kunci-nilai, satu per baris. |
Otentikasi
Nonaktif secara default. Saat diaktifkan, pilih:
-
Bearer: Otentikasi dengan token Bearer. Masukkan token tanpa awalan
Bearer. -
Basic: Masukkan username dan password. Sistem secara otomatis mengenkode Base64.
-
Untuk otentikasi kustom, konfigurasikan header permintaan secara manual.
Body permintaan
|
Format |
Deskripsi |
|
|
Tidak ada badan permintaan. |
|
|
Kirim data dalam format JSON. |
|
|
Kirim data sebagai |
|
|
Kirim data formulir yang dikodekan URL. |
|
|
Kirim data teks biasa. |
|
|
Kirim data file biner. Mendukung unggahan file. |
Pengaturan keandalan
|
Parameter |
Deskripsi |
|
SSL verification |
Diaktifkan secara default. Pertahankan pengaturan ini di lingkungan produksi. |
|
Timeout |
Waktu tunggu permintaan dalam detik. Rentang: |
|
Retry configuration |
Nonaktif secara default. Saat diaktifkan, atur jumlah percobaan ulang maksimum ( |
Output
|
Variabel |
Deskripsi |
|
|
Badan respons sebagai teks. String kosong saat respons berupa file. |
|
|
Kode status HTTP, seperti |
|
|
Header respons sebagai pasangan kunci-nilai. |
|
|
Objek file saat respons berupa file. |
Data processing
Python
*Jalankan kode Python kustom untuk pemrosesan data kompleks, termasuk input dan output streaming.*
Application Flows mendukung node Python untuk logika yang tidak dapat diekspresikan dengan node bawaan.

Cara kerja
Tulis kode Python di editor. Sistem mengurai tanda tangan fungsi entri untuk membuat input dan output node secara otomatis. Perhatikan hal berikut:
-
Hiasi fungsi titik masuk dengan
@tooluntuk memuatnya sebagai node. -
Tipe input/output yang didukung:
int,float,bool,str,dict,TypedDict,dataclass(hanya output),list, danFile. -
Sistem menempatkan Nilai kembali dalam kamus
outputagar dapat dirujuk oleh node turunan. -
Penguraian input/output memerlukan runtime yang berjalan. Input dan output node tidak dapat dikonfigurasi tanpa runtime tersebut.
Untuk menerima input streaming (misalnya, dari node LLM atau Agent), hiasi fungsi entri dengan @tool(properties={"streaming_pass_through": True}). Tanpa ini, semua input tiba sebagai teks lengkap, bukan sebagai stream.
Menginstal dependensi: Klik Install Dependencies di bilah alat kanvas dan masukkan nama paket. Sistem menyimpannya ke requirements.txt dan menginstalnya saat runtime dimulai atau layanan diterapkan.


Contoh 1: Pemetaan input/output dasar
Kode berikut mendefinisikan dua input (foo dan bar) dan dua output (output1 dan output2):
from langstudio.core import tool
from dataclasses import dataclass
@dataclass
class Result:
output1: str
output2: int
@tool
def invoke(foo: str, bar: int) -> Result:
return Result(
output1="hello" + foo,
output2=bar + 10
)

Contoh 2: Input dan output streaming
Kode berikut menghapus blok <think>...</think> dari keluaran aliran LLM dan hanya meneruskan teks tanggapan akhir ke bawah:
import re
from typing import Iterator
from langstudio.core import tool
@tool(properties={"streaming_pass_through": True})
def strip_think(
stream: Iterator[str],
) -> Iterator[str]: # Input: iterator string streaming; Output: iterator string streaming yang difilter
# Cocokkan struktur <think>\n...\n</think> dan tangkap teks setelah tag penutup
pattern = re.compile(r"<think>\n[\s\S]*\n</think>(.*)")
in_thinking = True # Bendera yang menunjukkan apakah saat ini berada di dalam blok <think>
think_buf = "" # Buffer untuk menyimpan konten yang belum diproses
for chunk in stream:
if in_thinking:
think_buf += chunk
m = pattern.search(think_buf) # Periksa apakah buffer berisi blok thinking lengkap
if m:
in_thinking = False
result_part = m.groups()[0]
if result_part:
yield result_part # Segera keluarkan teks hasil jika ada
else:
yield chunk # Langsung keluarkan semua chunk berikutnya setelah keluar dari blok thinking
Template transformation
*Format dan gabungkan teks menggunakan templat Jinja2 atau mode referensi node.*
Node Template Transformation menghasilkan teks dengan merender templat terhadap variabel input.
Input
Pilih salah satu dari dua mode transformasi:
Mode Jinja2 — Sintaks Jinja2 lengkap untuk output terstruktur, logika kondisional, dan loop.
-
Variabel templat: Definisikan variabel yang digunakan dalam templat. Hindari nama metode bawaan Python (
items,keys,values). Gunakan nama deskriptif sepertiitem_listsebagai gantinya. -
Konten templat: String templat Jinja2 yang mendukung substitusi
{{ variable }}, loop{% for %}, kondisional{% if %}, dan filter{{ value | filter }}. Semua variabel yang direferensikan dalam templat harus didefinisikan dalam daftar variabel.
Mode referensi node — Langsung mereferensikan output node hulu, secara otomatis digabungkan berurutan. Gunakan ini untuk kombinasi teks sederhana.
Konten templat input dan output dibatasi hingga 100.000 karakter. Konten yang melebihi batas ini dipotong.
Output
|
Variabel |
Deskripsi |
|
|
Teks templat yang dirender. |
Contoh penggunaan
Contoh 1: Email konfirmasi pesanan
Konfigurasi variabel:
|
Variabel |
Nilai |
|
|
|
|
|
|
|
|
|
|
|
|
Templat:
Dear {{ customer_name }}:
Your order {{ order_id }} has been confirmed. Details:
{% for product in products %}
- {{ product.name }}: ¥{{ product.price }}
{% endfor %}
Total: ¥{{ total }}
Thank you for your purchase!
Output:
Dear Zhang San:
Your order ORD-2025-001 has been confirmed. Details:
- Laptop: ¥8999
- Wireless Mouse: ¥199
Total: ¥9198
Thank you for your purchase!
Contoh 2: Pemformatan hasil pengambilan basis pengetahuan
Konfigurasi variabel:
|
Variabel |
Nilai |
|
|
|
Templat:
{% for chunk in chunks %}
### Relevance: {{ "%.2f" % chunk.score }}
#### {{ chunk.title }}
{{ chunk.content }}
---
{% endfor %}
Output:
### Relevance: 0.95
#### Product Introduction
This is a detailed product description...
---
List operations
*Memfilter, mengurutkan, dan memilih elemen dari daftar untuk pemrosesan hilir (detail halus).*
Masalah pemrosesan array: Sebagian besar node alur kerja mengharapkan nilai tunggal, bukan daftar. Ketika data hulu berisi daftar campuran (misalnya, gambar, dokumen, dan file audio), Operasi Daftar mengisolasi subset yang diperlukan sebelum meneruskannya ke node hilir.
Input
|
Parameter |
Deskripsi |
|
List input |
Daftar yang akan diproses. Mendukung semua jenis elemen: string, angka, Boolean, objek file, atau kamus. |
|
Operations |
Rantai operasi filter dan sort berurutan yang diterapkan secara berurutan. |
Operasi filter
Semua filter peka huruf besar/kecil.
|
Kunci filter |
Deskripsi |
Cakupan |
|
|
Filter berdasarkan posisi elemen dalam daftar. |
Semua jenis daftar |
|
|
Filter berdasarkan nilai elemen. |
Semua jenis daftar |
|
|
Filter berdasarkan atribut kustom. |
Hanya daftar bertipe kamus |
|
|
Filter berdasarkan atribut file: |
Hanya daftar bertipe file |
Operasi sort
|
Sort key |
Deskripsi |
Cakupan |
|
|
Sort berdasarkan nilai elemen. |
Hanya daftar string, angka, atau Boolean |
|
|
Sort berdasarkan atribut kustom. |
Hanya daftar bertipe kamus |
|
|
Sort berdasarkan atribut file (sama seperti atribut filter). |
Hanya daftar bertipe file |
Output
|
Variabel |
Deskripsi |
|
|
Daftar yang telah diproses. Gunakan untuk pemrosesan hilir massal. |
|
|
Elemen pertama dari daftar hasil. |
|
|
Elemen terakhir dari daftar hasil. |
Contoh penggunaan
Contoh 1: Filter gambar dan simpan 3 teratas berdasarkan nama file
Skenario: Pengguna mengunggah daftar file campuran. Filter file gambar, urutkan berdasarkan nama file, dan simpan 3 pertama untuk pengenalan gambar.
Operation 1 - Filter (berdasarkan kategori file):
Filter key: item.category
Filter operator: equals
Filter value: image
Operation 2 - Sort (berdasarkan nama file):
Sort key: item.file_name
Sort direction: asc
Operation 3 - Filter (simpan 3 teratas):
Filter key: index
Filter operator: less than
Filter value: 3

Contoh 2: Filter pengguna dengan skor tinggi dan ambil 5 teratas
Skenario: Dari daftar penilaian pengguna, filter pengguna dengan skor 80 atau lebih tinggi, urutkan berdasarkan skor menurun, dan ambil 5 teratas.
Daftar input:
[
{"name": "Zhang San", "score": 95, "department": "Technology"},
{"name": "Li Si", "score": 72, "department": "Marketing"},
{"name": "Wang Wu", "score": 88, "department": "Technology"},
{"name": "Zhao Liu", "score": 91, "department": "Product"},
{"name": "Qian Qi", "score": 65, "department": "Marketing"},
{"name": "Sun Ba", "score": 98, "department": "Technology"}
]
Konfigurasi operasi:
Operation 1 - Filter (skor ≥ 80):
Filter key: item.score
Filter operator: greater than or equal
Filter value: 80
Operation 2 - Sort (berdasarkan skor menurun):
Sort key: item.score
Sort direction: desc
Operation 3 - Filter (5 teratas):
Filter key: index
Filter operator: less than
Filter value: 5

Output:
[
{"name": "Sun Ba", "score": 98, "department": "Technology"},
{"name": "Zhang San", "score": 95, "department": "Technology"},
{"name": "Zhao Liu", "score": 91, "department": "Product"},
{"name": "Wang Wu", "score": 88, "department": "Technology"}
]
Catatan penggunaan
-
Jika input node mereferensikan variabel output kustom
listdari node Python, definisikan tipe elemen eksplisit di node Python (misalnya,list[str]) untuk memastikan pencocokan operator akurat.