全部产品
Search
文档中心

云监控:llm-call(LLM调用)

更新时间:Apr 30, 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"}