Open maxezek opened 6 months ago
En Kdenlive se integra Whisper para subtitular en local los vídeos y esta es otra IA que llevamos de serie en MAX12.
Otra opción interesante, RASA y ChatterBot.
Son dos ia especializadas en asistentes o bots de ayuda. No sé que asistente usa ahora EducaMadrid. Sería o ese mismo o uno similar como estos.
Se puede ver como se instala y entrena chatterbot en esta página web.
Con RASA y usando un chatGPT para ello he visto que se puede crear un un chatbot integrado en MAX que sirva como asistente para resolver dudas de los usuarios con el siguiente proceso
Usar para programar Python y/o JavaScript (Node.js) (si se hace como app web)
El data sheet o base de Conocimiento y Respuestas puedes ser la documentación oficial de MAX, los foros y las soluciones aportadas en Telegram
Se debe definir el alcance y funcionadades como qué tipo de preguntas que el chatbot debe responder y como se integración con comandos del sistema para ofrecer asistencia directa, por ejemplo la instalación de paquetes.
Una vez entrenado se debe crear un script que ejecute el chatbot al inicio del sistema y configurarlo como un servicio de systemd.
Y luegor realizar pruebas para asegurar la precisión de las respuestas junto con el feedback de los usuarios para actualizar el modelo.
Ejemplo de un proceso de iinstalación en MAX
pip install rasa
rasa init
rasa train
rasa run
Integración como Servicio en Systemd
[Unit] Description=Chatbot Asistente para Madrid_linux, MAX y EducaMadrid.
[Service] ExecStart=/usr/bin/python3 /path/to/your/chatbot_script.py Restart=always
[Install] WantedBy=multi-user.target
Luego, habilita y arranca el servicio:
sudo systemctl enable chatbot.service sudo systemctl start chatbot.service
Según chatGPT la estructura del Proyecto sería:
Ejemplo de config.yml
language: "en"
pipeline:
policies:
Ejemplo de domain.yml
intents:
entities:
slots: package: type: text
responses: utter_greet:
text: "Hola! ¿En qué puedo ayudarte con MAX y EducaMadrid?"
utter_goodbye:
text: "¡Adiós! Si tienes alguna otra pregunta, no dudes en preguntar."
utter_ask_package:
actions:
Ejemplo de data/nlu.yml
version: "2.0" nlu:
intent: greet examples: |
intent: goodbye examples: |
intent: ask_install_package examples: |
intent: ask_update_system examples: |
Ejemplo de data/stories.yml
version: "2.0" stories:
story: install package steps:
story: update system steps:
story: greet and goodbye steps:
Ejemplo de actions/action_install_package.py
from typing import Any, Text, Dict, List
from rasa_sdk import Action, Tracker from rasa_sdk.executor import CollectingDispatcher import subprocess
class ActionInstallPackage(Action):
def name(self) -> Text:
return "action_install_package"
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
package = tracker.get_slot("package")
if package:
try:
result = subprocess.run(
["sudo", "apt-get", "install", "-y", package],
check=True, capture_output=True, text=True)
dispatcher.utter_message(text=f"El paquete {package} ha sido instalado correctamente.")
except subprocess.CalledProcessError:
dispatcher.utter_message(text=f"Hubo un error al intentar instalar el paquete {package}.")
else:
dispatcher.utter_message(text="No se especificó ningún paquete para instalar.")
return []
Ejemplo de actions/action_update_system.py
from typing import Any, Text, Dict, List
from rasa_sdk import Action, Tracker from rasa_sdk.executor import CollectingDispatcher import subprocess
class ActionUpdateSystem(Action):
def name(self) -> Text:
return "action_update_system"
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
try:
result = subprocess.run(
["sudo", "apt-get", "update"],
check=True, capture_output=True, text=True)
dispatcher.utter_message(text="El sistema se ha actualizado correctamente.")
except subprocess.CalledProcessError:
dispatcher.utter_message(text="Hubo un error al intentar actualizar el sistema.")
return []
Ejecutar el Chatbot
rasa train
rasa run actions & rasa run --enable-api --cors "*"
A propuesta de Pedro Sánchez Alguacil estamos probando Pinokio https://pinokio.computer/ que permite integrar distinas herramientas de IA en local. https://github.com/pinokiocomputer/pinokio
AnythingLLM y LM Studio son otras dos opciones que estamos probando aunque depende demasiado de disponer de tarjeta gráfica potente.
ESTA ISSUE NACE CON EL PROPOSITO DE OBTENER UN LISTADO DE HERRAMIENTAS DE IA ABIERTAS Y DE POSIBLES MODELOS DE USO LIBRE.
OLLAMA
Esto es quizás para cursos de bachillerato o de FP y para ponerlo en +Aplicaciones.
Ollama es un equivalente a chatgpt de código abierto que puede utilizarse para generar modelos propios.
En el blog lunacoin se tiene una explicación de su instalación y de las limitaciones que tienen los modelos. Creo que puede ser muy didáctico.
Se hace en local lo cual es muy interesante y además L204 - Entendiendo la Inteligencia Artificial y los LLM tiene una explicación sobre los LLM y la IA interesante.
Dispone de:
JAN
Jan es una alternativa de código abierto a ChatGPT que se ejecuta 100% sin conexión a Internet en local. Privacidad e Inteligencia artificial a la vez.
Jan proporciona un servidor API de OpenAI en localhost:1337 que se puede utilizar como reemplazo de entrega con aplicaciones compatibles.