Refactoring AI candidate analysis: UI improvements, data normalization, provider management and real-time score clamping
This commit is contained in:
@@ -23,8 +23,8 @@ class AIAnalysisController extends Controller
|
||||
}
|
||||
|
||||
// Restriction: Une analyse tous les 7 jours maximum par candidat
|
||||
// Le super_admin peut outrepasser cette restriction via le paramètre 'force'
|
||||
$shouldCheckRestriction = !($request->force && auth()->user()->isSuperAdmin());
|
||||
// Tout admin peut outrepasser cette restriction s'il utilise l'option 'force'
|
||||
$shouldCheckRestriction = !$request->input('force', false);
|
||||
|
||||
if ($shouldCheckRestriction && $candidate->ai_analysis && isset($candidate->ai_analysis['analyzed_at'])) {
|
||||
$lastAnalysis = Carbon::parse($candidate->ai_analysis['analyzed_at']);
|
||||
|
||||
@@ -149,7 +149,7 @@ class AttemptController extends Controller
|
||||
$this->authorizeAdmin();
|
||||
|
||||
$request->validate([
|
||||
'score' => 'required|numeric|min:0'
|
||||
'score' => 'required|numeric|min:0|max:' . $answer->question->points
|
||||
]);
|
||||
|
||||
$answer->update(['score' => $request->score]);
|
||||
|
||||
@@ -103,12 +103,12 @@ class CandidateController extends Controller
|
||||
'jobPositions' => \App\Models\JobPosition::all(),
|
||||
'ai_config' => [
|
||||
'default' => env('AI_DEFAULT_PROVIDER', 'ollama'),
|
||||
'enabled_providers' => array_filter([
|
||||
'ollama' => true, // Toujours dispo car local ou simulé
|
||||
'providers' => array_keys(array_filter([
|
||||
'ollama' => true,
|
||||
'openai' => !empty(env('OPENAI_API_KEY')),
|
||||
'anthropic' => !empty(env('ANTHROPIC_API_KEY')),
|
||||
'gemini' => !empty(env('GEMINI_API_KEY')),
|
||||
], function($v) { return $v; })
|
||||
])),
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user