Skip to main content

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

strategy
string
required
Validation strategy: rule, judge, nlp, embedding
content
string
required
Content to validate
criteria
string
Validation criteria (for judge/nlp)
threshold
number
default:"0.7"
Pass threshold (0-1)
model
string
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}