🚀 Use AI to validate free-text form inputs beyond normal Laravel validation rules.
Powered by matrixbrains/laravel-ai.
composer require matrixbrains/laravel-ai-form-validator
This package depends on matrixbrains/laravel-ai, which acts as the AI wrapper.
Publish the config:
php artisan vendor:publish --provider="Matrixbrains\\LaravelAiFormValidator\\LaravelAiFormValidatorServiceProvider" --tag=config
Make sure you have configured Laravel AI correctly in your .env
file.
You need to define which AI driver to use and provide its API key.
Example .env
:
# Choose AI driver (openai, gemini, claude)
AI_DRIVER=openai
# OpenAI
OPENAI_API_KEY=your-openai-key
# Google Gemini
GEMINI_API_KEY=your-gemini-key
# Anthropic Claude
ANTHROPIC_API_KEY=your-claude-key
By default, AI_DRIVER=openai
will be used.
You can switch drivers at any time.
$request->validate([
'feedback' => 'required|ai_appropriate',
'company_name' => 'required|ai_custom:"Check if this looks like a real company name"',
]);
ai_appropriate
→ checks if input is polite/respectfulai_professional
→ checks if input is written professionallyai_topic:laravel
→ checks if input is about a topicai_custom:"instruction"
→ custom instruction for AI
$data = ['feedback' => 'This product is trash!!!'];
$rules = [
'feedback' => 'required|ai_appropriate',
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
dd($validator->errors());
}
✅ Output example:
[
"feedback" => [
"The feedback failed AI appropriate validation."
]
]
- Add multilingual validation prompts
- Support for streaming AI responses
- Configurable strictness levels (lenient, medium, strict)
- Fallback AI driver (e.g., use Gemini if OpenAI quota exceeded)
MIT © MatrixBrains