diff --git a/app/Http/Controllers/CandidateController.php b/app/Http/Controllers/CandidateController.php index 5a4d8e9..e8a0117 100644 --- a/app/Http/Controllers/CandidateController.php +++ b/app/Http/Controllers/CandidateController.php @@ -81,7 +81,16 @@ class CandidateController extends Controller return \Inertia\Inertia::render('Admin/Candidates/Show', [ 'candidate' => $candidate, - 'jobPositions' => \App\Models\JobPosition::all() + '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é + 'openai' => !empty(env('OPENAI_API_KEY')), + 'anthropic' => !empty(env('ANTHROPIC_API_KEY')), + 'gemini' => !empty(env('GEMINI_API_KEY')), + ], function($v) { return $v; }) + ] ]); } diff --git a/resources/js/Pages/Admin/Candidates/Show.vue b/resources/js/Pages/Admin/Candidates/Show.vue index 11fa428..ed58ae3 100644 --- a/resources/js/Pages/Admin/Candidates/Show.vue +++ b/resources/js/Pages/Admin/Candidates/Show.vue @@ -12,7 +12,8 @@ import InputError from '@/Components/InputError.vue'; const props = defineProps({ candidate: Object, - jobPositions: Array + jobPositions: Array, + ai_config: Object }); const page = usePage(); @@ -123,7 +124,7 @@ const updateAnswerScore = (answerId, score) => { const aiAnalysis = ref(props.candidate.ai_analysis || null); const isAnalyzing = ref(false); -const selectedProvider = ref('ollama'); +const selectedProvider = ref(props.ai_config?.default || 'ollama'); const runAI = async () => { if (!props.candidate.job_position_id) { @@ -384,9 +385,9 @@ const runAI = async () => {
-
+