Agent Skills
› OpenDCAI/DataFlow-WebUI
› prompted-evaluator
prompted-evaluator
GitHub使用LLM对文本行进行1-5分质量评分,并将分数写入新列,保留所有原始数据。适用于需要评估文本质量但无需过滤行的场景,常与GeneralFilter配合实现两步打分和筛选流程。
Trigger Scenarios
需要对批量文本数据进行LLM质量评分
希望在不删除数据的情况下为每行添加评分字段
Install
npx skills add OpenDCAI/DataFlow-WebUI --skill prompted-evaluator -g -y
SKILL.md
Frontmatter
{
"name": "prompted-evaluator",
"description": "Reference documentation for the PromptedEvaluator operator.\nUse when: scoring text quality with LLM without filtering rows."
}
PromptedEvaluator Operator Reference
PromptedEvaluator uses an LLM to score each row of text (1-5) and writes the score into a new column without deleting any rows.
1. Import
from dataflow.operators.core_text import PromptedEvaluator
2. Constructor
PromptedEvaluator(
llm_serving=llm_serving,
system_prompt="Please evaluate the quality of this text on a scale from 1 to 5.",
)
| Parameter | Required | Default | Description |
|---|---|---|---|
llm_serving |
Yes | None | LLM service object |
system_prompt |
No | "Please evaluate..." |
System prompt defining scoring criteria (1-5 scale) |
3. run() Signature
op.run(
storage=self.storage.step(),
input_key="raw_content",
output_key="eval",
)
# returns: output_key string
| Parameter | Required | Default | Description |
|---|---|---|---|
storage |
Yes | None | Storage step object |
input_key |
No | "raw_content" |
Column containing text to evaluate |
output_key |
No | "eval" |
Column to write LLM scores into |
4. Usage Example
from dataflow.operators.core_text import PromptedEvaluator
from dataflow.serving import APILLMServing_request
from dataflow.utils.storage import FileStorage
class MyPipeline:
def __init__(self):
self.storage = FileStorage(
first_entry_file_name="./data/input.jsonl",
cache_path="./cache",
file_name_prefix="step",
cache_type="jsonl"
)
self.llm_serving = APILLMServing_request(
api_url="https://api.openai.com/v1/chat/completions",
key_name_of_api_key="DF_API_KEY",
model_name="gpt-4o",
max_workers=10
)
self.evaluator = PromptedEvaluator(
llm_serving=self.llm_serving,
system_prompt="Evaluate text quality on a scale from 1 to 5."
)
def forward(self):
self.evaluator.run(
storage=self.storage.step(),
input_key="content",
output_key="quality_score"
)
if __name__ == "__main__":
pipeline = MyPipeline()
pipeline.forward()
5. Runtime Logic
- Read DataFrame from storage.
- Extract text from
input_keycolumn. - For each row, call LLM with
system_promptto score the text (1-5). - Parse LLM response to extract numeric score.
- Write scores to
output_keycolumn. - All rows are kept (no filtering).
- Return
output_keystring.
6. Key Differences from PromptedFilter
- PromptedEvaluator: Writes scores to
output_keycolumn, keeps all rows - PromptedFilter: Writes scores and deletes rows below threshold in one step
Use PromptedEvaluator + GeneralFilter for two-step scoring and filtering.
Version History
- 2e95d40 Current 2026-08-27 09:03


