Agent SkillsOpenDCAI/DataFlow-WebUI › text2qa-sample-evaluator

text2qa-sample-evaluator

GitHub

Text2QASampleEvaluator 算子,利用 LLM 从问题质量、答案对齐、可验证性及下游价值四个维度评估 QA 对,生成评分与反馈。

skills/canonical/core_text/eval/text2qa-sample-evaluator/SKILL.md OpenDCAI/DataFlow-WebUI

Trigger Scenarios

需要自动化评估生成的 QA 对质量 在数据流水线中集成多维度 QA 评估环节

Install

npx skills add OpenDCAI/DataFlow-WebUI --skill text2qa-sample-evaluator -g -y
More Options

Non-standard path

npx skills add https://github.com/OpenDCAI/DataFlow-WebUI/tree/main/skills/canonical/core_text/eval/text2qa-sample-evaluator -g -y

Use without installing

npx skills use OpenDCAI/DataFlow-WebUI@text2qa-sample-evaluator

指定 Agent (Claude Code)

npx skills add OpenDCAI/DataFlow-WebUI --skill text2qa-sample-evaluator -a claude-code -g -y

安装 repo 全部 skill

npx skills add OpenDCAI/DataFlow-WebUI --all -g -y

预览 repo 内 skill

npx skills add OpenDCAI/DataFlow-WebUI --list

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

  1. Read DataFrame from storage.
  2. Validate input_question_key and input_answer_key columns exist.
  3. Validate all 8 output columns do NOT exist (raises ValueError if they do).
  4. For each row, call LLM 4 times (once per dimension):
    • Question quality evaluation
    • Answer alignment evaluation
    • Answer verifiability evaluation
    • Downstream value evaluation
  5. Each LLM call returns a grade (numeric score) and feedback (text).
  6. Write results to 8 output columns.
  7. Return list of 8 output column names.

Text Constraints

  • input_question_key and input_answer_key must 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_key parameter (will raise TypeError)

Version History

  • 2e95d40 Current 2026-08-27 09:03

Same Skill Collection

skills/canonical/core_text/eval/bench-dataset-evaluator-question/SKILL.md
skills/canonical/core_text/eval/bench-dataset-evaluator/SKILL.md
skills/canonical/core_text/eval/prompted-evaluator/SKILL.md
skills/canonical/core_text/eval/unified-bench-dataset-evaluator/SKILL.md
skills/canonical/core_text/filter/general-filter/SKILL.md
skills/canonical/core_text/filter/kcentergreedy-filter/SKILL.md
skills/canonical/core_text/filter/prompted-filter/SKILL.md
skills/canonical/core_text/generate/bench-answer-generator/SKILL.md
skills/canonical/core_text/generate/chunked-prompted-generator/SKILL.md
skills/canonical/core_text/generate/embedding-generator/SKILL.md
skills/canonical/core_text/generate/format-str-prompted-generator/SKILL.md
skills/canonical/core_text/generate/prompted-generator/SKILL.md
skills/canonical/core_text/generate/retrieval-generator/SKILL.md
skills/canonical/core_text/generate/text2multihopqa-generator/SKILL.md
skills/canonical/core_text/refine/pandas-operator/SKILL.md
skills/canonical/core_text/refine/prompted-refiner/SKILL.md
skills/canonical/core_text/SKILL.md
skills/canonical/dataflow-dev/SKILL.md
skills/canonical/dataflow-operator-builder/SKILL.md
skills/canonical/generating-dataflow-pipeline/SKILL.md
skills/canonical/prompt-template-builder/SKILL.md
skills/canonical/core_text/generate/random-domain-knowledge-row-generator/SKILL.md

Metadata

Files
0
Version
2e95d40
Hash
40fc4dec
Indexed
2026-08-27 09:03

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-27 22:56
浙ICP备14020137号-1 $Map of visitor$