impmementation de gemini vertex & maistral ai

This commit is contained in:
jeremy bayse
2026-06-22 11:24:06 +02:00
parent b85c2ba5a1
commit 61c3c979c4
10 changed files with 849 additions and 24 deletions
@@ -61,13 +61,13 @@ const runOcr = async (att) => {
let response;
const isPdf = /\.pdf$/i.test(att.file_name);
if (selectedModel.value === 'ollama' && isPdf) {
if ((selectedModel.value === 'ollama' || selectedModel.value === 'mistral') && isPdf) {
const pdfResponse = await axios.get(route('attachments.show', att.id), { responseType: 'blob' });
const convertedFile = await convertPdfBlobToImageFile(pdfResponse.data, att.file_name);
const formData = new FormData();
formData.append('file', convertedFile);
formData.append('mode', 'ollama');
formData.append('mode', selectedModel.value);
response = await axios.post(route('attachments.ocr-upload'), formData, {
headers: { 'Content-Type': 'multipart/form-data' }
@@ -195,11 +195,12 @@ const submit = () => {
</div>
<div class="flex flex-wrap items-center gap-3">
<!-- Sélecteur de modèle -->
<div v-if="ollamaAvailable" class="flex items-center gap-2 bg-white/80 dark:bg-slate-900/80 border border-violet-100 dark:border-violet-900/40 rounded-lg px-2.5 py-1.5 shadow-sm">
<div class="flex items-center gap-2 bg-white/80 dark:bg-slate-900/80 border border-violet-100 dark:border-violet-900/40 rounded-lg px-2.5 py-1.5 shadow-sm">
<span class="text-xs text-slate-500 dark:text-slate-400">Modèle OCR :</span>
<select v-model="selectedModel" class="text-xs font-semibold border-0 p-0 pr-6 focus:ring-0 bg-transparent text-slate-700 dark:text-slate-300">
<option value="gemini">Gemini API</option>
<option value="ollama">GLM-OCR (Ollama)</option>
<option value="mistral">Mistral AI</option>
<option v-if="ollamaAvailable" value="ollama">GLM-OCR (Ollama)</option>
</select>
</div>
<button