El plugin Discourse AI tiene muchas funciones que requieren embeddings para funcionar, como Temas Relacionados, Búsqueda IA, Sugerencia de Categoría y Etiqueta de Ayudante IA, etc. Si bien puedes usar una API de terceros, como Configurar Claves API para OpenAI, Configurar Claves API para Cloudflare Workers AI o Configurar Claves API para Google Gemini, construimos Discourse AI desde el primer día para no estar atados a ellas.
Ejecución con HuggingFace TEI
HuggingFace proporciona una imagen de contenedor impresionante que puede ponerte en marcha rápidamente.
Por ejemplo:
mkdír -p /opt/tei-cache
docker run --rm --gpus all --shm-size 1g -p 8081:80 \
-v /opt/tei-cache:/data \
ghcr.io/huggingface/text-embeddings-inference:latest \
--model-id BAAI/bge-large-en-v1.5
Esto debería poner en marcha una instancia local de BAAI/bge-large-en-v1.5, un modelo de código abierto con muy buen rendimiento.
Puedes comprobar si está funcionando con
curl http://localhost:8081/ \
-X POST \
-H 'Content-Type: application/json' \
"{ \"inputs\": \"Testing string for embeddings\" }"
Lo que debería devolver una matriz de flotantes en funcionamiento normal.
Hacerlo disponible para tu instancia de Discourse
La mayoría de las veces, ejecutarás esto en un servidor dedicado debido a la aceleración de la GPU. Al hacerlo, recomiendo ejecutar un proxy inverso, realizar la terminación TLS y asegurar el endpoint para que solo pueda ser conectado por tu instancia de Discourse.
Configuración de DiscourseAI
Discourse AI incluye configuraciones del sitio para configurar el servidor de inferencia para modelos de código abierto. Deberías apuntarlo a tu servidor usando la pestaña Embeddings en la configuración de administrador del plugin de IA.