Overview
The validate built-in member provides four evaluator strategies for content quality validation: rule-based, AI judge, NLP analysis, and embedding similarity.
- member: validate-content
type: Function
config:
builtin: validate
strategy: judge
content: ${input.text}
criteria: "Is this content appropriate and high-quality?"
Configuration
Validation strategy: rule, judge, nlp, embedding
Validation criteria (for judge/nlp)
AI model (for judge strategy)
Strategies
Rule-Based
Pattern matching and rules:
- member: rule-validation
type: Function
config:
builtin: validate
strategy: rule
content: ${input.text}
rules:
- type: length
min: 100
max: 5000
- type: contains
value: "important keyword"
- type: regex
pattern: "\\b[A-Z][a-z]+\\b"
AI Judge
LLM-based evaluation:
- member: ai-judge
type: Function
config:
builtin: validate
strategy: judge
model: '@cf/meta/llama-3.1-8b-instruct'
content: ${scrape.output.content}
criteria: |
Does this content meet these criteria:
- Factually accurate
- Well-structured
- No spam or promotional content
threshold: 0.8
NLP Analysis
Natural language processing:
- member: nlp-validate
type: Function
config:
builtin: validate
strategy: nlp
content: ${input.text}
criteria:
sentiment: positive
readability: medium
toxicity: low
Embedding Similarity
Compare to reference content:
- member: similarity-check
type: Function
config:
builtin: validate
strategy: embedding
content: ${input.text}
reference: ${input.referenceText}
threshold: 0.85
Output
interface ValidateOutput {
passed: boolean;
score: number;
details: {
strategy: string;
reasons?: string[];
suggestions?: string[];
};
}
Examples
Content Moderation
flow:
- member: moderate
type: Function
config:
builtin: validate
strategy: judge
content: ${input.userComment}
criteria: "Is this appropriate and non-toxic?"
threshold: 0.9
- member: publish-if-valid
condition: ${moderate.output.passed}
type: Data
config:
type: d1
operation: execute
query: INSERT INTO comments (text) VALUES (?)
Quality Check
- member: quality-gate
type: Function
config:
builtin: validate
strategy: nlp
content: ${scrape.output.content}
criteria:
readability: high
completeness: high
coherence: high
retry:
maxAttempts: 3
condition: ${!output.passed}