Descripcion general
Google Gemini es un modelo de lenguaje grande (LLM) de ultima generacion proporcionado por Google. Fess puede implementar la funcionalidad de modo de búsqueda IA con el modelo Gemini utilizando Google AI API (Generative Language API).
Al usar Gemini, es posible generar respuestas de alta calidad aprovechando la ultima tecnologia de IA de Google.
Caracteristicas principales
Soporte multimodal: Capaz de procesar no solo texto sino tambien imagenes
Contexto largo: Ventana de contexto larga que puede procesar grandes cantidades de documentos a la vez
Eficiencia de costos: El modelo Flash es rapido y de bajo costo
Integracion con Google: Facil integracion con servicios de Google Cloud
Modelos compatibles
Principales modelos disponibles en Gemini:
gemini-3-flash-preview- Ultimo modelo rapido (recomendado)gemini-3.1-pro-preview- Ultimo modelo de alto razonamientogemini-2.5-flash- Modelo rapido version establegemini-2.5-pro- Modelo de alto razonamiento version estable
Nota
Para la informacion mas reciente sobre modelos disponibles, consulte Google AI for Developers.
Requisitos previos
Antes de usar Gemini, prepare lo siguiente.
Cuenta de Google: Se requiere una cuenta de Google
Acceso a Google AI Studio: Acceda a https://aistudio.google.com/
Clave API: Genere una clave API en Google AI Studio
Obtencion de clave API
Acceda a Google AI Studio
Haga clic en «Get API key»
Seleccione «Create API key»
Seleccione o cree un nuevo proyecto
Guarde la clave API generada de forma segura
Advertencia
La clave API es informacion confidencial. Tenga en cuenta lo siguiente:
No la commita en sistemas de control de versiones
No la imprima en logs
Administrela con variables de entorno o archivos de configuracion seguros
Instalacion del plugin
En Fess 15.6, la funcionalidad de integracion con Gemini se proporciona como plugin fess-llm-gemini. Para usar Gemini es necesario instalar el plugin.
Descargue fess-llm-gemini-15.6.0.jar
Coloquelo en el directorio
app/WEB-INF/plugin/de FessReinicie Fess
# Ejemplo de colocacion del plugin
cp fess-llm-gemini-15.6.0.jar /path/to/fess/app/WEB-INF/plugin/
Nota
La version del plugin debe coincidir con la version de Fess.
Configuracion basica
En Fess 15.6, la habilitacion de la funcionalidad de modo de búsqueda IA y la configuracion especifica de Gemini se realizan en fess_config.properties, y la seleccion del proveedor LLM (rag.llm.name) se realiza en la pantalla de administracion o en system.properties.
Configuracion de fess_config.properties
Agregue la configuracion de habilitacion de la funcionalidad de modo de búsqueda IA en app/WEB-INF/conf/fess_config.properties.
# Habilitar la funcionalidad de modo de búsqueda IA
rag.chat.enabled=true
Configuracion del proveedor LLM
La seleccion del proveedor LLM (rag.llm.name) se configura en la pantalla de administracion (Administracion > Sistema > General) o en system.properties. La configuracion especifica de Gemini se realiza en fess_config.properties.
Configuracion minima
app/WEB-INF/conf/fess_config.properties:
# Habilitar la funcionalidad de modo de búsqueda IA
rag.chat.enabled=true
# Clave API de Gemini
rag.llm.gemini.api.key=AIzaSyxxxxxxxxxxxxxxxxxxxxxxxxx
# Modelo a usar
rag.llm.gemini.model=gemini-3-flash-preview
system.properties (tambien configurable en Administracion > Sistema > General):
# Configurar el proveedor LLM como Gemini
rag.llm.name=gemini
Configuracion recomendada (entorno de produccion)
app/WEB-INF/conf/fess_config.properties:
# Habilitar la funcionalidad de modo de búsqueda IA
rag.chat.enabled=true
# Clave API de Gemini
rag.llm.gemini.api.key=AIzaSyxxxxxxxxxxxxxxxxxxxxxxxxx
# Configuracion del modelo (usar modelo rapido)
rag.llm.gemini.model=gemini-3-flash-preview
# Endpoint de API (normalmente no necesita cambios)
rag.llm.gemini.api.url=https://generativelanguage.googleapis.com/v1beta
# Configuracion de timeout
rag.llm.gemini.timeout=60000
system.properties (tambien configurable en Administracion > Sistema > General):
# Configurar el proveedor LLM como Gemini
rag.llm.name=gemini
Elementos de configuracion
Todos los elementos de configuracion disponibles para el cliente de Gemini. Todos se configuran en fess_config.properties.
| Propiedad | Descripcion | Predeterminado |
|---|---|---|
rag.llm.gemini.api.key | Clave API de Google AI (debe configurarse para usar la API de Gemini) | "" |
rag.llm.gemini.model | Nombre del modelo a usar | gemini-3-flash-preview |
rag.llm.gemini.api.url | URL base de la API | https://generativelanguage.googleapis.com/v1beta |
rag.llm.gemini.timeout | Timeout de solicitud (milisegundos) | 60000 |
rag.llm.gemini.availability.check.interval | Intervalo de verificacion de disponibilidad (segundos) | 60 |
rag.llm.gemini.max.concurrent.requests | Numero maximo de solicitudes simultaneas | 5 |
rag.llm.gemini.chat.evaluation.max.relevant.docs | Numero maximo de documentos relevantes en la evaluacion | 3 |
rag.llm.gemini.chat.evaluation.description.max.chars | Numero maximo de caracteres para la descripcion del documento en la evaluacion | 500 |
rag.llm.gemini.concurrency.wait.timeout | Tiempo de espera de solicitudes simultaneas (milisegundos) | 30000 |
rag.llm.gemini.history.max.chars | Numero maximo de caracteres del historial de chat | 10000 |
rag.llm.gemini.intent.history.max.messages | Numero maximo de mensajes del historial para la determinacion de intencion | 10 |
rag.llm.gemini.intent.history.max.chars | Numero maximo de caracteres del historial para la determinacion de intencion | 5000 |
rag.llm.gemini.history.assistant.max.chars | Numero maximo de caracteres del historial del asistente | 1000 |
rag.llm.gemini.history.assistant.summary.max.chars | Numero maximo de caracteres del resumen del historial del asistente | 1000 |
Configuracion por tipo de prompt
En Fess, se pueden configurar los parametros del LLM en detalle por tipo de prompt. La configuracion por tipo de prompt se escribe en fess_config.properties.
Formato de configuracion
rag.llm.gemini.{promptType}.temperature
rag.llm.gemini.{promptType}.max.tokens
rag.llm.gemini.{promptType}.thinking.budget
rag.llm.gemini.{promptType}.context.max.chars
Tipos de prompt disponibles
| Tipo de prompt | Descripcion |
|---|---|
intent | Prompt para determinar la intencion del usuario |
evaluation | Prompt para evaluar la relevancia de los documentos |
unclear | Prompt para cuando la pregunta no esta clara |
noresults | Prompt para cuando no hay resultados de busqueda |
docnotfound | Prompt para cuando no se encuentra el documento |
answer | Prompt de generacion de respuesta |
summary | Prompt de generacion de resumen |
faq | Prompt de generacion de FAQ |
direct | Prompt de respuesta directa |
queryregeneration | Prompt de regeneracion de consulta |
Valores predeterminados por tipo de prompt
Valores predeterminados para cada tipo de prompt. Estos valores se utilizan cuando no se configuran explicitamente.
| Tipo 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 |
Ejemplo de configuracion
# Configuracion de temperatura de generacion de respuestas
rag.llm.gemini.answer.temperature=0.7
# Numero maximo de tokens de generacion de resumenes
rag.llm.gemini.summary.max.tokens=2048
# Numero maximo de caracteres de contexto de generacion de respuestas
rag.llm.gemini.answer.context.max.chars=16000
# Numero maximo de caracteres de contexto de generacion de resumenes
rag.llm.gemini.summary.context.max.chars=16000
# Numero maximo de caracteres de contexto de generacion de FAQ
rag.llm.gemini.faq.context.max.chars=10000
Nota
El valor predeterminado de context.max.chars varia segun el tipo de prompt. answer y summary son 16000, faq es 10000, y otros tipos de prompt son 10000.
Soporte de modelo de pensamiento
Gemini soporta modelos de pensamiento (Thinking Model). Al usar un modelo de pensamiento, el modelo ejecuta un proceso de razonamiento interno antes de generar una respuesta, lo que permite generar respuestas con mayor precision.
El presupuesto de pensamiento se puede configurar por tipo de prompt en fess_config.properties.
# Configuracion del presupuesto de pensamiento para generacion de respuestas
rag.llm.gemini.answer.thinking.budget=1024
# Configuracion del presupuesto de pensamiento para generacion de resumenes
rag.llm.gemini.summary.thinking.budget=1024
Nota
Al configurar el presupuesto de pensamiento, el tiempo de respuesta puede aumentar. Configure un valor apropiado segun el uso.
Configuracion con variables de entorno
Por razones de seguridad, se recomienda configurar la clave API con variables de entorno.
Entorno 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
Entorno systemd
/etc/systemd/system/fess.service.d/override.conf:
[Service]
Environment="RAG_LLM_GEMINI_API_KEY=AIzaSy..."
Uso a traves de Vertex AI
Si esta usando Google Cloud Platform, tambien puede usar Gemini a traves de Vertex AI. Al usar Vertex AI, el endpoint de la API y el metodo de autenticacion son diferentes.
Nota
El Fess actual utiliza Google AI API (generativelanguage.googleapis.com). Si se requiere el uso a traves de Vertex AI, puede ser necesaria una implementacion personalizada.
Guia de seleccion de modelos
Guia para la seleccion de modelos segun el proposito de uso.
| Modelo | Velocidad | Calidad | Uso |
|---|---|---|---|
gemini-3-flash-preview | Rapido | Maxima | Uso general (recomendado) |
gemini-3.1-pro-preview | Medio | Maxima | Razonamiento complejo |
gemini-2.5-flash | Rapido | Alta | Version estable, enfasis en costos |
gemini-2.5-pro | Medio | Alta | Version estable, contexto largo |
Ventana de contexto
Los modelos Gemini soportan ventanas de contexto muy largas:
Gemini 3 Flash / 2.5 Flash: Hasta 1 millon de tokens
Gemini 3.1 Pro / 2.5 Pro: Hasta 1 millon de tokens (3.1 Pro) / 2 millones de tokens (2.5 Pro)
Aprovechando esta caracteristica, puede incluir mas resultados de busqueda en el contexto.
# Incluir mas documentos en el contexto (configurar en fess_config.properties)
rag.llm.gemini.answer.context.max.chars=20000
Estimacion de costos
La API de Google AI cobra segun el uso (con cuota gratuita disponible).
| Modelo | Entrada (1M caracteres) | Salida (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 |
Nota
Para los precios mas recientes e informacion sobre la cuota gratuita, consulte Google AI Pricing.
Control de solicitudes simultaneas
En Fess, se puede controlar el numero de solicitudes simultaneas a Gemini. Configure la siguiente propiedad en fess_config.properties.
# Numero maximo de solicitudes simultaneas (predeterminado: 5)
rag.llm.gemini.max.concurrent.requests=5
Esta configuracion permite prevenir solicitudes excesivas a la API de Google AI y evitar errores de limite de tasa.
Limites de la cuota gratuita (referencia)
La API de Google AI tiene una cuota gratuita, pero con las siguientes limitaciones:
Solicitudes/minuto: 15 RPM
Tokens/minuto: 1 millon TPM
Solicitudes/dia: 1,500 RPD
Se recomienda configurar rag.llm.gemini.max.concurrent.requests a un valor bajo cuando se usa la cuota gratuita.
Solucion de problemas
Error de autenticacion
Sintoma: Errores relacionados con la clave API
Verificaciones:
Verificar que la clave API este configurada correctamente
Confirmar que la clave API sea valida en Google AI Studio
Confirmar que la clave API tenga los permisos necesarios
Verificar que la API este habilitada en el proyecto
Error de limite de tasa
Sintoma: Error «429 Resource has been exhausted»
Solucion:
Reducir el numero de solicitudes simultaneas en
fess_config.properties:rag.llm.gemini.max.concurrent.requests=3
Esperar unos minutos y reintentar
Solicitar aumento de cuota si es necesario
Restriccion de region
Sintoma: Error de que el servicio no esta disponible
Verificaciones:
La API de Google AI solo esta disponible en ciertas regiones. Consulte la documentacion de Google para las regiones soportadas.
Timeout
Sintoma: Las solicitudes tienen timeout
Solucion:
Extender el tiempo de timeout:
rag.llm.gemini.timeout=120000
Considerar usar el modelo Flash (mas rapido)
Configuracion de depuracion
Para investigar problemas, puede ajustar el nivel de log de Fess para obtener logs detallados relacionados con Gemini.
app/WEB-INF/classes/log4j2.xml:
<Logger name="org.codelibs.fess.llm.gemini" level="DEBUG"/>
Notas de seguridad
Al usar la API de Google AI, tenga en cuenta los siguientes aspectos de seguridad.
Privacidad de datos: El contenido de los resultados de busqueda se envia a los servidores de Google
Gestion de claves API: La filtracion de claves puede llevar a uso no autorizado
Cumplimiento: Si incluye datos confidenciales, verifique las politicas de su organizacion
Terminos de uso: Cumpla con los terminos de uso y la Politica de Uso Aceptable de Google
Informacion de referencia
Descripcion general de integracion LLM - Descripcion general de integracion LLM
Configuracion de la funcionalidad de modo de búsqueda IA - Detalles de la funcionalidad de modo de búsqueda IA