createValidationMiddleware
createValidationMiddleware(
config):Middleware
Defined in: packages/middleware/src/validation.ts:752
Create input validation middleware
Validates and sanitizes requests to prevent security issues and ensure data quality.
Parameters
Section titled “Parameters”config
Section titled “config”ValidationConfig = {}
Validation configuration
Returns
Section titled “Returns”Middleware function
Examples
Section titled “Examples”import { createValidationMiddleware } from 'ai.matey';
const validation = createValidationMiddleware({ maxMessages: 100, maxTotalTokens: 128000, preventPromptInjection: true,});
bridge.use(validation);const validation = createValidationMiddleware({ detectPII: true, piiAction: 'redact', // or 'block', 'warn', 'log' piiPatterns: { email: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g, ssn: /\b\d{3}-\d{2}-\d{4}\b/g, },});const validation = createValidationMiddleware({ moderationCallback: async (content) => { // Call external moderation API const result = await moderationAPI.check(content); return { flagged: result.flagged, categories: result.categories, scores: result.scores, }; }, blockFlaggedContent: true,});const validation = createValidationMiddleware({ customValidator: async (request) => { const errors: ValidationError[] = [];
// Custom business logic if (request.messages.some(m => m.content.includes('forbidden'))) { errors.push(new ValidationError( 'Forbidden content detected', 'messages', 'forbidden' )); }
return errors; },});const validation = createValidationMiddleware({ maxMessages: 100, maxTotalTokens: 128000, maxTokensPerMessage: 32000, maxMessageLength: 100000, blockEmptyMessages: true, detectPII: true, piiAction: 'redact', preventPromptInjection: true, sanitizeMessages: true, validateModel: true, allowedModels: ['gpt-4', 'claude-3-sonnet', 'gemini-pro'], validateTemperature: true, temperatureRange: [0, 2], throwOnError: true, logWarnings: true,});