全部产品
Search
文档中心

Platform For AI:Referensi Node Alur Kerja

更新时间:Feb 03, 2026

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

Catatan

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.

    image

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

    image

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

    image

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

    image

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

    image.png

  • 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

    image

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

    image

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.

image

image

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

Start / files

Referensi daftar file output dari node hulu

Output field

LLM / output

Pilih bidang output dari node LLM sebagai output node batch

Parallel count

4

Memproses 4 file secara simultan

image.png

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

  1. Jaminan urutan hasil: Daftar output mempertahankan urutan yang sama dengan daftar input.

  2. Fleksibilitas alur anak: Item data yang berbeda dapat memicu jalur eksekusi yang berbeda dalam alur anak.

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

    image

    Catatan
    • Alur 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

    image

  • 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

    image.png

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

    image.png

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 call terstruktur (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_calls di 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:image.png

  • 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:

image.png

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-v2 untuk 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-v2 yang mendukung fitur ini; model lain secara default menggunakan deteksi otomatis.

Output

  • file_id: Pengenal unik untuk file input.

  • status: Status pengenalan (SUCCESS atau FAIL).

  • 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

    image

  • 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

    image

  • Input

  • 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

    Bangun alur aplikasi pencarian web DeepSeek menggunakan LangStudio dan Alibaba Cloud Information Query Service

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

    image

  • 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:

image

Cukup tulis kode Python—sistem secara otomatis mengurai input dan output. Perhatikan hal-hal berikut:

  • Fungsi entri harus didekorasi dengan @tool agar dimuat sebagai node.

    Catatan

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

    Penting

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

    image

    image

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
    )

image

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.

      Penting

      Jangan gunakan nama metode bawaan Python (misalnya, items, keys, values). Gunakan nama deskriptif seperti item_list atau product_list.

    • Konten templat: String templat Jinja2 yang mendukung substitusi variabel {{ variable }}, loop {% for %}, kondisional {% if %}, dan filter {{ value | filter }}.

      Penting

      Semua 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

"Zhang San"

order_id

"ORD-2025-001"

products

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

total

9198

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

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

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

      Atribut yang tersedia:

      • file_id: ID file

      • file_name: Nama file

      • file_type: Jenis MIME file

      • source_uri: URI file

      • download_url: URL unduhan file

      • category: Kategori file—opsi: document, image, audio, video

      • extension: Ekstensi file (misalnya, .jpg)

    • 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

image.png

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

image.png

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