Apercu
Google Gemini est un grand modele de langage (LLM) de pointe fourni par Google. Fess peut utiliser l’API Google AI (Generative Language API) pour realiser la fonctionnalite de mode de recherche IA avec les modeles Gemini.
L’utilisation de Gemini permet de generer des reponses de haute qualite en tirant parti de la derniere technologie IA de Google.
Caracteristiques principales
Prise en charge multimodale : Peut traiter les images en plus du texte
Long contexte : Fenetre de contexte longue permettant de traiter de grandes quantites de documents a la fois
Efficacite des couts : Le modele Flash est rapide et peu couteux
Integration Google : Integration facile avec les services Google Cloud
Modeles pris en charge
Principaux modeles disponibles avec Gemini :
gemini-3-flash-preview- Dernier modele rapide (recommande)gemini-3.1-pro-preview- Dernier modele de raisonnement avancegemini-2.5-flash- Version stable du modele rapidegemini-2.5-pro- Version stable du modele de raisonnement
Note
Pour les derniers modeles disponibles, consultez Google AI for Developers.
Prerequis
Avant d’utiliser Gemini, preparez les elements suivants.
Compte Google : Un compte Google est requis
Acces Google AI Studio : Accedez a https://aistudio.google.com/
Cle API : Generez une cle API dans Google AI Studio
Obtention de la cle API
Accedez a Google AI Studio
Cliquez sur « Get API key »
Selectionnez « Create API key »
Selectionnez ou creez un projet
Enregistrez la cle API generee en lieu sur
Avertissement
La cle API est une information confidentielle. Faites attention aux points suivants :
Ne pas la commiter dans un systeme de gestion de versions
Ne pas l’afficher dans les logs
La gerer via des variables d’environnement ou des fichiers de configuration securises
Installation du plugin
Dans Fess 15.6, la fonctionnalite d’integration Gemini est fournie sous forme de plugin fess-llm-gemini. Pour utiliser Gemini, l’installation du plugin est necessaire.
Telechargez fess-llm-gemini-15.6.0.jar
Placez-le dans le repertoire
app/WEB-INF/plugin/de FessRedemarrez Fess
# Exemple de placement du plugin
cp fess-llm-gemini-15.6.0.jar /path/to/fess/app/WEB-INF/plugin/
Note
La version du plugin doit correspondre a la version de Fess.
Configuration de base
Dans Fess 15.6, l’activation de la fonctionnalite de mode de recherche IA et les parametres specifiques a Gemini s’effectuent dans fess_config.properties, et la selection du fournisseur LLM (rag.llm.name) s’effectue via l’administration ou dans system.properties.
Configuration de fess_config.properties
Ajoutez la configuration d’activation de la fonctionnalite de mode de recherche IA dans app/WEB-INF/conf/fess_config.properties.
# Activer la fonctionnalite de mode de recherche IA
rag.chat.enabled=true
Configuration du fournisseur LLM
Le fournisseur LLM se configure via l’administration (Administration > Systeme > General) ou dans system.properties.
Configuration minimale (fess_config.properties)
# Activer la fonctionnalite de mode de recherche IA
rag.chat.enabled=true
# Cle API Gemini
rag.llm.gemini.api.key=AIzaSyxxxxxxxxxxxxxxxxxxxxxxxxx
# Modele a utiliser
rag.llm.gemini.model=gemini-3-flash-preview
Configuration minimale (system.properties)
# Definir le fournisseur LLM sur Gemini
rag.llm.name=gemini
Configuration recommandee (environnement de production, fess_config.properties)
# Activer la fonctionnalite de mode de recherche IA
rag.chat.enabled=true
# Cle API Gemini
rag.llm.gemini.api.key=AIzaSyxxxxxxxxxxxxxxxxxxxxxxxxx
# Configuration du modele (utiliser le modele rapide)
rag.llm.gemini.model=gemini-3-flash-preview
# Point de terminaison API (generalement pas besoin de modifier)
rag.llm.gemini.api.url=https://generativelanguage.googleapis.com/v1beta
# Configuration du timeout
rag.llm.gemini.timeout=60000
Configuration recommandee (environnement de production, system.properties)
# Definir le fournisseur LLM sur Gemini
rag.llm.name=gemini
Elements de configuration
Tous les elements de configuration disponibles pour le client Gemini. Tous se configurent dans fess_config.properties.
| Propriete | Description | Valeur par defaut |
|---|---|---|
rag.llm.gemini.api.key | Cle API Google AI (doit etre definie pour utiliser l’API Gemini) | "" |
rag.llm.gemini.model | Nom du modele a utiliser | gemini-3-flash-preview |
rag.llm.gemini.api.url | URL de base de l’API | https://generativelanguage.googleapis.com/v1beta |
rag.llm.gemini.timeout | Timeout de la requete (millisecondes) | 60000 |
rag.llm.gemini.availability.check.interval | Intervalle de verification de disponibilite (secondes) | 60 |
rag.llm.gemini.max.concurrent.requests | Nombre maximum de requetes simultanees | 5 |
rag.llm.gemini.chat.evaluation.max.relevant.docs | Nombre maximum de documents pertinents lors de l’evaluation | 3 |
rag.llm.gemini.chat.evaluation.description.max.chars | Nombre maximum de caracteres pour la description du document lors de l’evaluation | 500 |
rag.llm.gemini.concurrency.wait.timeout | Delai d’attente des requetes simultanees (millisecondes) | 30000 |
rag.llm.gemini.history.max.chars | Nombre maximum de caracteres de l’historique de chat | 10000 |
rag.llm.gemini.intent.history.max.messages | Nombre maximum de messages d’historique pour la determination d’intention | 10 |
rag.llm.gemini.intent.history.max.chars | Nombre maximum de caracteres d’historique pour la determination d’intention | 5000 |
rag.llm.gemini.history.assistant.max.chars | Nombre maximum de caracteres de l’historique de l’assistant | 1000 |
rag.llm.gemini.history.assistant.summary.max.chars | Nombre maximum de caracteres du resume de l’historique de l’assistant | 1000 |
Configuration par type de prompt
Dans Fess, les parametres du LLM peuvent etre configures finement par type de prompt. La configuration par type de prompt s’ecrit dans fess_config.properties.
Format de configuration
rag.llm.gemini.{promptType}.temperature
rag.llm.gemini.{promptType}.max.tokens
rag.llm.gemini.{promptType}.thinking.budget
rag.llm.gemini.{promptType}.context.max.chars
Types de prompt disponibles
| Type de prompt | Description |
|---|---|
intent | Prompt pour determiner l’intention de l’utilisateur |
evaluation | Prompt pour evaluer la pertinence des documents |
unclear | Prompt pour le cas ou la question est peu claire |
noresults | Prompt pour le cas ou il n’y a pas de resultats de recherche |
docnotfound | Prompt pour le cas ou le document n’est pas trouve |
answer | Prompt de generation de reponse |
summary | Prompt de generation de resume |
faq | Prompt de generation de FAQ |
direct | Prompt de reponse directe |
queryregeneration | Prompt de regeneration de requete |
Valeurs par defaut par type de prompt
Valeurs par defaut pour chaque type de prompt. Ces valeurs sont utilisees lorsqu’aucune configuration explicite n’est definie.
| Type de prompt | temperature | max.tokens | thinking.budget |
|---|---|---|---|
intent | 0.1 | 256 | 0 |
evaluation | 0.1 | 256 | 0 |
unclear | 0.7 | 512 | 0 |
noresults | 0.7 | 512 | 0 |
docnotfound | 0.7 | 256 | 0 |
direct | 0.7 | 2048 | 1024 |
faq | 0.7 | 2048 | 1024 |
answer | 0.5 | 4096 | 2048 |
summary | 0.3 | 4096 | 2048 |
queryregeneration | 0.3 | 256 | 0 |
Exemple de configuration
# Configuration de la temperature pour la generation de reponse
rag.llm.gemini.answer.temperature=0.7
# Nombre maximum de tokens pour la generation de resume
rag.llm.gemini.summary.max.tokens=2048
# Nombre maximum de caracteres du contexte pour la generation de reponse
rag.llm.gemini.answer.context.max.chars=16000
# Nombre maximum de caracteres du contexte pour la generation de resume
rag.llm.gemini.summary.context.max.chars=16000
# Nombre maximum de caracteres du contexte pour la generation de FAQ
rag.llm.gemini.faq.context.max.chars=10000
Note
La valeur par defaut de context.max.chars varie selon le type de prompt. answer et summary sont a 16000, faq est a 10000, et les autres types de prompt sont a 10000.
Prise en charge des modeles de reflexion
Gemini prend en charge les modeles de reflexion (Thinking Model). L’utilisation de modeles de reflexion permet au modele d’executer un processus de raisonnement interne avant de generer une reponse, produisant ainsi des reponses plus precises.
Le budget de reflexion peut etre configure par type de prompt dans fess_config.properties.
# Budget de reflexion pour la generation de reponse
rag.llm.gemini.answer.thinking.budget=1024
# Budget de reflexion pour la generation de resume
rag.llm.gemini.summary.thinking.budget=1024
Note
La configuration d’un budget de reflexion peut allonger le temps de reponse. Configurez une valeur appropriee selon l’usage.
Configuration via variables d’environnement
Pour des raisons de securite, il est recommande de configurer la cle API via des variables d’environnement.
Environnement Docker
docker run -e RAG_LLM_GEMINI_API_KEY=AIzaSy... codelibs/fess:15.6.0
docker-compose.yml
services:
fess:
image: codelibs/fess:15.6.0
environment:
- RAG_CHAT_ENABLED=true
- RAG_LLM_NAME=gemini
- RAG_LLM_GEMINI_API_KEY=${GEMINI_API_KEY}
- RAG_LLM_GEMINI_MODEL=gemini-3-flash-preview
Environnement systemd
/etc/systemd/system/fess.service.d/override.conf :
[Service]
Environment="RAG_LLM_GEMINI_API_KEY=AIzaSy..."
Utilisation via Vertex AI
Si vous utilisez Google Cloud Platform, vous pouvez egalement utiliser Gemini via Vertex AI. Pour Vertex AI, le point de terminaison API et la methode d’authentification different.
Note
Fess actuel utilise l’API Google AI (generativelanguage.googleapis.com). Si l’utilisation via Vertex AI est necessaire, une implementation personnalisee peut etre requise.
Guide de selection des modeles
Guide pour la selection du modele selon l’usage.
| Modele | Vitesse | Qualite | Usage |
|---|---|---|---|
gemini-3-flash-preview | Rapide | Maximale | Usage general (recommande) |
gemini-3.1-pro-preview | Moyenne | Maximale | Raisonnement complexe |
gemini-2.5-flash | Rapide | Elevee | Version stable, priorite au cout |
gemini-2.5-pro | Moyenne | Elevee | Version stable, long contexte |
Fenetre de contexte
Les modeles Gemini prennent en charge des fenetres de contexte tres longues :
Gemini 3 Flash / 2.5 Flash : Maximum 1 million de tokens
Gemini 3.1 Pro / 2.5 Pro : Maximum 1 million de tokens (3.1 Pro) / 2 millions de tokens (2.5 Pro)
Cette caracteristique permet d’inclure davantage de resultats de recherche dans le contexte.
# Inclure davantage de documents dans le contexte (a configurer dans fess_config.properties)
rag.llm.gemini.answer.context.max.chars=20000
Estimation des couts
L’API Google AI est facturee a l’usage (avec une offre gratuite).
| Modele | Entree (1M caracteres) | Sortie (1M caracteres) |
|---|---|---|
| Gemini 3 Flash Preview | $0.50 | $3.00 |
| Gemini 3.1 Pro Preview | $2.00 | $12.00 |
| Gemini 2.5 Flash | $0.075 | $0.30 |
| Gemini 2.5 Pro | $1.25 | $5.00 |
Note
Pour les derniers prix et informations sur l’offre gratuite, consultez Google AI Pricing.
Controle des requetes simultanees
Dans Fess, le nombre de requetes simultanees vers Gemini peut etre controle. Configurez la propriete suivante dans fess_config.properties.
# Nombre maximum de requetes simultanees (par defaut : 5)
rag.llm.gemini.max.concurrent.requests=5
Cette configuration permet d’eviter les requetes excessives vers l’API Google AI et de prevenir les erreurs de limitation de debit.
Limites de l’offre gratuite (a titre indicatif)
L’API Google AI dispose d’une offre gratuite avec les limites suivantes :
Requetes/minute : 15 RPM
Tokens/minute : 1 million TPM
Requetes/jour : 1,500 RPD
Lors de l’utilisation de l’offre gratuite, il est recommande de configurer rag.llm.gemini.max.concurrent.requests a une valeur basse.
Depannage
Erreur d’authentification
Symptome : Erreur liee a la cle API
Points a verifier :
Verifier si la cle API est correctement configuree
Verifier si la cle API est valide dans Google AI Studio
Verifier si la cle API a les permissions necessaires
Verifier si l’API est activee dans le projet
Erreur de limitation de debit
Symptome : Erreur « 429 Resource has been exhausted »
Solution :
Reduire le nombre de requetes simultanees dans
fess_config.properties:rag.llm.gemini.max.concurrent.requests=3
Attendre quelques minutes avant de reessayer
Demander une augmentation de quota si necessaire
Restriction de region
Symptome : Erreur indiquant que le service n’est pas disponible
Points a verifier :
L’API Google AI n’est disponible que dans certaines regions. Consultez la documentation Google pour les regions prises en charge.
Timeout
Symptome : La requete expire
Solution :
Augmenter le temps de timeout
rag.llm.gemini.timeout=120000
Envisager l’utilisation du modele Flash (plus rapide)
Configuration de debogage
Pour investiguer les problemes, ajustez le niveau de log de Fess pour afficher des logs detailles lies a Gemini.
app/WEB-INF/classes/log4j2.xml :
<Logger name="org.codelibs.fess.llm.gemini" level="DEBUG"/>
Notes de securite
Lors de l’utilisation de l’API Google AI, faites attention aux points de securite suivants.
Confidentialite des donnees : Le contenu des resultats de recherche est envoye aux serveurs Google
Gestion des cles API : La fuite de cles peut entrainer une utilisation non autorisee
Conformite : Si les donnees contiennent des informations confidentielles, verifiez les politiques de votre organisation
Conditions d’utilisation : Respectez les conditions d’utilisation et la Politique d’utilisation acceptable de Google
Informations de reference
Apercu de l’integration LLM - Apercu de l’integration LLM
Configuration du mode de recherche IA - Details de la fonctionnalite de mode de recherche IA