Saltar a contenido

Chatbot de IA autoalojado

En este artículo

Información

El Chatbot de IA autoalojado constituye una solución local, que amalgama numerosos componentes de código abierto. El núcleo de este sistema es Ollama: un marco arquitectónico diseñado para lanzar y gestionar modelos de lenguaje a gran escala (LLM) en recursos computacionales locales. Facilita la descarga y el despliegue de LLM seleccionados. Para una interacción fluida con el modelo desplegado, Open Web UI emplea una interfaz gráfica; esta aplicación web permite a los usuarios enviar consultas de texto y recibir respuestas generadas por los modelos de lenguaje. La integración de estos componentes genera una solución completamente autónoma y local para desplegar modelos de lenguaje de vanguardia con bases de código abierto, manteniendo el control total sobre la integridad de los datos y el rendimiento del sistema.

Características clave

  • Interfaz web: Open Web UI proporciona una interfaz web intuitiva que centraliza el control y extiende las capacidades de interacción con los modelos de lenguaje de IA locales del repositorio de Ollama, simplificando significativamente el uso del modelo para usuarios de diversos niveles de competencia.
  • Integración con numerosos modelos de lenguaje: Ollama otorga acceso a una gran cantidad de modelos de lenguaje gratuitos, proporcionando así capacidades mejoradas de procesamiento de lenguaje natural (NLP) a su disposición. Además, puede integrar sus modelos personalizados.
  • Tareas: Los usuarios pueden participar en conversaciones, obtener respuestas a consultas, analizar conjuntos de datos, realizar traducciones y desarrollar sus propios chatbots o aplicaciones impulsadas por IA con la asistencia de LLM.
  • Código abierto: Ollama es un proyecto de código abierto, lo que permite a los usuarios adaptar y modificar la plataforma según sus requisitos específicos.
  • Web Scraper y búsqueda de documentos internos (RAG): A través de OpenWebUI, puede buscar en varios tipos de documentos, como archivos de texto, PDF, presentaciones de PowerPoint, sitios web y videos de YouTube.

Nota

Para obtener más información sobre la configuración principal de Ollama y la documentación de Open WebUI, consulte la documentación para desarrolladores de Ollama y la documentación de Open WebUI.

Funcionalidades de implementación

ID Nombre del software SO compatible VM BM VGPU GPU CPU mín. (núcleos) RAM mín. (GB) HDD/SSD mín. (GB) Dominio personalizado Activo
117 AI Chatbot Ubuntu 22.04 + + + + 4 16 - No ORDER
  • El tiempo de instalación combinado del SO y el servidor oscila entre 15 y 30 minutos.
  • El servidor Ollama descarga y ejecuta el LLM en la memoria, agilizando los procesos de implementación.
  • Open WebUI opera como una aplicación web que se conecta con el servidor Ollama.
  • Los usuarios interactúan con LLaMA 3 a través de la interfaz web de Open WebUI enviando consultas para recibir respuestas.
  • Todos los cálculos y el procesamiento de datos se ejecutan localmente en el servidor, garantizando la privacidad y el control sobre el flujo de información. Los administradores del sistema tienen la flexibilidad de personalizar el LLM para tareas específicas a través de las funcionalidades proporcionadas dentro de OpenWebUI.
  • Los requisitos del sistema estipulan un mínimo de 16 GB de RAM para garantizar un rendimiento óptimo.

Una vez completado el proceso de instalación, los usuarios deben acceder a su servidor navegando a través de la URL: https://ollama<Server_ID_from_Invapi>.hostkey.in.

Nota

A menos que se especifique lo contrario, por defecto instalamos la última versión de lanzamiento del software desde el sitio web del desarrollador o los repositorios del sistema operativo.

Primeros pasos después del despliegue del Chatbot de IA

Tras el pago del pedido, en el correo electrónico registrado, recibirá una notificación sobre la preparación del servidor para el trabajo. Incluirá la dirección IP del VPS, así como el nombre de usuario y la contraseña para conectarse al servidor vía SSH. Los clientes de nuestra empresa gestionan el equipo a través del panel de control del servidor y la APIInvapi.

Atención

¡La contraseña enviada a su correo electrónico es necesaria para la conexión SSH y el inicio de sesión en el SO como usuario root, y no se aplica a la interfaz web del chatbot! Debe configurar un usuario administrador y una contraseña para el chatbot al conectarse por primera vez a OpenWebUI.

Enlace para acceder a la interfaz web del chatbot: en la etiqueta webpanel. El enlace exacto en el formato https://ollama<Server_ID_from_Invapi>.hostkey.in también se envía por correo electrónico cuando se entrega el servidor.

Después de hacer clic en el enlace de la etiqueta webpanel, se abrirá una ventana de inicio de sesión Get started with Open WebUI, donde debe crear un nombre de administrador, una dirección de correo electrónico y una contraseña para su chatbot, y luego hacer clic en el botón Create Admin Account:

Atención

Después de registrar el primer usuario, el sistema les asigna automáticamente el rol de administrador. Para garantizar la seguridad y el control sobre el proceso de registro, todas las solicitudes de registro posteriores deben aprobarse en OpenWebUI desde la cuenta de administrador.

Pantalla inicial de OpenWebUI

La pantalla inicial presenta una interfaz de chat junto con varios ejemplos de indicaciones de entrada (consultas) para demostrar las capacidades del sistema. Para iniciar la interacción con el chatbot, los usuarios deben seleccionar su modelo de lenguaje preferido entre las opciones disponibles. En este caso, se recomienda LLaMA 3, que cuenta con extensos conocimientos y capacidades para generar respuestas a diversas consultas.

Después de seleccionar un modelo, los usuarios pueden ingresar su primera consulta en el campo de entrada, y el sistema generará una respuesta basada en el análisis del texto ingresado. Las indicaciones de ejemplo presentadas en la pantalla inicial muestran la diversidad de temas y tareas que el chatbot puede manejar, ayudando a los usuarios a orientarse con sus capacidades.

Configuración de su espacio de trabajo en Workspace

Para personalizar aún más su experiencia de chat, navegue a la sección Workspace. Aquí encontrará varias opciones de personalización:

  • Models - Esta sección le permite ajustar modelos existentes para sus necesidades específicas. Puede configurar indicaciones del sistema, parámetros, conectar documentos o bases de conocimientos, definir herramientas, filtros o acciones.
  • Knowledge - Esta sección configura la base de conocimientos (RAG) basada en sus documentos.
  • Prompts - Cree, edite y gestione sus propias indicaciones (solicitudes de entrada) para una interacción más efectiva con el chatbot en esta sección.
  • Tools - Conecte scripts de Python personalizados aquí, que se proporcionan al LLM durante una solicitud. Las herramientas permiten al LLM realizar acciones y obtener contexto adicional como resultado. Las herramientas de la comunidad listas para usar se pueden ver en el sitio web.
  • Functions - Conecte operaciones modulares aquí, que permiten a los usuarios expandir las capacidades de la IA incorporando lógica o acciones específicas directamente en los flujos de trabajo. A diferencia de las herramientas que operan como utilidades externas, las funciones se ejecutan dentro del entorno de OpenWebUI y manejan tareas como el procesamiento de datos, la visualización y la comunicación interactiva. Los ejemplos de funciones listas para usar se pueden ver en el sitio web.

Agregar y eliminar modelos

Ollama ofrece la capacidad de instalar y utilizar una amplia gama de modelos de lenguaje, no solo el predeterminado. Antes de instalar nuevos modelos, asegúrese de que la configuración de su servidor cumpla con los requisitos del modelo elegido en cuanto al uso de memoria y recursos computacionales.

Instalación de un modelo a través de la interfaz de OpenWebUI

Para instalar modelos a través de la interfaz de OpenWebUI, siga estos pasos:

  1. Seleccione el modelo deseado de la biblioteca de Ollama y navegue a su página haciendo clic en su nombre. Elija el tipo y tamaño del modelo (si es necesario). La "dimensionalidad" más adecuada se ofrecerá por defecto. Luego, haga clic en el icono con dos cuadrados a la izquierda del comando como ollama run <model_name> para copiar la cadena de instalación en su portapapeles.

  2. Haga clic en el nombre del modelo en la esquina superior izquierda de la ventana del chatbot de OpenWebUI y pegue el comando copiado en el campo Search a model.

  3. Haga clic en la cadena Pull "ollama run " from Ollama.com.

  4. Después de una descarga e instalación exitosas, el modelo aparecerá en la lista desplegable y estará disponible para su selección.

Instalación de un modelo a través de la línea de comandos

Para instalar nuevos modelos, debe conectarse a su servidor usando SSH y ejecutar el comando correspondiente como se describe en este artículo.

Eliminación de un modelo

Para eliminar modelos de la interfaz de OpenWebUI, vaya a la configuración de la interfaz web User icon in the top right corner >> Settings >> Admin Panel >> Models.

A continuación, haga clic en el botón Manage Models para abrir la ventana de gestión de modelos.

En ella, desde la lista desplegable Delete a model, seleccione el modelo a eliminar y haga clic en el icono junto a él:

Para eliminar un modelo usando la línea de comandos (como root):

ollama rm <model_name>

Agregar documentos a la base de conocimientos (RAG)

La opción Knowledge le permite crear bases de conocimientos (RAG) y cargar documentos de varios formatos, como PDF, archivos de texto, documentos de Word, presentaciones de PowerPoint y otros. Estos documentos se analizan y se pueden discutir con el chatbot. Esto es especialmente útil para estudiar y comprender documentos complejos, prepararse para presentaciones o reuniones, analizar datos e informes, verificar trabajos escritos en busca de errores gramaticales, estilo y lógica, trabajar con documentos legales y financieros, así como realizar investigaciones en diversos campos. El chatbot puede ayudarle a comprender el contenido del documento, resumirlo, resaltar los puntos clave, responder preguntas, proporcionar información adicional y ofrecer recomendaciones.

Para trabajar con documentos, debe crear al menos una base de conocimientos. Para hacerlo, vaya a la sección Workspace >> Knowledge y haga clic en (Más) en la esquina superior derecha. Complete la información sobre el nombre y el contenido de la base de conocimientos y créela con el botón Create Knowledge.

Dentro de la sección de la base de conocimientos, a la izquierda hay una lista de archivos cargados en la base de conocimientos, y a la derecha está su contenido o donde puede arrastrar y soltar archivos para cargarlos.

También, haciendo clic en el botón (Más) junto a la barra de búsqueda Search Collection, puede:

  • Cargar archivos a la base de conocimientos (Upload files)
  • Cargar un directorio completo de archivos (Upload directory)
  • Sincronizar archivos y su contenido entre la base de conocimientos y el directorio (Sync directory). Esta opción le permite actualizar la base de conocimientos.
  • Agregar contenido a la base de conocimientos a través del editor integrado de Open WebUI (Add text content)

Puede eliminar cualquier archivo de la base de conocimientos seleccionándolo y haciendo clic en la cruz que aparece.

Atención

Dependiendo del modelo elegido y la potencia de la GPU en el servidor, la creación de embeddings en la configuración de documentos puede tardar desde decenas de segundos hasta decenas de minutos.

Para gestionar la configuración de documentos, vaya a Username >> Settings >> Admin Settings >> Documents.

Aquí puede configurar:

  1. Embedding Model Engine - El motor para crear embeddings. Por defecto, se usa SentenceTransformers, pero puede cargar y usar modelos de embedding de Ollama para este propósito.
  2. Hybrid Search - Búsqueda híbrida. Cuando está habilitada, la calidad de la búsqueda para bases de conocimientos y documentos mejorará, pero la velocidad de trabajo puede disminuir significativamente.
  3. Embedding Models - El modelo para embedding. Recomendamos establecer este campo en el modelo mejorado sentence-transformers/all-MiniLM-L12-v2 y hacer clic en el botón de carga a su derecha.
  4. Engine - Motor extractor de contenido. Use el valor predeterminado.
  5. Query Params: Esta sección configura parámetros que influyen en las consultas a los documentos cargados y en la forma en que el chatbot genera respuestas.
    • Top K - Esta configuración determina el número de mejores resultados de búsqueda que se mostrarán. Por ejemplo, si se establece Top K = 5, entonces se mostrarán 5 de los documentos o fragmentos de texto más relevantes en la respuesta.
    • RAG Template - RAG (Retrieval Augmented Generation) es un método donde el sistema primero extrae partes relevantes de texto de un conjunto de documentos, y luego las usa para generar una respuesta con la ayuda de un modelo de lenguaje. RAG Template establece la plantilla para formar una solicitud al modelo de lenguaje al usar este método. La capacidad de configurar RAG Template le permite adaptar el formato de la consulta al modelo de lenguaje para obtener respuestas de mayor calidad en escenarios de uso específicos.
  6. Chunk Params - Esta sección le permite configurar parámetros para dividir (chunking) los documentos cargados. El chunking es dividir documentos grandes en partes más pequeñas para un procesamiento más fácil. Aquí, puede establecer el tamaño máximo de fragmento en símbolos: Chunk Size y el número de caracteres que las partes pueden superponerse: Chunk Overlap. Los valores recomendados son 1500 y 100, respectivamente.

    En esta sección, también puede habilitar la opción PDF Extract Images (OCR): esta es una tecnología para reconocer texto en imágenes. Cuando está habilitada, el sistema extraerá imágenes de archivos PDF y aplicará OCR para reconocer cualquier texto contenido en estas imágenes.

  7. Files - Aquí, puede establecer el tamaño máximo de un archivo cargado y su número total.

Los botones ubicados debajo Reset Upload Directory y Reset Vector Storage/Knowledge limpian el directorio de archivos de documentos cargados y restablecen el almacenamiento vectorial/guardado de la base de conocimientos (todo). Úselos solo cuando sea absolutamente necesario, y elimine archivos y bases de conocimientos a través de Workspace.

Después de cargar documentos, puede trabajar con ellos en modo de chat. Para hacerlo, inicie un mensaje en la línea de chat con el símbolo # y seleccione el documento o la base de conocimientos deseada de la lista desplegable. Posteriormente, la respuesta a la solicitud se formará basada en los datos del documento seleccionado. Esta función le permite recibir respuestas contextuales basadas en la información cargada y puede ser útil para diversas tareas como buscar información, analizar datos y tomar decisiones basadas en documentos:

Nota

Puede usar el símbolo # para agregar sitios web o videos de YouTube a su consulta, permitiendo que el LLM los busque también.

Consejos para trabajar con RAG en OpenWebUI

  • Cualquier manipulación con el modelo de Embedding requerirá eliminar y cargar documentos en la base de datos vectorial nuevamente. Cambiar los parámetros de RAG no requiere esto.
  • Al agregar o eliminar documentos, asegúrese de actualizar el modelo personalizado (si existe) y la colección de documentos. De lo contrario, la búsqueda de ellos puede no funcionar correctamente.
  • OpenWebUI reconoce los formatos pdf, csv, rst, xml, md, epub, doc, docx, xls, xlsx, ppt, pptx, txt, pero se recomienda cargar documentos en texto plano.
  • El uso de búsqueda híbrida mejora los resultados pero consume muchos recursos, y el tiempo de respuesta puede tardar de 20 a 40 segundos incluso en una GPU potente.

Actualización del chatbot

Cuando estén disponibles nuevos modelos, o para corregir errores y aumentar la funcionalidad del chatbot de IA, debe actualizar dos de sus componentes: Ollama y Open WebUI.

Actualización de Ollama

  1. Para actualizar Ollama, inicie sesión en el servidor vía SSH como root y ejecute el siguiente comando:
curl -fsSL https://ollama.com/install.sh | sh
  1. Abra un navegador y verifique la disponibilidad de Ollama a través de la API ingresando la dirección <server IP>:11434.

Debería recibir el mensaje Ollama is running.

  1. Si no tiene acceso a la API, es posible que deba agregar las siguientes líneas al archivo de servicio /etc/systemd/system/ollama.service en la sección [Service]:
Environment="OLLAMA_HOST=0.0.0.0" 
Environment="OLLAMA_ORIGINS=*"

y reiniciar el servicio con los siguientes comandos:

systemctl daemon-reload
service ollama restart
También, es posible que deba reiniciar OpenWebUI

```bash
docker stop open-webui
docker rm open-webui
docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda
```

Actualización de Open WebUI

Para actualizar Open WebUI, inicie sesión en el servidor vía SSH como root y ejecute el siguiente comando:

docker run --rm --gpus all --volume /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower --run-once open-webui

Si la actualización a través de Watchtower no funciona, ejecute los siguientes comandos:

#!/bin/bash
docker stop open-webui
docker rm open-webui
docker pull ghcr.io/open-webui/open-webui:main
docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda
docker restart open-webui

Atención

Si desea acceder a la documentación de API integrada para el endpoint de Open WebUI, debe ejecutar el contenedor con la variable de entorno ENV=dev establecida:

docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda

Restablecimiento de la contraseña de administrador y restablecimiento completo de la configuración en OpenWebUI

Restablecimiento de la contraseña de administrador en OpenWebUI

Primero, debe crear un hash bcrypt de su nueva contraseña. Ejecute el siguiente comando en su máquina local, reemplazando your-new-password con la contraseña que desea usar:

htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'

Nota

La salida incluirá un hash bcrypt con caracteres especiales que deben manejarse con cuidado. Cualquier carácter $ en el hash deberá escaparse tres veces (reemplazado con \\\) para usarse correctamente en el siguiente paso.

A continuación, actualizará la contraseña en su implementación de Docker. Reemplace HASH en el comando a continuación con el hash bcrypt generado anteriormente, asegurándose de escapar tres veces cualquier carácter $. También, reemplace [email protected] con la dirección de correo electrónico vinculada a su cuenta de administrador.

Atención

El siguiente comando puede no funcionar en algunos casos. Si no funciona, intente restablecer completamente la configuración de OpenWebUI.

docker run --rm -v open-webui:/data alpine/socat EXEC:"bash -c 'apk add sqlite && echo UPDATE auth SET password='\''HASH'\'' WHERE email='\''[email protected]'\''; | sqlite3 /data/webui.db'", STDIO

Restablecimiento completo de la configuración en OpenWebUI

Para realizar un restablecimiento completo de la configuración, debe eliminar la base de datos de OpenWebUI. Para hacerlo, inicie sesión en su servidor vía SSH como root y ejecute los siguientes comandos:

cp /var/lib/docker/volumes/open-webui/_data/webui.db /var/lib/docker/volumes/open-webui/_data/webui.db.bak
rm /var/lib/docker/volumes/open-webui/_data/webui.db
docker restart open-webui

Nota

Es posible que deba reiniciar completamente OpenWebUI con los siguientes comandos:

docker stop open-webui
docker rm open-webui
docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda

Esto creará una copia de seguridad de la base de datos en el archivo webui.db.bak, restablecerá la configuración y reiniciará el contenedor Docker de OpenWebUI.

Posteriormente, inicie sesión en la interfaz web y configure la cuenta de administrador como si fuera su primera conexión.

A continuación, debe restaurar la conexión con Ollama. Para hacerlo, inicie sesión como administrador en OpenWebUi, luego seleccione Username >> Settings >> Admin Settings >> Connections desde la sección del menú. Luego haga clic en el icono (Configure)

Después de eso, cambie:

y presione el botón Save

Artículos prácticos y consejos

Puede encontrar más información útil en nuestros artículos del blog:

Tutorial en video

Pedido de un servidor con Chatbot de IA vía API

Para instalar este software usando la API, siga estas instrucciones.


Algunos de los contenidos de esta página fueron creados o traducidos usando IA.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×