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.1-flash-lite-preview- Modele rapide leger et a faible cout (par defaut)gemini-3-flash-preview- Modele Flash standardgemini-3.1-pro/gemini-3-pro- Modeles 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
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.
Configuration du fournisseur LLM
Le fournisseur LLM se configure via l’administration (Administration > Systeme > General) ou dans system.properties.
Configuration minimale (fess_config.properties)
Configuration minimale (system.properties)
Configuration recommandee (environnement de production, fess_config.properties)
Configuration recommandee (environnement de production, system.properties)
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.1-flash-lite-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 |
rag.llm.gemini.retry.max | Nombre maximum de tentatives HTTP (lors d’erreurs 429 et 5xx) | 10 |
rag.llm.gemini.retry.base.delay.ms | Delai de base du backoff exponentiel (millisecondes) | 2000 |
Methode d’authentification
Depuis Fess 15.6.1, la cle API est transmise via l’en-tete HTTP x-goog-api-key (methode recommandee par Google). Elle n’est plus ajoutee a l’URL en tant que parametre de requete ?key=... comme auparavant ; la cle API ne reste donc plus dans les journaux d’acces.
Comportement de reessai
Les requetes vers l’API Gemini sont automatiquement reessayees pour les codes de statut HTTP suivants :
429Resource Exhausted (depassement de quota / limitation de debit)500Internal Server Error503Service Unavailable504Gateway Timeout
Lors d’un reessai, Fess attend selon un backoff exponentiel (valeur de base rag.llm.gemini.retry.base.delay.ms millisecondes, jusqu’a rag.llm.gemini.retry.max tentatives, avec une gigue de +/-20%). Pour les requetes en streaming, seule la connexion initiale est sujette aux reessais ; les erreurs survenant apres le debut de la reception du corps de la reponse sont propagees immediatement.
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
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 | 512 | 0 |
evaluation | 0.1 | 256 | 0 |
unclear | 0.7 | 512 | 0 |
noresults | 0.7 | 512 | 0 |
docnotfound | 0.7 | 512 | 0 |
direct | 0.7 | 2048 | 0 |
faq | 0.7 | 2048 | 0 |
answer | 0.5 | 8192 | 0 |
summary | 0.3 | 4096 | 0 |
queryregeneration | 0.3 | 256 | 0 |
Exemple de configuration
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 se configure par type de prompt dans fess_config.properties. Fess convertit automatiquement la valeur entiere (nombre de tokens) de rag.llm.gemini.{promptType}.thinking.budget vers le champ d’API approprie en fonction de la generation du modele resolue lors de la requete.
Mappage selon la generation du modele
Gemini 2.x (par exemple
gemini-2.5-flash) : la valeur entiere configuree est envoyee telle quelle en tant quethinkingConfig.thinkingBudget. Specifier0desactive completement la reflexion.Gemini 3.x (par exemple
gemini-3.1-flash-lite-preview) : la valeur entiere est regroupee en compartiments et envoyee comme valeur enumeree dethinkingConfig.thinkingLevel(MINIMAL/LOW/MEDIUM/HIGH).
Le mappage des compartiments pour Gemini 3.x est le suivant :
| Valeur du budget | thinkingLevel | Remarques |
|---|---|---|
<=0 | MINIMAL ou LOW | MINIMAL pour les modeles Flash / Flash-Lite ; LOW pour les modeles de la famille Pro qui ne prennent pas en charge MINIMAL (gemini-3-pro / gemini-3.1-pro) |
<=4096 | MEDIUM | |
>4096 | HIGH |
Note
Gemini 3.x consomme toujours un certain nombre de tokens de reflexion, quel que soit le compartiment (meme avec thinkingLevel=MINIMAL, plusieurs centaines de tokens peuvent etre consommes). Pour cette raison, lors de l’utilisation d’un modele Gemini 3.x, Fess ajoute automatiquement une marge supplementaire (1024 tokens) a la valeur maxOutputTokens par defaut, afin d’eviter une troncature de la reponse due a finishReason=MAX_TOKENS. Avec Gemini 2.x, thinkingBudget=0 desactive la reflexion elle-meme, donc aucune marge supplementaire n’est ajoutee.
Note
Configurer un budget de reflexion eleve peut allonger le temps de reponse. Configurez une valeur appropriee selon l’usage.
Configuration via options JVM
Pour des raisons de securite, il est recommande de configurer la cle API via l’environnement d’execution (options JVM) plutot que via des fichiers versionnes.
Environnement Docker
Le depot officiel docker-fess fournit un overlay Gemini (compose-gemini.yaml). Etapes minimales :
Contenu de compose-gemini.yaml (reference pour un setup equivalent) :
Notes :
FESS_PLUGINS=fess-llm-gemini:15.6.0fait querun.shdu conteneur telecharge et installe automatiquement le plugin dansapp/WEB-INF/plugin/-Dfess.config.rag.chat.enabled=trueactive le mode IA-Dfess.config.rag.llm.gemini.api.key=...definit la cle API,-Dfess.config.rag.llm.gemini.model=...choisit le modele-Dfess.system.rag.llm.name=geminin’agit que comme valeur par defaut initiale avant qu’une valeur ne soit persistee dans OpenSearch. Apres demarrage, le parametre peut aussi etre modifie sous Administration > Systeme > General (section RAG)
Si l’acces Internet passe par un proxy, specifiez la configuration http.proxy.* de Fess via FESS_JAVA_OPTS (voir la section « Utilisation via un proxy HTTP » ci-dessous).
Environnement systemd
Ajouter a FESS_JAVA_OPTS dans /etc/sysconfig/fess (ou /etc/default/fess) :
Utilisation via un proxy HTTP
Depuis Fess 15.6.1, le client Gemini partage la configuration de proxy HTTP commune a Fess. Specifiez les proprietes suivantes dans fess_config.properties.
| Propriete | Description | Valeur par defaut |
|---|---|---|
http.proxy.host | Nom d’hote du proxy (chaine vide pour ne pas utiliser de proxy) | "" |
http.proxy.port | Numero de port du proxy | 8080 |
http.proxy.username | Nom d’utilisateur pour l’authentification du proxy (facultatif ; lorsqu’il est renseigne, l’authentification Basic est activee) | "" |
http.proxy.password | Mot de passe pour l’authentification du proxy | "" |
Dans un environnement Docker, specifiez ce qui suit dans FESS_JAVA_OPTS:
Note
Cette configuration s’applique egalement a tous les acces HTTP de Fess, notamment ceux du crawler. Les proprietes systeme Java traditionnelles (-Dhttps.proxyHost, etc.) ne sont pas prises en compte par le client Gemini.
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.1-flash-lite-preview | Rapide | Elevee | Leger et a faible cout (par defaut, prend en charge thinkingLevel=MINIMAL) |
gemini-3-flash-preview | Rapide | Maximale | Usage general (prend en charge thinkingLevel=MINIMAL) |
gemini-3.1-pro / gemini-3-pro | Moyenne | Maximale | Raisonnement complexe (MINIMAL non pris en charge ; au minimum LOW) |
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.
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.
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: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
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 :
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