Topik ini menjelaskan node kemampuan AI dalam pengembangan aplikasi alur kerja LangStudio, termasuk konfigurasi dan penggunaan komponen preset seperti kontrol alur, model bahasa besar (LLM), pengembangan Python, agen, pengambilan basis pengetahuan, penguraian dokumen, pengenalan suara, dan pencarian web.
Flow Control
Start
Satu alur aplikasi hanya dapat berisi satu node Start.
Node Start menandai awal suatu alur aplikasi dan memungkinkan Anda mengonfigurasi parameter input untuk alur tersebut.
Alur aplikasi percakapan mencakup dua bidang default: riwayat percakapan dan input pengguna. Anda dapat menambahkan variabel kustom sesuai kebutuhan, termasuk variabel input bertipe file untuk menerima file yang diunggah. Untuk informasi selengkapnya, lihat Input/output tipe file.

Saat menjalankan alur aplikasi, konfigurasikan parameter input untuk sesi saat ini di panel chat.

Conditional Branch (Condition)
Node ini menerapkan logika if-else untuk kontrol alur. Jika suatu kondisi bernilai true, hanya cabang yang sesuai yang dijalankan; jika tidak, cabang else akan dijalankan. Anda dapat menggunakan node ini bersama dengan node pengembangan aplikasi alur kerja.
Antarmuka konfigurasi

Input
Saat mengonfigurasi kondisi cabang, perhatikan hal-hal berikut:
Setiap cabang merepresentasikan jalur eksekusi. Cabang terakhir adalah cabang else, yang dijalankan ketika tidak ada cabang lain yang cocok. Cabang ini tidak dapat diedit.
Setiap cabang dapat mencakup beberapa kondisi. Kondisi dalam satu cabang mendukung agregasi AND/OR.
Pastikan akurasi dan validitas dengan menentukan output node hulu, operator perbandingan (seperti
=,≠,is empty,does not include, dll.), serta nilai yang dicocokkan.
Output
Tidak ada output.
Contoh penggunaan
Node kondisi menyediakan port koneksi khusus untuk setiap cabang yang terhubung ke node-node downstream. Ketika kondisi suatu cabang dipicu, alur kerja akan mengeksekusi node-node downstream yang terhubung ke cabang tersebut, sementara cabang-cabang lainnya dilewati. Anda kemudian dapat menggunakan komponen pengembangan aplikasi alur kerja untuk mengumpulkan output dari node-node downstream di semua cabang kondisional.

Variable Aggregate
Node ini mengonsolidasikan hasil output dari berbagai cabang menjadi satu variabel terpadu, sehingga memastikan akses yang konsisten terlepas dari cabang mana yang dieksekusi. Ini sangat berguna dalam skenario multi-cabang di mana variabel dengan fungsi serupa di berbagai cabang dipetakan ke satu variabel output, sehingga menghindari definisi berulang di node hulu.
Antarmuka konfigurasi

Input
Saat mengonfigurasi grup variabel, perhatikan hal-hal berikut:
Node hulu biasanya merupakan beberapa cabang eksekusi yang berasal dari node pengembangan aplikasi alur kerja atau pengembangan aplikasi alur kerja.
Variabel dalam satu grup harus memiliki tipe yang sama. Nilai output non-kosong pertama menjadi output grup tersebut.
Karena node Condition atau Intent Recognition hanya memicu satu cabang, setiap grup berisi tepat satu nilai non-kosong. Node Variable Aggregate mengekstrak nilai ini untuk digunakan dengan mudah di node hulu.
Jika diperlukan beberapa output dari setiap cabang Condition atau Intent Recognition, buat beberapa grup untuk mengekstrak nilai yang sesuai secara terpisah.
Output
Variabel output menyesuaikan secara dinamis berdasarkan grup yang dikonfigurasi. Dengan beberapa grup, node ini menghasilkan beberapa pasangan kunci-nilai, di mana kuncinya adalah nama grup dan nilainya adalah variabel non-kosong pertama dalam grup tersebut.
Contoh penggunaan
Untuk contoh penggunaan, lihat komponen pengembangan aplikasi alur kerja.
Loop
Node Loop mengeksekusi tugas berulang yang bergantung pada hasil iterasi sebelumnya hingga kondisi keluar terpenuhi atau jumlah maksimum loop tercapai. Di dalam node Loop, konfigurasikan alur anak. Sistem akan berulang kali mengeksekusi logika alur anak menggunakan variabel loop hingga kondisi penghentian terpicu atau batas eksekusi tercapai.
Antarmuka konfigurasi

Input
Variabel loop: Meneruskan data antar iterasi dan menyediakannya untuk node hilir setelah loop berakhir. Konfigurasikan beberapa variabel loop dengan memasukkan nilai secara manual atau memilih output dari node hulu.
Kondisi keluar loop: Konfigurasikan berdasarkan variabel loop. Loop berhenti ketika variabel tertentu memenuhi kondisi yang telah ditetapkan.
Jumlah maksimum loop: Membatasi jumlah maksimum eksekusi loop untuk mencegah loop tak terbatas.
Output
Node ini menghasilkan nilai terkini dari variabel loop setelah eksekusi loop selesai. Hanya node Variable Assigner yang dapat memperbarui variabel loop. Tanpa node tersebut, output node loop tetap tidak berubah dari input awal setelah N iterasi.
Node terkait
Node terkait loop hanya dapat digunakan di dalam loop. Klik ikon "+" di sisi kanan node dalam loop untuk menambahkan node terkait berikut:
Break Loop
Menghentikan loop. Node hulu biasanya merupakan node pengembangan aplikasi alur kerja.
Variable Assigner
Menetapkan hasil output dari node anak dalam loop ke variabel loop.

Direct Output
Node Direct Output mengonfigurasi konten pesan balasan secara langsung melalui templat output. Node ini mendukung referensi output node hulu menggunakan sintaksis {{node.variable}} dan mendukung keluaran streaming.
Contoh penggunaan: Tambahkan node Direct Output sebelum node LLM untuk mengirim pesan langsung kepada pengguna.


Batch Processing
Node Batch Processing menangani data daftar melalui pemrosesan batch paralel. Setiap elemen daftar menjalani proses alur anak yang identik, sehingga meningkatkan efisiensi secara signifikan melalui eksekusi paralel.
Input
Daftar input: Daftar data yang akan diproses. Setiap elemen menjadi item pemrosesan independen yang didistribusikan ke alur anak dalam prosesor batch.
Bidang output: Pilih variabel output dari node dalam alur anak batch sebagai hasil output tugas batch.
Jumlah paralel: Opsional. Mengontrol jumlah tugas simultan. Default-nya adalah 4. Rentang valid adalah 1–10.
Output
result: Daftar semua hasil output tugas batch, mengagregasi nilai output aktual dari "bidang output" yang ditentukan dalam konfigurasi node batch.
Node terkait
Batch Start
Node Batch Start adalah titik masuk untuk pemrosesan batch dan menyediakan variabel output berikut untuk node selanjutnya dalam alur anak:
item: Item data saat ini yang sedang diproses, sesuai dengan satu elemen dalam daftar input
index: Posisi indeks item data saat ini dalam daftar input (dimulai dari 0)
Batch Break
Node Batch Break menghentikan pemrosesan item data saat ini ketika kondisi tertentu terpenuhi.
Catatan: Batch Break hanya menghentikan iterasi saat ini dan tidak memengaruhi pemrosesan item data lainnya.
Contoh penggunaan
Penguraian dan pemrosesan dokumen batch secara cerdas
Skenario: Perusahaan perlu mengurai beberapa file dokumen sekaligus. Dokumen yang berhasil diurai diproses oleh LLM, sedangkan dokumen yang gagal secara otomatis dilewati.
Konfigurasi node Batch Processing:
Parameter | Nilai | Deskripsi |
Input list |
| Referensi daftar file output dari node hulu |
Output field |
| Pilih bidang output dari node LLM sebagai output node batch |
Parallel count |
| Memproses 4 file secara simultan |

Contoh output:
{
"result": [
"This document is the XX product user manual, covering product features and installation steps...",
"This contract is for software service procurement with a 12-month term...",
null,
"Standard VAT invoice, issued on January 15, 2026..."
]
}Catatan: Nilai null menunjukkan penguraian file gagal, yang dilewati melalui node Batch Break.
Catatan
Jaminan urutan hasil: Daftar output mempertahankan urutan yang sama dengan daftar input.
Fleksibilitas alur anak: Item data yang berbeda dapat memicu jalur eksekusi yang berbeda dalam alur anak.
Penanganan null: Jika alur eksekusi berhenti lebih awal atau tidak menghasilkan output, posisi yang sesuai dalam output batch akan bernilai null.
End
Node End menandai penyelesaian suatu alur aplikasi (Workflow) dan menentukan parameter output alur tersebut. Satu alur aplikasi hanya dapat berisi satu node End.
Konfigurasi parameter output
Output alur aplikasi dapat mereferensi output dari node hulu apa pun sebagai hasil eksekusi akhir. Misalnya, dalam konfigurasi berikut, output jawaban alur menggunakan output node LLM, sedangkan search_results menggunakan output node pencarian.
CatatanAlur aplikasi percakapan mencakup bidang output Chat default untuk respons dialog.
Alur aplikasi harus mencakup node Start dan End. Hanya node yang terhubung di antara keduanya yang dieksekusi; node yang tidak terhubung diabaikan.
AI Capabilities
Large Language Model (LLM)
Node LLM adalah komponen inti suatu alur aplikasi, dirancang khusus untuk memanggil model bahasa besar guna menangani tugas bahasa alami. Node ini memberikan respons teks cerdas untuk menjawab pertanyaan atau menangani input bahasa alami yang kompleks. Node ini juga menawarkan opsi konfigurasi fleksibel untuk menyesuaikan parameter model, mengelola riwayat percakapan, dan menyesuaikan prompt demi mengoptimalkan kualitas dan akurasi respons.
Skenario
Generasi teks: Menghasilkan konten berdasarkan topik atau kata kunci.
Klasifikasi konten: Secara otomatis mengklasifikasikan jenis email (permintaan/keluhan/spam).
Transformasi teks: Menerjemahkan teks ke bahasa tertentu.
RAG: Menjawab pertanyaan pengguna menggunakan pengetahuan yang diambil.
Antarmuka konfigurasi

Input
Pengaturan model: Gunakan model yang diterapkan dari ModelGallery, penerapan kustom, atau penyedia seperti Dashscope dan DeepSeek. Untuk hasil terbaik, pilih model berkapasitas tinggi. Konfigurasikan parameter berikut:
Temperature: Nilai antara 0 dan 1 yang mengontrol keacakan output. Nilai lebih rendah (mendekati 0) menghasilkan output yang lebih deterministik; nilai lebih tinggi (mendekati 1) menghasilkan output yang lebih beragam.
Top P: Mengontrol keragaman dengan memilih token yang probabilitas kumulatifnya tidak melebihi ambang batas P.
Top K: Membatasi pemilihan token hanya pada K token paling mungkin, mengurangi keacakan dan memfokuskan output pada kosakata berprobabilitas tinggi.
Presence penalty: Mengurangi pengulangan entitas atau informasi dengan memberikan penalti pada konten yang sudah dihasilkan. Nilai lebih tinggi mengurangi kemungkinan pengulangan.
Frequency penalty: Mengurangi probabilitas generasi kata atau frasa yang sering muncul. Nilai lebih tinggi meningkatkan keragaman leksikal.
Max tokens: Menetapkan panjang maksimum output per generasi. Nilai lebih rendah dapat memotong teks; nilai lebih tinggi memungkinkan output lebih panjang.
Seed: Saat ditentukan, model mencoba sampling deterministik sehingga seed dan parameter identik menghasilkan output identik. Determinisme penuh tidak dijamin. Pantau potensi perubahan menggunakan parameter respons system_fingerprint (akses proxy mungkin diperlukan).
Stop sequences: Hingga 4 urutan yang menghentikan generasi teks saat terdeteksi. Teks yang dikembalikan tidak menyertakan urutan penghenti itu sendiri.
Riwayat percakapan: Saat diaktifkan, secara otomatis memasukkan riwayat chat alur aplikasi ke dalam prompt.
Variabel input: Variabel dapat mereferensi output dari semua node sebelumnya.
Prompt: Sesuaikan konten prompt SYSTEM/USER/ASSISTANT menggunakan templat Jinja2. Referensikan variabel input dengan kurung kurawal ganda
{{}}.
Output
Node ini secara default menghasilkan data String tetapi dapat dikonfigurasi untuk output JSON. Untuk JSON, definisikan variabel output kustom; LLM menghasilkan output berdasarkan nama variabel.
Contoh penggunaan
Intent Recognition
Terutama digunakan untuk kontrol alur, node ini menganalisis maksud input pengguna menggunakan model bahasa besar dan mengeksekusi cabang yang sesuai berdasarkan hasil pengenalan. Node ini mendukung konfigurasi multi-maksud serta riwayat percakapan.
Antarmuka konfigurasi

Input
Input pengguna: Pilih input pengguna untuk pengenalan maksud.
Konfigurasi multi-maksud: Definisikan maksud sesuai kebutuhan, pastikan deskripsinya jelas tanpa tumpang tindih semantik. Maksud terakhir secara default adalah "Other", yang merepresentasikan input yang tidak cocok, dan tidak dapat diedit.
Pengaturan model: Konfigurasikan LLM untuk pengenalan maksud. Untuk hasil terbaik, pilih model berkapasitas tinggi seperti qwen-max.
Riwayat percakapan: Saat diaktifkan, secara otomatis memasukkan riwayat chat ke dalam prompt selama inferensi LLM.
Prompt tambahan: Menambahkan konten ke prompt sistem untuk meningkatkan akurasi pengenalan maksud.
Output
Tidak ada output.
Contoh penggunaan
Saat Anda menghubungkan node Pengenalan Maksud ke node-node downstream, setiap cabang maksud memiliki port koneksi yang sesuai. Ketika suatu maksud dikenali, cabang tersebut akan mengeksekusi node-node downstream yang terhubung dengannya dan melewatkan cabang-cabang lainnya. Anda dapat menggunakan komponen pengembangan aplikasi alur kerja untuk mengumpulkan hasil eksekusi (output node downstream) dari semua cabang.

Agent
Node Agent di LangStudio memungkinkan pengembangan agen otonom. Node ini mendukung strategi penalaran dan kemampuan penggunaan tool, mengintegrasikan pendekatan penalaran berbeda (saat ini FunctionCalling dan ReAct) untuk secara dinamis memanggil tool Model Context Protocol (MCP) selama waktu proses, sehingga memungkinkan penalaran otonom multi-langkah.
Konfigurasi parameter node
Strategi Agent: Pilih strategi penalaran yang diinginkan—FunctionCalling atau ReAct.
FunctionCalling
Menerapkan definisi
tool callterstruktur (format JSON) dari OpenAI Chat API untuk interaksi LLM-tool eksternal. LLM secara otomatis mengidentifikasi maksud, memilih tool yang sesuai, dan mengekstrak parameter dari instruksi bahasa alami. Sistem kemudian memanggil tool tersebut dan mengembalikan hasilnya untuk kelanjutan penalaran.Skenario dan keunggulan:
Panggilan terstruktur dengan kompatibilitas kuat: Menggunakan data terstruktur untuk menentukan nama dan parameter tool, kompatibel dengan semua model yang mendukung pemanggilan tool.
Kinerja stabil: Ideal untuk tugas langkah demi langkah yang jelas (misalnya, pengecekan cuaca, pencarian informasi, kueri data).
ReAct
ReAct (Reasoning + Acting) adalah pendekatan penalaran yang lebih fleksibel yang memandu model untuk secara eksplisit menghasilkan langkah Thought dan Action melalui prompt, menciptakan proses penalaran dan pemanggilan tool multi-langkah berulang. Pendekatan ini biasanya menggunakan bahasa alami untuk menggambarkan panggilan (misalnya, "Action=xxx, Action Input=xxx") untuk memicu tool backend, lalu menyuntikkan hasilnya kembali ke rantai penalaran. Pendekatan ini tidak memerlukan
tool_callsdi tingkat API, sehingga cocok untuk model dan framework tujuan umum.Skenario dan keunggulan:
Penalaran lebih kuat: Memandu pemikiran langkah demi langkah dengan logika penalaran eksplisit di setiap langkah.
Strategi transparan: Ideal untuk debugging dan aplikasi Agent yang dapat diinterpretasikan.
Tidak memerlukan Tool Calling: Berfungsi dengan model yang tidak mendukung output terstruktur.
Pengaturan model: FunctionCalling memerlukan dukungan Tool Calling asli. ReAct tidak memiliki batasan tersebut; pilih model dengan kemampuan penalaran tinggi.
Riwayat percakapan: Saat diaktifkan, menyediakan memori kontekstual dengan secara otomatis memasukkan riwayat percakapan ke dalam prompt. Hal ini memungkinkan Agent memahami dan mereferensi dialog sebelumnya, sehingga memberikan respons yang koheren dan sadar konteks. Misalnya, dengan riwayat percakapan diaktifkan, Agent memahami kata ganti seperti "dia," "di sini," atau "hari itu" tanpa memerlukan pengguna mengulang konteks lengkap.
Perencanaan tugas: Saat diaktifkan, secara otomatis menambahkan tool bawaan write_todos ke tool yang tersedia bagi Agent. Untuk kueri pengguna yang kompleks, Agent secara otomatis memanggil write_todos untuk merencanakan dan mengeksekusi tugas langkah demi langkah, serta memperbarui rencana secara dinamis dengan informasi baru.
Tool MCP: Konfigurasikan melalui koneksi MCP atau formulir kustom. Mendukung Server MCP yang menggunakan SSE dan Streamable HTTP. Layanan MCP biasanya menyediakan beberapa tool.
Gunakan opsi cakupan tool untuk mengontrol tool mana yang terlihat oleh LLM.
Lindungi tool operasi sensitif (misalnya, modifikasi data pengguna) dengan fitur "approval tool". Saat alur kerja mencapai tool tersebut, node secara otomatis berhenti dan menunggu konfirmasi manual sebelum melanjutkan.
Tool: Konfigurasikan tool non-MCP yang tersedia bagi Agent, termasuk tool kustom (OpenAPI) dan Python. Untuk tool yang dipilih, edit deskripsi, parameter output (misalnya, sembunyikan parameter dari model dan atur nilai default), serta aktifkan "approval required" demi keamanan.
Konfigurasi prompt
Variabel input: Untuk mereferensi variabel node hulu dalam prompt, definisikan variabel input yang sesuai di sini dan atur nilainya ke referensi hulu. Lalu gunakan sintaksis Jinja2
{{}}dalam prompt untuk meneruskan data dinamis.Prompt sistem: Menentukan tujuan tugas dan konteks Agent untuk memandu respons yang diharapkan. Opsional untuk ReAct.
Prompt pengguna: Menerima input atau kueri pengguna sebagai dasar respons model.
Jumlah loop: Tetapkan jumlah maksimum eksekusi loop Agent (1–99). Agent berulang hingga salah satu kondisi berikut terpenuhi:
LLM menentukan bahwa informasi yang cukup telah dikumpulkan untuk respons lengkap
Jumlah maksimum loop tercapai
Tetapkan jumlah loop yang wajar untuk menyeimbangkan kelengkapan respons dan efisiensi eksekusi. Jika perencanaan tugas diaktifkan, gunakan jumlah maksimum default untuk memastikan eksekusi rencana lengkap.
Variabel output:
intermediate_steps: Proses penalaran perantara Agent (String)
text: Output akhir Agent (String)
Lihat jejak/log
Setelah mengklik Run di pojok kanan atas halaman alur aplikasi, lihat jejak atau log di bawah hasil eksekusi dalam kotak dialog.
Lihat output perantara: Klik ikon status eksekusi di pojok kanan atas node Agent, lalu temukan intermediate_steps di bawah Output dalam panel tarik untuk melihat proses penalaran Agent.
Lihat jejak: Periksa informasi Trace eksekusi saat ini, termasuk input model, output (termasuk pemanggilan tool dan parameter), penggunaan token, dan waktu eksekusi.
Lihat log: Saat alur aplikasi gagal, lihat log operasional untuk informasi eksekusi detail.
Anda juga dapat mengklik More > Run History di pojok kanan atas, pilih catatan eksekusi tertentu, lalu lihat jejak atau log.
Document Parsing
Mendukung penguraian dokumen cerdas bawaan dan layanan penguraian dokumen AI Search Open Platform.
Parser bawaan: Mengekstrak konten terstruktur dan metadata dari berbagai format: PDF, DOCX, PPTX, TXT, HTML, CSV, XLSX, XLS, JSONL, dan MD.
AI Search Open Platform: Menyediakan penguraian terstruktur berakurasi tinggi untuk mengekstrak hierarki logis (judul, paragraf) dan konten (teks, tabel, gambar), sehingga meningkatkan kualitas ekstraksi. Memerlukan koneksi layanan model AI Search Open Platform yang telah dikonfigurasi sebelumnya. Format yang didukung: PDF, DOCX, PPTX, TXT, dan HTML.
Alat ini mendukung skenario RAG hilir, Ringkasan, dan T&J. Antarmuka konfigurasinya sebagai berikut:
File dokumen: Masukkan satu dokumen untuk penguraian cerdas. Pilih bidang bertipe File dari hulu.
Pengaturan model: (Opsional) Pilih koneksi layanan model AI Search Open Platform yang telah dikonfigurasi di LangStudio. Tanpa konfigurasi, sistem menggunakan parser dasar bawaan.
Output:
file_id: Pengenal unik untuk file input
content: Konten teks terstruktur dengan informasi hierarkis (judul, paragraf)
status: Status penguraian (SUCCESS atau FAIL)
metadata: Metadata dokumen dan detail penguraian
file_name: Nama file
file_type: Jenis file
source_uri: URI file asli
download_url: URL unduhan file
analysis_method: Metode penguraian yang digunakan. "opensearch" menunjukkan penguraian terstruktur AI Search Open Platform; "builtin" menunjukkan penguraian dasar bawaan.
Contoh penggunaan downstream: Rujuk hasil penguraian dokumen di node downstream sesuai kebutuhan. Untuk menggunakan konten yang telah diurai di node LLM, sertakan konten tersebut dalam prompt pengguna seperti yang ditunjukkan di bawah ini:

Speech Recognition
Mengonversi file audio atau video ke teks menggunakan tool speech recognition. Mendukung berbagai format audio dan bahasa.
Input
Pengaturan model: Konfigurasikan model speech recognition. Saat ini mendukung layanan speech recognition Alibaba Cloud Model Studio. Gunakan
paraformer-v2untuk kualitas pengenalan optimal dan dukungan multibahasa.File audio/video: Pilih file yang akan dikenali. Untuk format yang didukung, lihat Input/output tipe file.
Bahasa pengenalan: Tentukan bahasa untuk pengenalan audio. Mendukung Bahasa Tiongkok, Inggris, Jepang, Kanton, Korea, Jerman, Prancis, Rusia, atau deteksi otomatis. Catatan: Hanya model
paraformer-v2yang mendukung fitur ini; model lain secara default menggunakan deteksi otomatis.
Output
file_id: Pengenal unik untuk file input.
status: Status pengenalan (
SUCCESSatauFAIL).content: Konten teks hasil transkripsi.
segments: Daftar segmen kalimat dengan timestamp dan detail teks.
metadata: Metadata file termasuk hal berikut:
file_name: Nama file
file_type: Jenis file
source_uri: URI file
download_url: URL unduhan
Data Retrieval
Knowledge Base Retrieval (Index Lookup)
Mengambil konten teks dari Basis pengetahuan yang relevan dengan pertanyaan pengguna untuk digunakan sebagai konteks pada node-node LLM di hilir.
Antarmuka konfigurasi

Input
Nama indeks basis pengetahuan: Pilih basis pengetahuan terdaftar di LangStudio. Untuk informasi selengkapnya, lihat Manajemen basis pengetahuan.
Kata kunci pencarian: Referensikan parameter output node hulu (format String) untuk pengambilan basis pengetahuan.
Top K: Jumlah hasil paling relevan yang dikembalikan dari indeks basis pengetahuan.
Output
Variabel output pengambilan result (tipe: List[Dict]) dengan kunci berikut:
Kunci
Deskripsi
content
Konten chunk dokumen yang diambil—fragmen teks dari basis pengetahuan yang relevan dengan kueri.
score
Skor kemiripan antara chunk dokumen dan kueri. Skor lebih tinggi menunjukkan relevansi lebih kuat.
Contoh output yang menampilkan catatan dengan skor tertinggi top_k:
[ { "score": 0.8057173490524292, "content": "Due to pandemic-related uncertainties, XX Bank proactively\nincreased provisions for loan losses and non-credit asset impairments\nbased on economic trends and conditions in the Chinese mainland,\naccelerated disposal of non-performing assets, and enhanced provisioning coverage.\nIn 2020, it achieved a net profit of CNY 28.928 billion, up 2.6% year-on-year,\nwith gradually improving profitability.\n(CNY million) 2020 2019 Change (%)\nOperating Results and Profitability\nOperating Revenue 153,542 137,958 11.3\nPre-Impairment Operating Profit 107,327 95,816 12.0\nNet Profit 28,928 28,195 2.6\nCost-to-Income Ratio(1)(%) 29.11 29.61 Down 0.50\npercentage points\nAverage Total Assets Return (%) 0.69 0.77 Down 0.08\npercentage points\nWeighted Average ROE (%) 9.58 11.30 Down 1.72\npercentage points\nNet Interest Margin(2)(%) 2.53 2.62 Down 0.09\npercentage points\nNote: (1) Cost-to-Income Ratio = Operating and Administrative Expenses / Operating Revenue.", "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 billion, up 5.2% year-on-year.\n2020\n(CNY million) Life &\nHealth Insurance Property\nInsurance Banking Trust Securities Other Asset\nManagement Technology Other\nBusinesses & Consolidation Eliminations Group Total\nNet Profit Attributable to Shareholders 95,018 16,083 16,766 2,476 2,959 5,737 7,936 (3,876) 143,099\nMinority Interest 1,054 76 12,162 3 143 974 1,567 281 16,260\nNet Profit (A) 96,072 16,159 28,928 2,479 3,102 6,711 9,503 (3,595) 159,359\nAdjustments:\n Short-term Investment Fluctuations(1)(B) 10,308 – – – – – – – 10,308\n Discount Rate Impact (C) (7,902) – – – – – – – (7,902)\n One-time Items Excluded by Management\n from Core Operations (D) – – – – – – 1,282 – 1,282\nCore Profit (E=A-B-C-D) 93,666 16,159 28,928 2,479 3,102 6,711 8,221 (3,595) 155,670\nCore Profit Attributable to Shareholders 92,672 16,", "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" } } ]Contoh penggunaan
Alibaba Cloud IQS - Web Search (IQS-GenericSearch)
Menjalankan pencarian standar menggunakan Alibaba Cloud Information Query Service dengan filter rentang waktu.
Antarmuka konfigurasi

Input
Kata kunci pencarian: Kata kunci untuk pencarian web. Kata kunci yang lebih dari 100 karakter akan dipotong menjadi 100 karakter. Terjadi error jika kata kunci kurang dari 2 karakter.
Rentang waktu: Pilih rentang waktu data—NoLimit, OneDay, OneWeek, OneMonth, atau OneYear.
Koneksi IQS: Jika role berotorisasi tidak dikonfigurasi saat startup, Anda dapat memilih koneksi IQS yang telah dikonfigurasi sebelumnya. Untuk informasi cara menyiapkan koneksi IQS, lihat Konfigurasi koneksi layanan - Koneksi kustom. Atur kunci ke
api_keydan masukkan nilai yang sesuai, yang dapat Anda peroleh dari Information Query Service - Manajemen Kredensial. Untuk detail lebih lanjut tentang koneksi IQS, lihat Bangun alur aplikasi pencarian web DeepSeek menggunakan LangStudio & Alibaba Cloud Information Query Service.
Output
output: Variabel output pencarian web (tipe: List[Dict]) dengan kunci berikut:
Key
Deskripsi
title
Judul hasil pencarian—biasanya judul halaman web atau dokumen yang merangkum konten.
link
URL hasil pencarian untuk mengakses konten lengkap.
summary
Ringkasan hasil pencarian—gambaran singkat informasi inti.
content
Konten hasil pencarian lengkap dengan informasi detail.
markdown_text
Konten pencarian dalam format Markdown (mungkin kosong).
score
Skor hasil pencarian yang menunjukkan relevansi atau kualitas. Skor lebih tinggi berarti kesesuaian lebih baik dengan maksud pencarian.
publish_time
Waktu publikasi konten (timestamp atau tanggal) yang menunjukkan ketepatan waktu informasi.
host_logo
Logo atau ikon situs sumber (URL gambar) untuk mengidentifikasi asal informasi.
hostname
Hostname atau domain situs sumber yang menunjukkan asal informasi.
site_label
Label atau kategori situs sumber yang menunjukkan latar belakang tematik.
scene_items: Informasi tambahan yang meningkatkan hasil pencarian. Parameter ini biasanya kosong dalam pencarian umum. Saat pencarian umum tidak cukup untuk skenario tertentu, seperti waktu, cuaca, atau kalender, sistem mengembalikan scene_items untuk memberikan informasi yang tepat dan sadar konteks.
Contoh penggunaan
SerpAPI - Web Search (SerpAPI-GenericSearch)
Menjalankan pencarian web menggunakan SerpApi dengan dukungan berbagai mesin pencari (Bing, Google, Baidu, Yahoo, dan kustom), lokasi yang dapat dikonfigurasi, dan jumlah hasil.
Antarmuka konfigurasi

Input
Koneksi SerpApi: Pilih koneksi SerpApi yang telah dikonfigurasi di LangStudio. Untuk informasi selengkapnya, lihat Buat koneksi SerpApi.
Kata kunci pencarian: Referensikan parameter output node hulu (format String).
Mesin pencari: Mendukung bing, google, baidu, yahoo, dan input kustom.
Lokasi: Lokasi pencarian. Untuk hasil terbaik, tentukan kota (misalnya,
Shanghai, China).Jumlah hasil: Jumlah hasil pencarian yang dikembalikan.
Output
Variabel output pencarian web output (tipe: List[Dict]) dengan kunci berikut:
Kunci
Deskripsi
title
Judul hasil pencarian—biasanya judul halaman web atau dokumen yang merangkum konten.
link
URL hasil pencarian untuk mengakses konten lengkap.
summary
Ringkasan hasil pencarian—gambaran singkat informasi inti.
Contoh penggunaan
Solusi chatbot LangStudio & DeepSeek dengan RAG dan pencarian web
HTTP Request
Tool HTTP Request menyederhanakan integrasi API eksternal dengan dukungan berbagai metode HTTP, jenis autentikasi, dan format badan permintaan.
Input
Metode permintaan: Metode HTTP—GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS.
URL: Alamat target permintaan.
Header permintaan: Header HTTP kustom. Masukkan satu header per baris sebagai pasangan kunci-nilai.
Parameter permintaan: Parameter string kueri. Masukkan satu parameter per baris sebagai pasangan kunci-nilai.
Autentikasi: Dinonaktifkan secara default. Saat diaktifkan, pilih autentikasi standar (Bearer atau Basic).
Bearer: Gunakan autentikasi Bearer Token. Jangan sertakan awalan
Bearer.Basic: Gunakan autentikasi dasar dengan username dan password. Sistem secara otomatis mengonversi kredensial ke Base64.
Untuk autentikasi kustom, konfigurasikan header permintaan secara manual.
Badan permintaan: Mendukung format berikut.
none: Tidak ada badan permintaan
JSON: Kirim data JSON
form-data: Kirim multipart/form-data (mendukung unggah file)
x-www-form-urlencoded: Mengirim data formulir yang dikodekan dalam format URL
raw-text: Kirim teks biasa
binary: Kirim data file biner (mendukung unggah file)
Verifikasi SSL: Diaktifkan secara default. Pilih apakah akan memverifikasi sertifikat SSL server. Tetap aktifkan di lingkungan produksi.
Timeout: Timeout permintaan (1–600 detik). Default-nya adalah 10 detik.
Konfigurasi ulang coba: Dinonaktifkan secara default. Pilih apakah akan mencoba ulang saat gagal.
Jumlah maksimum ulang coba: Jumlah percobaan ulang (0–10)
Interval ulang coba: Waktu antar percobaan ulang (100–10.000 milidetik)
Output
body: Konten teks respons. String kosong saat respons berupa file.
status_code: Kode status respons HTTP (misalnya, 200, 404, 500).
headers: Header respons HTTP sebagai pasangan kunci-nilai.
file: Objek file (saat respons berupa file).
Data Processing
Python Development
Alur aplikasi mendukung node kode Python kustom untuk logika pemrosesan data kompleks, dengan dukungan input dan output streaming. Antarmuka konfigurasi:

Cukup tulis kode Python—sistem secara otomatis mengurai input dan output. Perhatikan hal-hal berikut:
Fungsi entri harus didekorasi dengan
@toolagar dimuat sebagai node.CatatanUntuk mengaktifkan input streaming untuk node Python, konfigurasikan
@tool(properties={"streaming_pass_through": True}). Jika tidak, input dari LLM atau Agent akan berupa teks output lengkap, bukan stream.Tipe input/output yang didukung: int, float, bool, str, dict, TypedDict, dataclass (hanya output), list, File.
Parameter fungsi entri diurai secara dinamis sebagai input node. Output ditempatkan dalam kamus output untuk direferensikan oleh node lain.
PentingPenguraian input/output otomatis bergantung pada waktu proses. Tanpa waktu proses yang berjalan, Anda tidak dapat mengonfigurasi informasi input/output node.
Untuk menginstal dependensi, klik Install Dependencies di area kanvas kanan atas dan masukkan nama paket. File requirements.txt disimpan bersama alur aplikasi dan diinstal di lingkungan selama startup waktu proses atau penerapan layanan.


Contoh penggunaan 1: Masukkan kode berikut untuk memetakan input dan output:
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 penggunaan 2: Input/output streaming. Gunakan node Python untuk memangkas stream teks proses berpikir dari output LLM/Agent, mengabaikan bagian <think>\n\n</think> untuk menghasilkan stream hasil akhir yang bersih. Contoh kode:
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 telah 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 berpikir 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 berpikir
Template transformation
Tool Template Transformer memungkinkan pemformatan teks dan transformasi data fleksibel menggunakan sintaksis templat Jinja2.
Input
Mode transformasi mendukung mode Jinja2 dan mode referensi node.
Mode Jinja2: Gunakan sintaksis Jinja2 lengkap untuk pemformatan output kustom. Cocok untuk output terstruktur kompleks, logika kondisional, dan rendering loop.
Variabel templat: Definisikan variabel yang digunakan dalam templat.
PentingJangan gunakan nama metode bawaan Python (misalnya,
items,keys,values). Gunakan nama deskriptif sepertiitem_listatauproduct_list.Konten templat: String templat Jinja2 yang mendukung substitusi variabel
{{ variable }}, loop{% for %}, kondisional{% if %}, dan filter{{ value | filter }}.PentingSemua variabel yang direferensikan dalam templat harus didefinisikan dalam daftar variabel; jika tidak, terjadi error.
Mode referensi node: Langsung mereferensikan output node hulu, secara otomatis digabungkan menjadi string. Cocok untuk kombinasi teks sederhana.
Konten templat: Pilih bidang output node hulu. Sistem secara otomatis menggabungkannya berurutan.
Output
output: Hasil teks templat yang dirender. Catatan: Baik konten templat input maupun output dibatasi hingga 100.000 karakter; konten yang melebihi akan dipotong.
Contoh penggunaan
Contoh 1: Pembuatan email konfirmasi pesanan
Konfigurasi variabel:
Nama variabel | Nilai variabel |
customer_name |
|
order_id |
|
products |
|
total |
|
Konten 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!Hasil 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:
Nama variabel | Nilai variabel |
chunks |
|
Konten templat:
{% for chunk in chunks %}
### Relevance: {{ "%.2f" % chunk.score }}
#### {{ chunk.title }}
{{ chunk.content }}
---
{% endfor %}Hasil output:
### Relevance: 0.95
#### Product Introduction
This is a detailed product description...
---List Operations
Tool List Operations melakukan penyaringan dan pengurutan fleksibel pada data daftar untuk pemrosesan dan pemilihan detail halus.
Input
Input daftar: Data daftar yang akan diproses. Mendukung semua subtipe (string, angka, Boolean, objek file, kamus).
Operasi: Rantai operasi berurutan. Mendukung tipe operasi filter dan sort.
Operasi filter: Metode penyaringan bervariasi berdasarkan tipe daftar. Catatan: Semua filter bersifat case-sensitive.
Kunci filter
Deskripsi
Cakupan
Index
Filter berdasarkan posisi elemen dalam daftar
Semua tipe daftar
Element value
Filter berdasarkan nilai elemen
Semua tipe daftar
Custom attribute
Filter berdasarkan atribut kustom
Hanya daftar bertipe kamus
File attribute
Filter berdasarkan atribut file
Hanya daftar bertipe file
Operasi sort: Metode pengurutan bervariasi berdasarkan tipe daftar.
Sort Key
Deskripsi
Cakupan yang Berlaku
Element value
Sort berdasarkan nilai elemen
Hanya daftar string, angka, atau Boolean
Custom attribute
Sort berdasarkan atribut kustom
Hanya daftar bertipe kamus
File attribute
Sort berdasarkan atribut file
Hanya daftar bertipe file (atribut sama seperti operasi filter)
Output
result: Hasil daftar yang telah diproses.
first_item: Elemen pertama dari daftar hasil (None jika kosong).
last_item: Elemen terakhir dari daftar hasil (None jika kosong).
Contoh penggunaan
Contoh 1: Klasifikasi file - Ambil tiga file gambar teratas dengan menyaring dan mengurutkan berdasarkan ukuran
Skenario: Pengguna mengunggah daftar file campuran. Saring file gambar, urutkan berdasarkan panjang nama file, dan simpan 3 teratas untuk pengenalan gambar.
Konfigurasi operasi:
Operation 1 - Filter (by file category):
Filter key: item.category
Filter operator: equals
Filter value: image
Operation 2 - Sort (by filename length):
Sort key: item.file_name
Sort direction: asc
Operation 3 - Filter (keep top 3):
Filter key: index
Filter operator: less than
Filter value: 3
Contoh 2: Analisis data—saring pengguna dengan skor tinggi dan ambil Top 5
Skenario: Dari daftar penilaian pengguna, saring pengguna dengan skor ≥80, 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 (high-scoring users):
Filter key: item.score
Filter operator: greater than or equal
Filter value: 80
Operation 2 - Sort (by score descending):
Sort key: item.score
Sort direction: desc
Operation 3 - Filter (top 5):
Filter key: index
Filter operator: less than
Filter value: 5
Hasil 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:
Jika input tool mereferensikan variabel output
listkustom dari node Python, definisikan tipe elemen eksplisit di node Python (misalnya,list[str]) untuk memastikan pencocokan operator yang akurat di node List Operations.