Select2LLM es una herramienta en desarrollo que permite acceder y procesar texto seleccionado en cualquier aplicación usando modelos de lenguaje (LLMs) cargados en Ollama con una simple combinación de teclas. La aplicación está diseñada para agilizar tu flujo de trabajo diario, facilitando tareas como traducciones, correcciones, resúmenes, creación de código, informes, generación de comandos, y mucho más.
- Acceso rápido y configurable a modelos LLM: Selecciona texto en cualquier aplicación y envíalo a un modelo de tu elección con una simple combinación de teclas.
- Soporta múltiples combinaciones de teclas y prompts: Configura diferentes combinaciones de teclas para acceder a diferentes modelos LLM con distintos prompts predefinidos, añadiendo el texto seleccionado al final del prompt.
- Gestión de configuraciones desde la aplicación: La configuración de combinaciones de teclas y prompts se realiza directamente desde la interfaz de la aplicación, sin necesidad de editar archivos manualmente.
- Configuración global personalizable: Define preferencias generales como el idioma, temperatura del modelo y otros parámetros globales desde un archivo de configuración sencillo.
- Flexibilidad de uso: Procesa el texto seleccionado con cualquier modelo LLM cargado en Ollama para generar respuestas de manera ágil y eficiente.
- Privacidad de tus datos: Al utilizar Ollama, evitas depender de APIs externas (como OpenAI) y mantienes la privacidad de tus datos procesados.
- Linux con X11: Requiere tener instalados
xclip
yxdotool
. - Windows: Necesita tener PowerShell instalado y activado.
- macOS: Futuras versiones planean soporte para macOS.
Para que Select2LLM funcione correctamente, es necesario instalar algunas dependencias en función del sistema operativo:
-
Ollama: Se necesita tener Ollama instalado y al menos un modelo descargado. Puedes descargar Ollama desde https://ollama.com/download.
Luego, para instalar el modelo
llama3.2
, ejecuta:ollama pull llama3.2
-
Linux:
- xclip y xdotool: Para instalar estas dependencias, ejecuta:
sudo apt-get install xclip xdotool
- xclip y xdotool: Para instalar estas dependencias, ejecuta:
-
Windows:
- Asegúrate de tener PowerShell instalado y activado. PowerShell viene preinstalado en la mayoría de las versiones de Windows modernas, pero si es necesario, puedes descargarlo desde la página oficial de Microsoft.
Puedes instalar Select2LLM de dos maneras: descargando las compilaciones disponibles o construyéndolo desde el código fuente.
Para una instalación más sencilla, puedes descargar los archivos de compilación ya generados.
- Descargar versión de Windows (solo para pruebas)
- Descargar versión de Linux (solo para pruebas)
Advertencia: Las versiones proporcionadas son únicamente para propósitos de prueba. No nos hacemos responsables de cualquier problema que pueda ocurrir durante su uso. Actualmente, la versión de Windows no funciona muy bien y la versión de Linux está limitada a sistemas X-Windows.
Una vez descargado el archivo:
- Descomprime o ejecuta el archivo descargado en tu sistema operativo correspondiente.
- Sigue las instrucciones en pantalla para finalizar la instalación.
Si prefieres instalarlo desde el código fuente:
-
Clonar el repositorio
git clone https://github.com/Len4m/select2llm.git
-
Instalar dependencias Navega a la carpeta del proyecto y ejecuta el siguiente comando para instalar las dependencias:
npm install
-
Construir la aplicación Para crear un archivo ejecutable
.AppImage
de Select2LLM en la carpetadist
, usa el siguiente comando:npm run build
-
Ejecutar la aplicación Si deseas iniciar la aplicación sin crear un
.AppImage
, puedes utilizar:npm start
La configuración de combinaciones de teclas y prompts se realiza directamente desde la interfaz de la aplicación. Los ajustes se guardan automáticamente en un archivo shortcuts.json
que se encuentra en la carpeta del usuario, dentro de .select2llm
.
El formato de este archivo es el siguiente:
[
{
"ctrl": true,
"shift": true,
"alt": true,
"key": "t",
"prompt": "Traduce el siguiente texto al inglés. Devuelve únicamente la traducción en inglés sin incluir ningún comentario, explicación ni texto adicional:",
"model": "llama3.2:latest",
"temperature": 0.7,
"overlay": true
},
{
"ctrl": true,
"shift": true,
"alt": true,
"key": "p",
"prompt": "Mejora esta programación para que sea más corta y más eficiente, muéstrame solo la programación sin incluir ningún comentario, explicación ni texto adicional:",
"model": "mistral:instruct",
"temperature": 0.6,
"overlay": true
},
{
"ctrl": true,
"shift": true,
"alt": true,
"key": "g",
"prompt": "%s",
"model": "gemma2:latest",
"temperature": 0.28,
"overlay": false
}
]
- ctrl, shift, alt: Valores booleanos que definen si estas teclas deben ser parte de la combinación.
- key: La tecla principal que activará el prompt.
- prompt: El mensaje que se enviará al modelo LLM, con el texto seleccionado añadido al final.
- model: El modelo LLM cargado en Ollama que se utilizará para procesar el texto.
- temperature: Establece la "creatividad" del modelo LLM para esta configuración específica, con valores más altos generando respuestas más variadas.
- overlay: Establece si se mostrará una ventana superpuesta en la aplicación donde el texto es escrito por select2llm y generado por Ollama.
Además de la configuración de atajos y prompts, Select2LLM permite definir parámetros globales que afectan al comportamiento general de la aplicación. Esta configuración se guarda automáticamente en un archivo config.json
en la carpeta del usuario, dentro de .select2llm
.
El formato de este archivo es el siguiente:
{
"language": "es",
"temperature": 0.8,
"keep-alive": 5,
"host": "http://127.0.0.1:11434"
}
- language: Define el idioma preferido para la interfaz de usuario (actualmente inglés, español y catalán).
- temperature: Valor por defecto de creatividad del modelo para todas las consultas.
- keep-alive: Tiempo en minutos que el modelo permanecerá en memoria.
- host: URL del servidor Ollama que se utilizará para procesar las peticiones.
- Selecciona cualquier texto en una aplicación de tu computadora.
- Usa la combinación de teclas configurada para enviar el texto seleccionado al modelo LLM preconfigurado en Ollama.
- Recibe la respuesta procesada y disfruta de la eficiencia en tu flujo de trabajo.
La aplicación utiliza el portapapeles y
xdotool
para acceder al contenido seleccionado en otras aplicaciones y simular pulsaciones de teclas.
La idea detrás de Select2LLM surgió por la frustración de tener que buscar plugins para ChatGPT/Ollama en cada aplicación donde quería usar LLMs, lo cual resultaba en una experiencia deficiente y, generalmente, terminaba en la API de OpenAI, sacrificando la privacidad de mis datos procesados. Con Select2LLM, ahora es posible acceder a diferentes modelos y prompts preconfigurados con solo una pulsación de teclas, haciendo que cualquier tarea sea más eficiente.
Las compilaciones de Select2LLM para Windows y Linux están disponibles únicamente con fines de pruebas. Actualmente, la versión de Windows no funciona muy bien y la versión de Linux está limitada a sistemas X-Windows.
- Descargar versión de Windows (solo para pruebas)
- Descargar versión de Linux (solo para pruebas)
Advertencia: Las versiones proporcionadas son únicamente para propósitos de prueba. No nos hacemos responsables de cualquier problema que pueda ocurrir durante su uso.
Select2LLM es la primera aplicación que desarrollo en Electron, por lo que es muy probable que haya errores y muchas cosas por mejorar. ¡Toda colaboración es bienvenida! Si tienes sugerencias, mejoras o simplemente quieres contribuir, no dudes en abrir un issue o crear un pull request en el repositorio.
- Mejorar la eficiencia del pulsado de teclas.
- Dar la opción de enviar el resultado con pulsado de teclas o con pegar desde el portapapeles.
- Pruebas y desarrollo para MacOS.
- ...
Este proyecto está licenciado bajo la Licencia GPL-3. Consulta el archivo LICENSE
para más detalles.
Espero que Select2LLM sea una herramienta útil para quienes buscan una forma rápida y privada de interactuar con modelos LLM y mejorar su productividad en tareas cotidianas.