TypeScript SDKReference

Safety Types

TypeScript types for content safety filtering, templates, and evaluation.

See Safety for usage. See Responsible AI.

SafetyCategory

enum SafetyCategory {
  HATE                    = 'hate',
  VIOLENCE                = 'violence',
  SEXUAL                  = 'sexual',
  SELF_HARM               = 'self_harm',
  PROTECTED_MATERIAL_CODE = 'protected_material_code',
  PROTECTED_MATERIAL_TEXT = 'protected_material_text',
  JAILBREAK               = 'jailbreak',
}

SafetySeverity

enum SafetySeverity {
  SAFE   = 'safe',
  LOW    = 'low',
  MEDIUM = 'medium',
  HIGH   = 'high',
}

SafetyTemplates

const SafetyTemplates = {
  STRICT:    { id: 'strict',    severityThreshold: 'safe',   failOnFiltered: true  },
  MODERATE:  { id: 'moderate',  severityThreshold: 'medium', failOnFiltered: true  },
  MINIMAL:   { id: 'minimal',   severityThreshold: 'high',   failOnFiltered: false },
  CHILD_SAFE:{ id: 'child_safe',severityThreshold: 'low',
               categories: ['sexual','violence','self_harm','hate'] },
  ENTERPRISE:{ id: 'enterprise',severityThreshold: 'safe',   categories: 'all'    },
}

SafetyTemplateConfig

interface SafetyTemplateConfig {
  id: string;
  categories: (SafetyCategory | string)[] | 'all';
  severityThreshold: SafetySeverity | string;
  failOnFiltered: boolean;
}
FieldTypeDescription
idstringTemplate ID.
categories(SafetyCategory | string)[] | 'all'Categories to check.
severityThresholdSafetySeverity | stringMinimum severity to trigger.
failOnFilteredbooleanWhether to fail when content is filtered.

SafetyCheckResult

interface SafetyCheckResult {
  passed: boolean;
  failedCategories: (SafetyCategory | string)[];
  template: string;
  contentFilterResults: ChoiceContentFilterResults;
}

Returned by checkText() and checkImage().

FieldTypeDescription
passedbooleanWhether content passed.
failedCategories(SafetyCategory | string)[]Categories that triggered.
templatestringTemplate ID used.
contentFilterResultsChoiceContentFilterResultsRaw per-category results.

SafetyEvaluationResult

interface SafetyEvaluationResult {
  passed: boolean;
  failedCategories: (SafetyCategory | string)[];
  template: string;
  details: SafetyFilterSummary;
}

Returned by evaluate().

FieldTypeDescription
passedbooleanWhether content passed.
failedCategories(SafetyCategory | string)[]Failed categories.
templatestringTemplate ID used.
detailsSafetyFilterSummaryFull breakdown.

SafetyFilterSummary

interface SafetyFilterSummary {
  anyFiltered: boolean;
  choice: Partial<Record<SafetyCategory, SafetyFilterCategoryResult>>;
  prompt: Array<{
    prompt_index: number;
    results: Partial<Record<SafetyCategory, SafetyFilterCategoryResult>>;
  }>;
}

Returned by parseFilterResults().

FieldTypeDescription
anyFilteredbooleanWhether any category was filtered.
choicePartial<Record<SafetyCategory, ...>>Per-category results for the completion.
promptArray<{ prompt_index, results }>Per-category results per prompt.

SafetyCheckableInput

type SafetyCheckableInput =
  | ChatCompletion
  | ChatCompletionChoice
  | ChatCompletionChoice[]
  | { choices: ChatCompletionChoice[]; prompt_filter_results?: PromptFilterResult[] }
  | { content_filter_results?: ChoiceContentFilterResults }

EvaluateInput

type EvaluateInput =
  | SafetyCheckableInput
  | string
  | { url: string }
  | EvaluateInput[]

ContentFilterResult

interface ContentFilterResult {
  filtered: boolean;
  severity: SafetySeverity | string;
}
FieldTypeDescription
filteredbooleanWhether content was filtered.
severitySafetySeverity | stringSeverity level.

How is this guide?

On this page