random-domain-knowledge-row-generator
GitHub基于LLM向DataFrame新增指定列的算子,用于批量生成领域知识数据。
Trigger Scenarios
Install
npx skills add OpenDCAI/DataFlow-WebUI --skill random-domain-knowledge-row-generator -g -y
SKILL.md
Frontmatter
{
"name": "random-domain-knowledge-row-generator",
"description": "Reference documentation for the RandomDomainKnowledgeRowGenerator operator.\n[Purpose] Calls an LLM repeatedly with the same domain-generation prompt and writes the generated results into one column of an existing DataFrame.\n[When to use] Use it when you already have a seed DataFrame with the exact target row count and want to fill one output column with domain-specific generated content. If you need to build prompts from existing row fields, use PromptedGenerator or FormatStrPromptedGenerator instead."
}
RandomDomainKnowledgeRowGenerator Operator Reference
RandomDomainKnowledgeRowGenerator does not read any input column values, but it still reads the input DataFrame itself. The operator builds generation_num prompts from domain_keys, calls llm_serving.generate_from_input(...), and assigns the returned list into dataframe[output_key].
See examples/good.md for a runnable example and examples/bad.md for common failure cases.
1. Import
from dataflow.operators.core_text import RandomDomainKnowledgeRowGenerator
from dataflow.prompts.general_text import SFTFromScratchGeneratorPrompt
2. Constructor
RandomDomainKnowledgeRowGenerator(
llm_serving=llm,
generation_num=200,
domain_keys="machine learning, deep learning, neural networks",
prompt_template=SFTFromScratchGeneratorPrompt(),
)
| Parameter | Required | Default | Description |
|---|---|---|---|
llm_serving |
Yes | None | LLM serving object. It must implement generate_from_input(user_inputs, ...). Examples in dataflow.serving include APILLMServing_request, LiteLLMServing, and LocalModelLLMServing_vllm. |
generation_num |
Yes | None | Number of prompts to build and number of outputs expected from the LLM call. |
domain_keys |
Yes | None | Domain description passed directly into SFTFromScratchGeneratorPrompt.build_prompt(domain_keys). The source annotation is str, so use a string such as "finance, accounting, tax". |
prompt_template |
No in signature, but effectively required | None |
Prompt object used for every generation call. In practice you must pass an instantiated SFTFromScratchGeneratorPrompt() or another prompt allowed by @prompt_restrict(...). Leaving it as None will fail before generation starts. |
Important Constructor Notes
prompt_template=Noneis not a safe fallback. The code callsself.prompt_template.build_prompt(self.domain_keys)directly, soNoneraisesAttributeError.- The default prompt class is
SFTFromScratchGeneratorPrompt, and itsbuild_prompt()method expectsdomain_keys: str. - The prompt asks the LLM to output a single-line JSON object containing fields such as
instruction,input,output, anddomain.
3. run() Signature
output_key = op.run(
storage=self.storage.step(),
output_key="generated_content",
)
| Parameter | Required | Default | Description |
|---|---|---|---|
storage |
Yes | None | DataFlowStorage / FileStorage step object. The operator reads a DataFrame from here and writes the updated DataFrame back. |
output_key |
No | "generated_content" |
Column name used to store generated results. |
Return Value
The method returns the string output_key.
4. Actual Runtime Logic
The source code behavior is:
- Read the current DataFrame from
storage.read("dataframe"). - Ignore all column values in that DataFrame.
- Build
generation_numprompts by repeatedly callingprompt_template.build_prompt(domain_keys). - Call
llm_serving.generate_from_input(llm_inputs). - Assign the returned list to
dataframe[output_key]. - Write the updated DataFrame back to storage and return
output_key.
5. Critical Constraints
len(dataframe)should matchgeneration_num. Otherwisedataframe[output_key] = generated_outputscan fail with a pandas length-mismatch error.- An empty seed file plus
generation_num > 0is not safe for the current implementation. The operator still writes back into the existing DataFrame instead of creating rows.
6. Usage Guidance
Use this operator when:
- You want one generated sample per existing seed row.
- The row contents are irrelevant, and you only need the row count plus an output column.
- You want the default
SFTFromScratchGeneratorPromptbehavior for domain-focused SFT sample generation.
Do not use this operator when:
- You need prompts built from existing columns.
- You expect the operator to create rows from an empty DataFrame.
- You need per-row domain variation based on different input fields.
Version History
- 2e95d40 Current 2026-08-27 09:04


