全部產品
Search
文件中心

Cloud Monitor:llm-call(LLM調用)

更新時間:May 01, 2026

llm-call節點調用大語言模型對每行資料進行智能處理,支援Prompt模板渲染、模型選擇和輸出格式解析,可實現AI評估、AI標註、AI合成、AI過濾等任務。

處理流程與適用情境

llm-call是Pipeline中所有LLM處理任務的基礎節點。該節點對資料集中的每行資料獨立執行LLM推理,僅增加新列,不刪除原有列,不改變行數。

處理流程:

  1. 提取:從輸入行中提取fields指定的欄位值。

  2. 渲染:將欄位值填入Prompt模板的{{列名}}預留位置,產生完整Prompt。

  3. 調用:調用指定LLM模型執行推理。

  4. 解析:按format指定的格式解析LLM輸出,將結果儲存為新列。

適用情境:

  • AI評估:對問答對進行多維度品質評分(JSON輸出)。

  • AI標註:對文本進行分類、實體標註(JSON輸出)。

  • AI合成:基於未經處理資料產生改寫、擴充、翻譯等合成資料。

  • AI過濾:通過LLM判斷資料品質,配合下遊where節點過濾低質資料。

  • 通用任務:摘要、分類、實體抽取等任意Prompt可定義的任務。

節點配置

基本配置結構:

{
  "id": "node_1",
  "type": "llm-call",
  "parameters": {
    "prompt": "<Prompt模板或模板引用>",
    "fields": "<參與渲染的列名列表>",
    "format": "raw | json",
    "model": "<模型標識>",
    "as": "<輸出資料行名>",
    "output": "<輸出資料行列表>"
  }
}

參數說明

參數

類型

必填

預設值

說明

prompt

String

Prompt模板,使用{{列名}}作為預留位置。支援內聯文本或@<path>引用登入的命名模板。

fields

String

參與渲染的輸入列名,多個列名以逗號分隔。每個列名必須在Prompt中有對應的{{列名}}預留位置。

format

String

raw

輸出解析格式。raw:原文輸出;json:確保輸出為合法JSON。

model

String

系統預設模型

LLM模型標識,例如qwen-turboqwen-plus

as

String

__llm_result

輸出資料行名,LLM推理結果儲存到該列中。

output

String

*

節點輸出資料行,多個列名以逗號分隔。*(預設)保留全部列含擴充列,指定時僅輸出資料行出的列。

Prompt編寫指南

  • 預留位置使用{{列名}}文法,列名與fields中聲明的一致。

  • 系統自動校正:Prompt中的所有{{列名}}必須在fields中聲明,反之亦然。

  • 需要JSON輸出時,在Prompt中明確要求輸出JSON格式,並設定format: "json"

  • 超長Prompt建議註冊為命名模板,通過@<path>引用,例如@eval/需求理解_v1.md

模板引用格式

prompt值

說明

@eval/需求理解_v1.md

引用登入的評估類命名模板。

@anno/template.md

引用登入的標註類命名模板。

請將以下內容翻譯...{{content}}

內聯Prompt文本,直接在參數中編寫。

輸入與輸出

輸入要求

  • 接收上遊節點輸出的任意列資料。

  • 輸入資料必須包含fields中聲明的所有列。

輸出資料行

列名

類型

來源

說明

output控制列

--

透傳/新增

*保留全部列(含擴充列),指定時僅輸出資料行出的列。

{as}

varchar或json

新增

format=raw時為varchar類型;format=json時為json類型(永遠合法JSON)。

format=json輸出保證

format設定為json時,系統保證輸出資料行的值始終為合法JSON:

LLM返回情況

{as}列值

成功且返回合法JSON

原樣返回,例如{"score":4,"reason":"..."}

成功但返回非法JSON

{"__raw":"LLM原始輸出..."}

調用失敗

{"__error":"timeout"}

format=raw輸出

LLM返回情況

{as}列值

成功

LLM輸出原文。

調用失敗

錯誤描述文本。

行數變化

M到N(M = N)。1:1變換,每行獨立調用LLM,不增減行數。

效果預覽

處理前(3條資料):

question

output

什麼是機器學習?

機器學習是人工智慧的一個重要分支領域

如何學習Python?

推薦從官方教程開始,然後做專案實踐

1+1=?

2

處理後(3條資料):配置prompt = "請評估..."fields = "question,output"format = "json"as = "eval"

question

output

eval

什麼是機器學習?

機器學習是人工智慧的...

{"score":4,"reason":"準確但不夠詳細"}

如何學習Python?

推薦從官方教程開始...

{"score":5,"reason":"建議具體且實用"}

1+1=?

2

{"score":3,"reason":"正確但過於簡短"}

說明

行數不變(3到3),每行新增eval列。format = "json"保證輸出永遠為合法JSON。可結合where節點按分數過濾。

使用樣本

樣本1:AI品質評估(JSON輸出)

{
  "id": "n7",
  "type": "llm-call",
  "parameters": {
    "prompt": "請評估以下問答對。問題:{{question}} 回答:{{output}} 輸出JSON:{\"score\":分數,\"reason\":\"理由\"} 只輸出純JSON。",
    "fields": "question,output",
    "format": "json",
    "as": "eval"
  }
}

評估結果存入eval列,適用於對問答對進行品質打分和原因分析。

樣本2:AI標註(命名模板 + 指定模型)

{
  "id": "n7",
  "type": "llm-call",
  "parameters": {
    "prompt": "@anno/template_v1.md",
    "fields": "output",
    "format": "json",
    "model": "qwen-plus",
    "as": "anno"
  }
}

引用預註冊的Prompt模板,使用qwen-plus模型,標註結果存入anno列。

樣本3:文本翻譯(raw模式)

{
  "id": "n7",
  "type": "llm-call",
  "parameters": {
    "prompt": "請將以下內容翻譯為英文:{{content}}",
    "fields": "content",
    "as": "translation"
  }
}

未指定format時預設為raw,翻譯結果存入translation列。

樣本4:完整管道(去重 + 採樣 + 評估 + 標註)

{
  "nodes": [
    { "id": "n1", "type": "project", "parameters": { "question": "a", "input": "b", "output": "c" } },
    { "id": "n2", "type": "dedup-exact", "parameters": { "field": "question" } },
    { "id": "n3", "type": "dedup-semantic", "parameters": { "field": "question", "threshold": "0.1" } },
    { "id": "n4", "type": "semantic-cluster", "parameters": { "field": "__dedup_emb", "n": 100 } },
    { "id": "n5", "type": "sample", "parameters": { "by": "__cluster_id", "n": 3 } },
    { "id": "n6", "type": "llm-call", "parameters": { "prompt": "@eval/prompt.md", "fields": "question,input,output", "format": "json", "as": "eval" } },
    { "id": "n7", "type": "llm-call", "parameters": { "prompt": "@anno/prompt.md", "fields": "output", "format": "json", "model": "qwen-plus", "as": "anno" } }
  ]
}

該管道依次執行精確去重、語義去重、聚類採樣,大幅降低資料量後再進行LLM調用(評估 + 標註),有效控制調用成本。

使用建議

Prompt與結果處理

  • Prompt設計:需要JSON輸出時,在Prompt末尾添加"只輸出純JSON"約束,並設定format = "json"

  • 模板複用:超長Prompt建議註冊為命名模板(如@eval/prompt.md),便於版本管理和多處複用。

  • 結果提取format = "json"保證輸出永遠合法JSON,可通過extend節點配合json_extract提取欄位,再配合where節點過濾。

  • 等冪性:同一輸入的LLM輸出不保證完全一致(受temperature等參數影響)。

邊界與異常

情境

行為

prompt缺失或為空白

校正失敗,Pipeline無法啟動。

fields缺失或為空白

校正失敗,Pipeline無法啟動。

fields中的列不存在於輸入資料

運行時報錯。

format不在raw/json範圍內

校正失敗,Pipeline無法啟動。

命名模板(@path)不存在

運行時報錯。

列值為NULL

LLM可能返回不完整結果。

LLM調用逾時

format=raw返回錯誤文本,format=json返回{"__error":"timeout"}