Descripcion general
OpenAI es un servicio en la nube que proporciona modelos de lenguaje grandes (LLM) de alto rendimiento, comenzando con GPT-4. Fess puede utilizar la API de OpenAI para implementar la funcionalidad de modo de búsqueda IA.
Al usar OpenAI, es posible generar respuestas de alta calidad con modelos de IA de ultima generacion.
Caracteristicas principales
Respuestas de alta calidad: Generacion de respuestas de alta precision con modelos GPT de ultima generacion
Escalabilidad: Facil escalado al ser un servicio en la nube
Mejora continua: El rendimiento mejora con actualizaciones periodicas de modelos
Funcionalidad rica: Compatible con diversas tareas como generacion de texto, resumen, traduccion
Modelos compatibles
Principales modelos disponibles en OpenAI:
gpt-5- Ultimo modelo de alto rendimientogpt-5-mini- Version ligera de GPT-5 (buena relacion costo-rendimiento)gpt-4o- Modelo multimodal de alto rendimientogpt-4o-mini- Version ligera de GPT-4oo3-mini- Modelo ligero especializado en razonamientoo4-mini- Modelo ligero de proxima generacion especializado en razonamiento
Nota
Para la informacion mas reciente sobre modelos disponibles, consulte OpenAI Models.
Nota
Al usar modelos de la serie o1/o3/o4 o de la serie gpt-5, Fess utiliza automaticamente el parametro max_completion_tokens de la API de OpenAI. No se requieren cambios de configuracion.
Requisitos previos
Antes de usar OpenAI, prepare lo siguiente.
Cuenta de OpenAI: Cree una cuenta en https://platform.openai.com/
Clave API: Genere una clave API en el dashboard de OpenAI
Configuracion de facturacion: Configure la informacion de facturacion ya que el uso de la API genera cargos
Obtencion de clave API
Inicie sesion en OpenAI Platform
Navegue a la seccion «API keys»
Haga clic en «Create new secret key»
Ingrese un nombre para la clave y creela
Guarde la clave mostrada de forma segura (solo se muestra una vez)
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 OpenAI se proporciona como plugin. Para usarla es necesario instalar el plugin fess-llm-openai.
Descargue fess-llm-openai-15.6.0.jar
Coloque el archivo JAR en el directorio
app/WEB-INF/plugin/del directorio de instalacion de Fess:cp fess-llm-openai-15.6.0.jar /path/to/fess/app/WEB-INF/plugin/
Reinicie Fess
Nota
La version del plugin debe coincidir con la version de Fess.
Configuracion basica
En Fess 15.6, los elementos de configuracion se dividen en los siguientes dos archivos segun su uso.
app/WEB-INF/conf/fess_config.properties- Configuracion del nucleo de Fess y configuracion especifica del proveedor LLMsystem.properties/ Pantalla de administracion (Administracion > Sistema > General) - Seleccion del proveedor LLM (rag.llm.name)
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 OpenAI
rag.llm.openai.api.key=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Modelo a usar
rag.llm.openai.model=gpt-5-mini
system.properties (tambien configurable en Administracion > Sistema > General):
# Configurar el proveedor LLM como OpenAI
rag.llm.name=openai
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 OpenAI
rag.llm.openai.api.key=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Configuracion del modelo (usar modelo de alto rendimiento)
rag.llm.openai.model=gpt-4o
# Endpoint de API (normalmente no necesita cambios)
rag.llm.openai.api.url=https://api.openai.com/v1
# Configuracion de timeout
rag.llm.openai.timeout=120000
# Limite de solicitudes simultaneas
rag.llm.openai.max.concurrent.requests=5
system.properties (tambien configurable en Administracion > Sistema > General):
# Configuracion del proveedor LLM
rag.llm.name=openai
Elementos de configuracion
Todos los elementos de configuracion disponibles para el cliente de OpenAI. Excepto rag.llm.name, todos se configuran en fess_config.properties.
| Propiedad | Descripcion | Predeterminado | Lugar de configuracion |
|---|---|---|---|
rag.llm.name | Nombre del proveedor LLM (especificar openai) | ollama | system.properties |
rag.llm.openai.api.key | Clave API de OpenAI | (requerido) | fess_config.properties |
rag.llm.openai.model | Nombre del modelo a usar | gpt-5-mini | fess_config.properties |
rag.llm.openai.api.url | URL base de la API | https://api.openai.com/v1 | fess_config.properties |
rag.llm.openai.timeout | Timeout de solicitud (milisegundos) | 120000 | fess_config.properties |
rag.llm.openai.availability.check.interval | Intervalo de verificacion de disponibilidad (segundos) | 60 | fess_config.properties |
rag.llm.openai.max.concurrent.requests | Numero maximo de solicitudes simultaneas | 5 | fess_config.properties |
rag.llm.openai.chat.evaluation.max.relevant.docs | Numero maximo de documentos relevantes en la evaluacion | 3 | fess_config.properties |
rag.llm.openai.concurrency.wait.timeout | Timeout de espera de solicitudes simultaneas (ms) | 30000 | fess_config.properties |
rag.llm.openai.reasoning.token.multiplier | Multiplicador de max tokens para modelos de inferencia | 4 | fess_config.properties |
rag.llm.openai.history.max.chars | Maximo de caracteres para historial de conversacion | 8000 | fess_config.properties |
rag.llm.openai.intent.history.max.messages | Maximo de mensajes de historial para deteccion de intencion | 8 | fess_config.properties |
rag.llm.openai.intent.history.max.chars | Maximo de caracteres de historial para deteccion de intencion | 4000 | fess_config.properties |
rag.llm.openai.history.assistant.max.chars | Maximo de caracteres para mensajes del asistente | 800 | fess_config.properties |
rag.llm.openai.history.assistant.summary.max.chars | Maximo de caracteres para resumen del asistente | 800 | fess_config.properties |
rag.llm.openai.chat.evaluation.description.max.chars | Maximo de caracteres para descripcion de documentos en evaluacion | 500 | fess_config.properties |
rag.chat.enabled | Habilitacion de la funcionalidad de modo de búsqueda IA | false | fess_config.properties |
Configuracion por tipo de prompt
En Fess, se pueden configurar parametros individuales para cada tipo de prompt. La configuracion se realiza en fess_config.properties.
Patron de configuracion
La configuracion por tipo de prompt se especifica con el siguiente patron:
rag.llm.openai.{promptType}.temperature- Aleatoriedad de generacion (0.0 a 2.0). Se ignora para modelos de inferencia (serie o1/o3/o4/gpt-5)rag.llm.openai.{promptType}.max.tokens- Numero maximo de tokensrag.llm.openai.{promptType}.context.max.chars- Numero maximo de caracteres del contexto (predeterminado:16000para answer/summary,10000para otros)
Tipos de prompt
Tipos de prompt disponibles:
| Tipo de prompt | Descripcion |
|---|---|
intent | Prompt para determinar la intencion del usuario |
evaluation | Prompt para evaluar la relevancia de los resultados de busqueda |
unclear | Prompt de respuesta para consultas no claras |
noresults | Prompt de respuesta cuando no hay resultados de busqueda |
docnotfound | Prompt de respuesta cuando no se encuentra el documento |
answer | Prompt para generar respuestas |
summary | Prompt para generar resumenes |
faq | Prompt para generar FAQ |
direct | Prompt para respuesta directa |
queryregeneration | Prompt de regeneracion de consultas |
Valores predeterminados
Valores predeterminados para cada tipo de prompt. La configuracion de temperature se ignora para modelos de inferencia (serie o1/o3/o4/gpt-5).
| Tipo de prompt | Temperature | Max Tokens | Notas |
|---|---|---|---|
intent | 0.1 | 256 | Deteccion de intencion determinista |
evaluation | 0.1 | 256 | Evaluacion de relevancia determinista |
unclear | 0.7 | 512 | |
noresults | 0.7 | 512 | |
docnotfound | 0.7 | 256 | |
direct | 0.7 | 1024 | |
faq | 0.7 | 1024 | |
answer | 0.5 | 2048 | Generacion de respuesta principal |
summary | 0.3 | 2048 | Generacion de resumen |
queryregeneration | 0.3 | 256 | Regeneracion de consultas |
Ejemplo de configuracion
# Configuracion de temperatura del prompt answer
rag.llm.openai.answer.temperature=0.7
# Numero maximo de tokens del prompt answer
rag.llm.openai.answer.max.tokens=2048
# Configuracion de temperatura del prompt summary (se configura bajo para resumen)
rag.llm.openai.summary.temperature=0.3
# Configuracion de temperatura del prompt intent (se configura bajo para determinacion de intencion)
rag.llm.openai.intent.temperature=0.1
Soporte de modelos de inferencia
Cuando se usan modelos de inferencia de las series o1/o3/o4 o de la serie gpt-5, Fess utiliza automaticamente el parametro max_completion_tokens de la API de OpenAI en lugar de max_tokens. No se requieren cambios adicionales de configuracion.
Nota
Los modelos de inferencia (serie o1/o3/o4/gpt-5) ignoran la configuracion de temperature y usan un valor fijo (1). Ademas, al usar modelos de inferencia, el max_tokens predeterminado se multiplica por reasoning.token.multiplier (predeterminado: 4).
Parametros adicionales para modelos de inferencia
Al usar modelos de inferencia, se pueden configurar los siguientes parametros adicionales en fess_config.properties:
| Propiedad | Descripcion | Predeterminado |
|---|---|---|
rag.llm.openai.{promptType}.reasoning.effort | Configuracion de reasoning effort para modelos serie o (low, medium, high) | low (intent/evaluation/docnotfound/unclear/noresults/queryregeneration), no configurado (otros) |
rag.llm.openai.{promptType}.top.p | Umbral de probabilidad para la seleccion de tokens (0.0 a 1.0) | (no configurado) |
rag.llm.openai.{promptType}.frequency.penalty | Penalizacion de frecuencia (-2.0 a 2.0) | (no configurado) |
rag.llm.openai.{promptType}.presence.penalty | Penalizacion de presencia (-2.0 a 2.0) | (no configurado) |
{promptType} puede ser intent, evaluation, answer, summary, etc.
Ejemplo de configuracion
# Configurar reasoning effort en high para o3-mini
rag.llm.openai.model=o3-mini
rag.llm.openai.reasoning.effort=high
# Configurar top_p y penalizaciones para gpt-5
rag.llm.openai.model=gpt-5
rag.llm.openai.top.p=0.9
rag.llm.openai.frequency.penalty=0.5
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_OPENAI_API_KEY=sk-xxx... codelibs/fess:15.6.0
docker-compose.yml
services:
fess:
image: codelibs/fess:15.6.0
environment:
- RAG_CHAT_ENABLED=true
- RAG_LLM_NAME=openai
- RAG_LLM_OPENAI_API_KEY=${OPENAI_API_KEY}
- RAG_LLM_OPENAI_MODEL=gpt-5-mini
Entorno systemd
/etc/systemd/system/fess.service.d/override.conf:
[Service]
Environment="RAG_LLM_OPENAI_API_KEY=sk-xxx..."
Uso de Azure OpenAI
Para usar modelos de OpenAI a traves de Microsoft Azure, cambie el endpoint de la API.
# Endpoint de Azure OpenAI
rag.llm.openai.api.url=https://your-resource.openai.azure.com/openai/deployments/your-deployment
# Clave API de Azure
rag.llm.openai.api.key=your-azure-api-key
# Nombre del despliegue (especificar como nombre de modelo)
rag.llm.openai.model=your-deployment-name
Nota
Al usar Azure OpenAI, el formato de solicitud de la API puede diferir ligeramente. Consulte la documentacion de Azure OpenAI para mas detalles.
Guia de seleccion de modelos
Guia para la seleccion de modelos segun el proposito de uso.
| Modelo | Costo | Calidad | Uso |
|---|---|---|---|
gpt-5-mini | Medio | Alta | Uso equilibrado (recomendado) |
gpt-4o-mini | Bajo-Medio | Alta | Uso con prioridad en costos |
gpt-5 | Alto | Maxima | Razonamiento complejo, cuando se requiere alta calidad |
gpt-4o | Medio-Alto | Maxima | Cuando se requiere soporte multimodal |
o3-mini / o4-mini | Medio | Maxima | Tareas de razonamiento como matematicas y programacion |
Estimacion de costos
La API de OpenAI cobra segun el uso.
Nota
Para los precios mas recientes, consulte OpenAI Pricing.
Control de solicitudes simultaneas
En Fess, el numero de solicitudes simultaneas a la API de OpenAI se puede controlar con rag.llm.openai.max.concurrent.requests en fess_config.properties. El valor predeterminado es 5.
# Configurar el numero maximo de solicitudes simultaneas
rag.llm.openai.max.concurrent.requests=5
Esta configuracion permite prevenir solicitudes excesivas a la API de OpenAI y evitar errores de limite de tasa.
Limites por nivel de OpenAI
Los limites del lado de la API varian segun el nivel de la cuenta de OpenAI:
Free: 3 RPM (solicitudes/minuto)
Tier 1: 500 RPM
Tier 2: 5,000 RPM
Tier 3+: Limites aun mayores
Ajuste rag.llm.openai.max.concurrent.requests apropiadamente segun el nivel de la cuenta de OpenAI.
Solucion de problemas
Error de autenticacion
Sintoma: Error «401 Unauthorized»
Verificaciones:
Verificar que la clave API este configurada correctamente
Confirmar que la clave API sea valida (verificar en el dashboard de OpenAI)
Confirmar que la clave API tenga los permisos necesarios
Error de limite de tasa
Sintoma: Error «429 Too Many Requests»
Solucion:
Reducir el valor de
rag.llm.openai.max.concurrent.requests:rag.llm.openai.max.concurrent.requests=3
Actualizar el nivel de la cuenta de OpenAI
Cuota excedida
Sintoma: Error «You exceeded your current quota»
Solucion:
Verificar el uso en el dashboard de OpenAI
Revisar la configuracion de facturacion y aumentar el limite si es necesario
Timeout
Sintoma: Las solicitudes tienen timeout
Solucion:
Extender el tiempo de timeout:
rag.llm.openai.timeout=180000
Considerar usar un modelo mas rapido (como gpt-5-mini)
Configuracion de depuracion
Para investigar problemas, puede ajustar el nivel de log de Fess para obtener logs detallados relacionados con OpenAI.
app/WEB-INF/classes/log4j2.xml:
<Logger name="org.codelibs.fess.llm.openai" level="DEBUG"/>
Notas de seguridad
Al usar la API de OpenAI, tenga en cuenta los siguientes aspectos de seguridad.
Privacidad de datos: El contenido de los resultados de busqueda se envia a los servidores de OpenAI
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
Politica de uso: Cumpla con los terminos de servicio de OpenAI
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