All Products
Search
Document Center

Platform For AI:Node Alur Kerja

Last Updated:Apr 02, 2026

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.

image

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

image

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.

image

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.

image

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.

image.png

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

image

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.

image

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.

imageimage

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: 4. Rentang: 1 hingga 10.

Output

Variabel

Deskripsi

result

Daftar hasil dalam urutan yang sama dengan daftar input. Jika suatu item keluar lebih awal atau tidak menghasilkan output, posisinya bernilai null.

Node terkait

  • Batch Start: Titik masuk untuk sub-alur batch. Menyediakan item (elemen data saat ini) dan index (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

Start / files

Daftar file dari node Start hulu

Output field

LLM / output

Bidang output node LLM

Parallel count

4

Memproses 4 file secara simultan

image.png

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.

image

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.

image

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: 0 hingga 1. Nilai mendekati 0 menghasilkan hasil yang konsisten dan deterministik; nilai mendekati 1 menghasilkan output yang bervariasi dan kreatif.

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 system_fingerprint untuk mendeteksi perubahan model. Anda mungkin memerlukan proxy untuk mengakses system_fingerprint.

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 SYSTEM, USER, atau ASSISTANT. Prompt menggunakan sintaks templat Jinja2; referensikan variabel input dengan {{ variable_name }}.

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.

image.png

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 qwen-max.

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.

image.png

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 tool_calls dari OpenAI Chat API. LLM mengidentifikasi maksud, memilih alat, dan mengekstraksi parameter dari bahasa alami.

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 write_todos secara otomatis ditambahkan ke set alat agent. Untuk tugas kompleks, agent membuat rencana langkah demi langkah dan memperbaruinya secara dinamis selama eksekusi. Jika perencanaan tugas diaktifkan, gunakan jumlah loop maksimum default.

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: 1 hingga 99. Agent berhenti saat memiliki cukup informasi untuk menghasilkan hasil lengkap, atau saat jumlah maksimum tercapai.

Konfigurasi prompt

Pengaturan

Deskripsi

Input variables

Untuk mereferensikan output node hulu dalam prompt, definisikan variabel input di sini dan gunakan {{ variable_name }} dalam isi prompt.

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

intermediate_steps

Jejak penalaran agent: setiap pemanggilan alat, hasil, dan langkah keputusan. Gunakan ini untuk memahami bagaimana agent mencapai kesimpulannya. Format string.

text

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_steps di 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.

image.png

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

file_id

Identifier unik file input.

content

Teks terstruktur yang diurai, termasuk elemen hierarkis seperti judul dan paragraf.

status

Hasil penguraian: SUCCESS atau FAIL.

metadata

Metadata dokumen dan detail penguraian. Bidang tercantum di bawah.

Bidang metadata:

Bidang

Deskripsi

file_name

Nama file.

file_type

Jenis file.

source_uri

URI file asli.

download_url

URL yang dapat diunduh.

analysis_method

Parser yang digunakan: opensearch (AI Search Open Platform) atau builtin.

Menggunakan output dalam node LLM hulu: Referensikan content dalam prompt user node LLM untuk meneruskan teks yang diurai ke model.

image.png

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 paraformer-v2.

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 paraformer-v2; model lain default ke deteksi otomatis.

Output

Variabel

Deskripsi

file_id

Identifier unik file input.

status

Hasil pengenalan: SUCCESS atau FAIL.

content

Teks transkripsi lengkap.

segments

Daftar segmen kalimat dengan timestamp dan detail teks.

metadata

Metadata file: file_name, file_type, source_uri, download_url.

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:

  1. Node Start mengumpulkan kueri pengguna.

  2. Node Knowledge Base Retrieval mencari basis pengetahuan dan mengembalikan potongan dokumen paling relevan.

  3. Node LLM menghasilkan respons menggunakan kueri dan konten yang diambil.

  4. Node End mengembalikan jawaban.

image

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

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

content

Potongan dokumen yang diambil. Fragmen teks dari basis pengetahuan yang relevan dengan kueri.

score

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

image

Input

Parameter

Deskripsi

Search keywords

Kueri untuk dicari. Panjang: 2 hingga 100 karakter. Kueri lebih dari 100 karakter dipotong; kueri kurang dari 2 karakter mengembalikan error.

Time range

Filter hasil berdasarkan waktu publikasi. Opsi: NoLimit, OneDay, OneWeek, OneMonth, OneYear.

IQS connection

Jika peran dengan izin yang diperlukan tidak dikonfigurasi saat startup, pilih koneksi IQS yang telah dikonfigurasi sebelumnya. Atur kunci ke api_key dan temukan nilainya di Layanan Kueri Informasi - Manajemen Kredensial. Untuk membuat koneksi IQS, lihat Konfigurasi koneksi layanan - Koneksi kustom.

Output

Variabel

Deskripsi

output

Hasil pencarian web sebagai List[Dict]. Lihat deskripsi bidang di bawah.

scene_items

Data tambahan untuk jenis kueri tertentu (waktu, cuaca, kalender). Kosong untuk pencarian umum.

Bidang dalam setiap kamus output:

Kunci

Deskripsi

title

Judul halaman.

link

URL halaman.

summary

Rangkuman singkat konten halaman.

content

Konten halaman lengkap.

markdown_text

Konten dalam format Markdown. Mungkin kosong.

score

Skor relevansi atau kualitas untuk hasil tersebut.

publish_time

Timestamp publikasi.

host_logo

URL logo situs sumber.

hostname

Nama domain situs sumber.

site_label

Label kategori situs sumber.

Topik terkait

Bangun Alur Aplikasi Pencarian Web DeepSeek menggunakan LangStudio dan Layanan Kueri Informasi Alibaba Cloud

SerpAPI - generic search

*Cari web melalui SerpAPI di berbagai mesin pencari.*

image

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

Search engine

Bing, Google, Baidu, Yahoo, atau mesin kustom.

Location

Konteks geografis untuk pencarian. Gunakan lokasi spesifik untuk hasil lebih baik (misalnya, Shanghai, China).

Result count

Jumlah hasil yang dikembalikan.

Output

Mengembalikan output, sebuah List[Dict] di mana setiap kamus berisi:

Kunci

Deskripsi

title

Judul halaman.

link

URL halaman.

summary

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

GET, POST, PUT, PATCH, DELETE, HEAD, atau OPTIONS.

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

none

Tidak ada badan permintaan.

JSON

Kirim data dalam format JSON.

form-data

Kirim data sebagai multipart/form-data. Mendukung unggahan file.

x-www-form-urlencoded

Kirim data formulir yang dikodekan URL.

raw-text

Kirim data teks biasa.

binary

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: 1 hingga 600. Default: 10.

Retry configuration

Nonaktif secara default. Saat diaktifkan, atur jumlah percobaan ulang maksimum (0 hingga 10) dan interval percobaan ulang (100 hingga 10.000 ms).

Output

Variabel

Deskripsi

body

Badan respons sebagai teks. String kosong saat respons berupa file.

status_code

Kode status HTTP, seperti 200, 404, atau 500.

headers

Header respons sebagai pasangan kunci-nilai.

file

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.

image

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 @tool untuk memuatnya sebagai node.

  • Tipe input/output yang didukung: int, float, bool, str, dict, TypedDict, dataclass (hanya output), list, dan File.

  • Sistem menempatkan Nilai kembali dalam kamus output agar dapat dirujuk oleh node turunan.

  • Penguraian input/output memerlukan runtime yang berjalan. Input dan output node tidak dapat dikonfigurasi tanpa runtime tersebut.

Penting

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.

imageimage

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
    )

image

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 seperti item_list sebagai 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

output

Teks templat yang dirender.

Contoh penggunaan

Contoh 1: Email konfirmasi pesanan

Konfigurasi variabel:

Variabel

Nilai

customer_name

"Zhang San"

order_id

"ORD-2025-001"

products

[{"name": "Laptop", "price": 8999}, {"name": "Wireless Mouse", "price": 199}]

total

9198

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

chunks

[{"title": "Product Introduction", "content": "This is a detailed product description...", "score": 0.95}]

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

Index

Filter berdasarkan posisi elemen dalam daftar.

Semua jenis daftar

Element value

Filter berdasarkan nilai elemen.

Semua jenis daftar

Custom attribute

Filter berdasarkan atribut kustom.

Hanya daftar bertipe kamus

File attribute

Filter berdasarkan atribut file: file_id, file_name, file_type, source_uri, download_url, category (document, image, audio, video), extension (misalnya, .jpg).

Hanya daftar bertipe file

Operasi sort

Sort key

Deskripsi

Cakupan

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 (sama seperti atribut filter).

Hanya daftar bertipe file

Output

Variabel

Deskripsi

result

Daftar yang telah diproses. Gunakan untuk pemrosesan hilir massal.

first_item

Elemen pertama dari daftar hasil. None jika kosong. Gunakan saat elemen "utama" atau "terbaru" tunggal diperlukan.

last_item

Elemen terakhir dari daftar hasil. None jika kosong. Gunakan saat elemen terbaru atau terakhir diperlukan.

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

image.png

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

image.png

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 list dari node Python, definisikan tipe elemen eksplisit di node Python (misalnya, list[str]) untuk memastikan pencocokan operator akurat.