Übersicht
Google Gemini ist ein hochmodernes großes Sprachmodell (LLM) von Google. Fess kann die Google AI API (Generative Language API) verwenden, um die AI-Suchmodus-Funktion mit Gemini-Modellen zu realisieren.
Durch die Verwendung von Gemini wird eine hochwertige Antwortgenerierung mit Googles neuester KI-Technologie ermöglicht.
Hauptmerkmale
Multimodal-Unterstützung: Kann nicht nur Text, sondern auch Bilder verarbeiten
Langer Kontext: Langes Kontextfenster zur gleichzeitigen Verarbeitung großer Dokumentmengen
Kosteneffizienz: Flash-Modelle sind schnell und kostengünstig
Google-Integration: Einfache Integration mit Google Cloud-Diensten
Unterstützte Modelle
Hauptsächlich verfügbare Modelle bei Gemini:
gemini-3.1-flash-lite-preview- Schnelles Modell, leichtgewichtig und kostengünstig (Standard)gemini-3-flash-preview- Standard-Flash-Modellgemini-3.1-pro/gemini-3-pro- Modelle mit hoher Schlussfolgerungsfähigkeitgemini-2.5-flash- Stabile Version des schnellen Modellsgemini-2.5-pro- Stabile Version des Schlussfolgerungsmodells
Bemerkung
Aktuelle Informationen zu verfügbaren Modellen finden Sie unter Google AI for Developers.
Voraussetzungen
Bevor Sie Gemini verwenden, bereiten Sie Folgendes vor.
Google-Konto: Ein Google-Konto ist erforderlich
Google AI Studio-Zugang: Besuchen Sie https://aistudio.google.com/
API-Schlüssel: Generieren Sie einen API-Schlüssel in Google AI Studio
API-Schlüssel abrufen
Besuchen Sie Google AI Studio
Klicken Sie auf „Get API key“
Wählen Sie „Create API key“
Wählen Sie ein Projekt aus oder erstellen Sie ein neues
Speichern Sie den generierten API-Schlüssel sicher
Warnung
Der API-Schlüssel ist vertraulich. Beachten Sie folgende Punkte:
Nicht in Versionskontrollsysteme committen
Nicht in Logs ausgeben
Mit Umgebungsvariablen oder sicheren Konfigurationsdateien verwalten
Plugin-Installation
In Fess 15.6 wird die Gemini-Integrationsfunktion als Plugin fess-llm-gemini bereitgestellt. Zur Verwendung von Gemini ist die Installation des Plugins erforderlich.
Laden Sie fess-llm-gemini-15.6.0.jar herunter
Legen Sie die Datei im Verzeichnis
app/WEB-INF/plugin/von Fess abStarten Sie Fess neu
Bemerkung
Die Plugin-Version muss mit der Version von Fess übereinstimmen.
Grundeinstellungen
In Fess 15.6 wird die Aktivierung der AI-Suchmodus-Funktion und Gemini-spezifische Einstellungen in fess_config.properties vorgenommen, während die Auswahl des LLM-Anbieters (rag.llm.name) über die Administrationsoberfläche oder in system.properties konfiguriert wird.
LLM-Anbieter konfigurieren
Der LLM-Anbieter wird über die Administrationsoberfläche (Administration > System > Allgemein) oder in system.properties konfiguriert.
Minimalkonfiguration
app/WEB-INF/conf/fess_config.properties:
system.properties (auch über Administration > System > Allgemein konfigurierbar):
Empfohlene Konfiguration (Produktionsumgebung)
app/WEB-INF/conf/fess_config.properties:
system.properties (auch über Administration > System > Allgemein konfigurierbar):
Einstellungselemente
Alle verfügbaren Einstellungselemente für den Gemini-Client. Alle Einstellungen werden in fess_config.properties vorgenommen.
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
rag.llm.gemini.api.key | Google AI API-Schlüssel (muss zur Nutzung der Gemini API gesetzt werden) | "" |
rag.llm.gemini.model | Name des zu verwendenden Modells | gemini-3.1-flash-lite-preview |
rag.llm.gemini.api.url | Basis-URL der API | https://generativelanguage.googleapis.com/v1beta |
rag.llm.gemini.timeout | Anfrage-Timeout (Millisekunden) | 60000 |
rag.llm.gemini.availability.check.interval | Intervall der Verfügbarkeitsprüfung (Sekunden) | 60 |
rag.llm.gemini.max.concurrent.requests | Maximale Anzahl gleichzeitiger Anfragen | 5 |
rag.llm.gemini.chat.evaluation.max.relevant.docs | Maximale Anzahl relevanter Dokumente bei der Bewertung | 3 |
rag.llm.gemini.chat.evaluation.description.max.chars | Maximale Zeichenzahl für Dokumentbeschreibung bei der Bewertung | 500 |
rag.llm.gemini.concurrency.wait.timeout | Wartezeit bei gleichzeitigen Anfragen (Millisekunden) | 30000 |
rag.llm.gemini.history.max.chars | Maximale Zeichenzahl für Chat-Verlauf | 10000 |
rag.llm.gemini.intent.history.max.messages | Maximale Anzahl von Verlaufsnachrichten für Absichtserkennung | 10 |
rag.llm.gemini.intent.history.max.chars | Maximale Verlaufszeichenzahl für Absichtserkennung | 5000 |
rag.llm.gemini.history.assistant.max.chars | Maximale Zeichenzahl für Assistenten-Verlauf | 1000 |
rag.llm.gemini.history.assistant.summary.max.chars | Maximale Zeichenzahl für Assistenten-Zusammenfassungsverlauf | 1000 |
rag.llm.gemini.retry.max | Maximale Anzahl von HTTP-Wiederholungsversuchen (bei 429 und 5xx-Fehlern) | 10 |
rag.llm.gemini.retry.base.delay.ms | Basisverzögerung des exponentiellen Backoffs (in Millisekunden) | 2000 |
Authentifizierung
Seit Fess 15.6.1 wird der API-Schlüssel über den HTTP-Anfrageheader x-goog-api-key gesendet (die von Google empfohlene Methode). Er wird nicht mehr wie zuvor über den Query-Parameter ?key=... an die URL angehängt, sodass der API-Schlüssel nicht in den Zugriffslogs erscheint.
Retry-Verhalten
Anfragen an die Gemini API werden bei folgenden HTTP-Statuscodes automatisch wiederholt:
429Resource Exhausted (Kontingentüberschreitung / Ratenbegrenzung)500Internal Server Error503Service Unavailable504Gateway Timeout
Bei einem Wiederholungsversuch wird mit exponentiellem Backoff gewartet (Basiswert rag.llm.gemini.retry.base.delay.ms Millisekunden, maximal rag.llm.gemini.retry.max Versuche, mit ±20% Jitter). Bei Streaming-Anfragen wird nur der initiale Verbindungsaufbau wiederholt; Fehler, die nach Beginn des Empfangs des Antwortkörpers auftreten, werden sofort weitergegeben.
Prompttypspezifische Einstellungen
In Fess können LLM-Parameter für jeden Prompttyp detailliert konfiguriert werden. Prompttypspezifische Einstellungen werden in fess_config.properties eingetragen.
Konfigurationsformat
Verfügbare Prompttypen
| Prompttyp | Beschreibung |
|---|---|
intent | Prompt zur Bestimmung der Benutzerabsicht |
evaluation | Prompt zur Bewertung der Dokumentrelevanz |
unclear | Prompt bei unklarer Frage |
noresults | Prompt bei fehlenden Suchergebnissen |
docnotfound | Prompt, wenn kein Dokument gefunden wurde |
answer | Prompt zur Antwortgenerierung |
summary | Prompt zur Zusammenfassungsgenerierung |
faq | Prompt zur FAQ-Generierung |
direct | Prompt für direkte Antworten |
queryregeneration | Prompt zur Abfrageneugenerierung |
Standardwerte pro Prompttyp
Standardwerte für jeden Prompttyp. Diese Werte werden verwendet, wenn keine explizite Konfiguration vorliegt.
| Prompttyp | 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 |
Konfigurationsbeispiel
Bemerkung
Der Standardwert von context.max.chars variiert je nach Prompttyp. Für answer und summary beträgt er 16000, für faq 10000, für andere Prompttypen 10000.
Unterstützung für Thinking-Modelle
Gemini unterstützt Thinking-Modelle. Bei Verwendung von Thinking-Modellen führt das Modell vor der Antwortgenerierung einen internen Denkprozess durch und kann so genauere Antworten liefern.
Das Thinking-Budget wird pro Prompttyp in fess_config.properties konfiguriert. Fess konvertiert den Ganzzahlwert (Anzahl Tokens) aus rag.llm.gemini.{promptType}.thinking.budget zur Anfragezeit automatisch in das passende API-Feld der erkannten Modellgeneration.
Mapping nach Modellgeneration
Gemini 2.x (z. B.
gemini-2.5-flash): Der konfigurierte Ganzzahlwert wird unverändert alsthinkingConfig.thinkingBudgetgesendet. Bei0wird das Thinking vollständig deaktiviert.Gemini 3.x (z. B.
gemini-3.1-flash-lite-preview): Der Ganzzahlwert wird in den AufzählungswertthinkingConfig.thinkingLevel(MINIMAL/LOW/MEDIUM/HIGH) eingruppiert und gesendet.
Das Bucket-Mapping für Gemini 3.x ist wie folgt:
| Budget-Wert | thinkingLevel | Hinweise |
|---|---|---|
<=0 | MINIMAL oder LOW | Bei Flash- / Flash-Lite-Modellen MINIMAL; bei Pro-Modellen, die MINIMAL nicht unterstützen (gemini-3-pro / gemini-3.1-pro), LOW. |
<=4096 | MEDIUM | |
>4096 | HIGH |
Bemerkung
Gemini 3.x verbraucht in jedem Bucket eine bestimmte Anzahl an Thinking-Tokens (selbst bei thinkingLevel=MINIMAL können einige hundert Tokens verbraucht werden). Aus diesem Grund fügt Fess bei Verwendung von Gemini 3.x-Modellen den standardmäßigen maxOutputTokens automatisch zusätzlichen Headroom (1024 Tokens) hinzu, um das Abschneiden der Antwort durch finishReason=MAX_TOKENS zu vermeiden. Bei Gemini 2.x wird mit thinkingBudget=0 das Thinking selbst deaktiviert, daher wird kein zusätzlicher Headroom hinzugefügt.
Bemerkung
Ein hoch konfiguriertes Thinking-Budget kann die Antwortzeit verlängern. Setzen Sie einen geeigneten Wert entsprechend dem Verwendungszweck.
Konfiguration über JVM-Optionen
Aus Sicherheitsgründen wird empfohlen, API-Schlüssel über die Laufzeitumgebung (JVM-Optionen) statt in eingecheckten Dateien zu konfigurieren.
Docker-Umgebung
Das offizielle docker-fess Repository liefert ein Gemini-Overlay (compose-gemini.yaml) mit. Die minimalen Schritte sind:
Inhalt von compose-gemini.yaml (als Referenz für eigenes Setup):
Hinweise:
FESS_PLUGINS=fess-llm-gemini:15.6.0lässt dasrun.shdes Containers das Plugin automatisch herunterladen und inapp/WEB-INF/plugin/installieren-Dfess.config.rag.chat.enabled=trueaktiviert den AI-Modus-Dfess.config.rag.llm.gemini.api.key=...setzt den API-Schlüssel,-Dfess.config.rag.llm.gemini.model=...wählt das Modell-Dfess.system.rag.llm.name=geminiwirkt nur als initialer Default, bevor ein Wert in OpenSearch persistiert wurde. Nach dem Start kann der Wert auch unter Administration > System > Allgemein (RAG-Sektion) geändert werden
Bei Internetzugang über einen Proxy geben Sie die http.proxy.*-Einstellungen von Fess über FESS_JAVA_OPTS an (siehe Abschnitt „HTTP-Proxy verwenden“ weiter unten).
systemd-Umgebung
In /etc/sysconfig/fess (oder /etc/default/fess) FESS_JAVA_OPTS ergänzen:
HTTP-Proxy verwenden
Seit Fess 15.6.1 nutzt der Gemini-Client die globale HTTP-Proxy-Konfiguration von Fess. Geben Sie die folgenden Eigenschaften in fess_config.properties an.
| Eigenschaft | Beschreibung | Standard |
|---|---|---|
http.proxy.host | Proxy-Hostname (bei leerer Zeichenkette wird kein Proxy verwendet) | "" |
http.proxy.port | Proxy-Portnummer | 8080 |
http.proxy.username | Benutzername für die Proxy-Authentifizierung (optional; wenn angegeben, wird Basic-Authentifizierung aktiviert) | "" |
http.proxy.password | Passwort für die Proxy-Authentifizierung | "" |
In Docker-Umgebungen geben Sie die Werte wie folgt über FESS_JAVA_OPTS an:
Bemerkung
Diese Einstellung wirkt sich auch auf den HTTP-Zugriff von Fess insgesamt (z. B. Crawler) aus. Die bisherigen Java-Systemeigenschaften (-Dhttps.proxyHost usw.) werden vom Gemini-Client nicht mehr ausgewertet.
Verwendung über Vertex AI
Wenn Sie Google Cloud Platform verwenden, können Sie Gemini auch über Vertex AI nutzen. Bei Verwendung von Vertex AI unterscheiden sich API-Endpunkt und Authentifizierungsmethode.
Bemerkung
Die aktuelle Fess-Version verwendet die Google AI API (generativelanguage.googleapis.com). Falls die Verwendung über Vertex AI erforderlich ist, kann eine benutzerdefinierte Implementierung notwendig sein.
Modellauswahl-Leitfaden
Richtlinien zur Modellauswahl je nach Verwendungszweck.
| Modell | Geschwindigkeit | Qualität | Anwendungsfall |
|---|---|---|---|
gemini-3.1-flash-lite-preview | Schnell | Hoch | Leichtgewichtig und kostengünstig (Standard, unterstützt thinkingLevel=MINIMAL) |
gemini-3-flash-preview | Schnell | Sehr hoch | Allgemeiner Einsatz (unterstützt thinkingLevel=MINIMAL) |
gemini-3.1-pro / gemini-3-pro | Mittel | Sehr hoch | Komplexe Schlussfolgerungen (MINIMAL nicht unterstützt; mindestens LOW) |
gemini-2.5-flash | Schnell | Hoch | Stabile Version, kostenorientiert |
gemini-2.5-pro | Mittel | Hoch | Stabile Version, langer Kontext |
Kontextfenster
Gemini-Modelle unterstützen sehr lange Kontextfenster:
Gemini 3 Flash / 2.5 Flash: Bis zu 1 Million Token
Gemini 3.1 Pro / 2.5 Pro: Bis zu 1 Million Token (3.1 Pro) / 2 Millionen Token (2.5 Pro)
Diese Eigenschaft ermöglicht es, mehr Suchergebnisse in den Kontext einzubeziehen.
Kostenrichtlinien
Die Google AI API wird nutzungsbasiert abgerechnet (mit Gratiskontingent).
| Modell | Eingabe (1M Zeichen) | Ausgabe (1M Zeichen) |
|---|---|---|
| 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 |
Bemerkung
Aktuelle Preise und Informationen zum Gratiskontingent finden Sie unter Google AI Pricing.
Gleichzeitige Anfragensteuerung
In Fess kann die Anzahl gleichzeitiger Anfragen an Gemini gesteuert werden. Konfigurieren Sie dazu folgendes Property in fess_config.properties.
Diese Einstellung verhindert übermäßige Anfragen an die Google AI API und vermeidet Ratenbegrenzungsfehler.
Gratiskontingent-Limits
Die Google AI API hat ein Gratiskontingent, aber folgende Einschränkungen:
Anfragen/Minute: 15 RPM
Token/Minute: 1 Million TPM
Anfragen/Tag: 1.500 RPD
Bei Verwendung des Gratiskontingents wird empfohlen, rag.llm.gemini.max.concurrent.requests auf einen niedrigen Wert zu setzen.
Fehlerbehebung
Authentifizierungsfehler
Symptom: API-Schlüssel-bezogene Fehler
Zu überprüfen:
Überprüfen Sie, ob der API-Schlüssel korrekt konfiguriert ist
Überprüfen Sie, ob der API-Schlüssel in Google AI Studio gültig ist
Überprüfen Sie, ob der API-Schlüssel die erforderlichen Berechtigungen hat
Überprüfen Sie, ob die API im Projekt aktiviert ist
Ratenbegrenzungsfehler
Symptom: „429 Resource has been exhausted“-Fehler
Lösung:
Verringern Sie die Anzahl gleichzeitiger Anfragen in
fess_config.properties:Warten Sie einige Minuten und versuchen Sie es erneut
Beantragen Sie bei Bedarf eine Kontingenterhöhung
Regionale Einschränkungen
Symptom: Fehler, dass der Dienst nicht verfügbar ist
Zu überprüfen:
Die Google AI API ist nur in bestimmten Regionen verfügbar. Überprüfen Sie die unterstützten Regionen in der Google-Dokumentation.
Timeout
Symptom: Anfragen laufen in Timeout
Lösung:
Verlängern Sie die Timeout-Zeit:
Erwägen Sie die Verwendung des Flash-Modells (schneller)
Debug-Einstellungen
Zur Untersuchung von Problemen können Sie den Log-Level anpassen, um detaillierte Logs zu Gemini auszugeben.
app/WEB-INF/classes/log4j2.xml:
Sicherheitshinweise
Bei der Verwendung der Google AI API beachten Sie folgende Sicherheitsaspekte.
Datenschutz: Suchergebnisinhalte werden an Google-Server gesendet
API-Schlüsselverwaltung: Schlüssellecks können zu Missbrauch führen
Compliance: Bei vertraulichen Daten überprüfen Sie die Richtlinien Ihrer Organisation
Nutzungsbedingungen: Halten Sie Googles Nutzungsbedingungen und Acceptable Use Policy ein
Weiterführende Informationen
Übersicht LLM-Integration - Übersicht LLM-Integration
AI-Suchmodus-Funktion konfigurieren - Details zur AI-Suchmodus-Funktion