Agent Skills
› OpenDCAI/DataFlow-WebUI
› text2qa-sample-evaluator
text2qa-sample-evaluator
GitHubText2QASampleEvaluator 算子,利用 LLM 从问题质量、答案对齐、可验证性及下游价值四个维度评估 QA 对,生成评分与反馈。
Trigger Scenarios
需要自动化评估生成的 QA 对质量
在数据流水线中集成多维度 QA 评估环节
Install
npx skills add OpenDCAI/DataFlow-WebUI --skill text2qa-sample-evaluator -g -y
SKILL.md
Frontmatter
{
"name": "text2qa-sample-evaluator",
"description": "Reference documentation for the Text2QASampleEvaluator operator.\nUse when: evaluating QA pair quality across multiple dimensions."
}
Text2QASampleEvaluator Operator Reference
Text2QASampleEvaluator evaluates QA pairs across 4 dimensions, generating 8 output columns (grades + feedbacks for each dimension).
1. Import
from dataflow.operators.core_text import Text2QASampleEvaluator
2. Constructor
Text2QASampleEvaluator(
llm_serving=llm_serving,
)
| Parameter | Required | Default | Description |
|---|---|---|---|
llm_serving |
Yes | None | LLM service object |
3. run() Signature
op.run(
storage=self.storage.step(),
input_question_key="question",
input_answer_key="answer",
)
# returns: list of 8 output column names
| Parameter | Required | Default | Description |
|---|---|---|---|
storage |
Yes | None | Storage step object |
input_question_key |
No | "generated_question" |
Question column name |
input_answer_key |
No | "generated_answer" |
Answer column name |
4. Output Columns (8 columns)
| Column Name (Default) | Description |
|---|---|
question_quality_grades |
Question quality scores |
question_quality_feedbacks |
Question quality feedback |
answer_alignment_grades |
Answer alignment scores |
answer_alignment_feedbacks |
Answer alignment feedback |
answer_verifiability_grades |
Answer verifiability scores |
answer_verifiability_feedbacks |
Answer verifiability feedback |
downstream_value_grades |
Downstream value scores |
downstream_value_feedbacks |
Downstream value feedback |
Note: Column names use plural suffix (grades/feedbacks), not singular.
5. Usage Example
from dataflow.operators.core_text import Text2QASampleEvaluator
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/qa_pairs.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 = Text2QASampleEvaluator(
llm_serving=self.llm_serving
)
def forward(self):
self.evaluator.run(
storage=self.storage.step(),
input_question_key="question",
input_answer_key="answer"
)
if __name__ == "__main__":
pipeline = MyPipeline()
pipeline.forward()
6. Runtime Logic
- Read DataFrame from storage.
- Validate
input_question_keyandinput_answer_keycolumns exist. - Validate all 8 output columns do NOT exist (raises
ValueErrorif they do). - For each row, call LLM 4 times (once per dimension):
- Question quality evaluation
- Answer alignment evaluation
- Answer verifiability evaluation
- Downstream value evaluation
- Each LLM call returns a grade (numeric score) and feedback (text).
- Write results to 8 output columns.
- Return list of 8 output column names.
Text Constraints
input_question_keyandinput_answer_keymust contain non-empty text- Empty or NaN values may cause evaluation errors
- No automatic text length limits enforced by operator
- LLM context window limits apply (typically 4K-128K tokens depending on model)
7. Important Notes
- Calls LLM 4 times per row (once per dimension), high cost
- All 8 output columns must not exist before calling
- No
input_keyparameter (will raiseTypeError)
Version History
- 2e95d40 Current 2026-08-27 09:03


