- Emacs Copilot genera completado de código dentro del buffer de Emacs usando un LLM (Large Language Model) que se ejecuta localmente
- El LLM se ejecuta como un subcomando que recuerda el historial de edición local por archivo, y se puede interrumpir en cualquier momento con
C-g
- Al borrar código, ese historial también puede eliminarse del contexto del LLM, y el lenguaje de programación se determina por la extensión del archivo, sin depender del lenguaje en sí
Modelo WizardCoder 34b
- WizardCoder 34b es un LLM destacado que obtuvo la misma puntuación que GPT-4 en HumanEval.
- Para usar este modelo se necesita una computadora potente, como una Mac Studio M2 Ultra; los usuarios de Macbook Pro pueden considerar la versión Q3, y los usuarios de PC comunes pueden considerar el modelo WizardCoder-Python-13b.
- Los usuarios con menor capacidad de cómputo, como una Raspberry Pi, pueden usar el modelo Phi-2.
Cómo empezar
- Después de escribir la primera línea de la función, presiona
C-c C-k para cederle el control al LLM y que genere el resto de la implementación.
- El LLM está ajustado para detenerse cuando la función queda completa, y evita explicaciones o comentarios tipo ELI5 (explicados de forma sencilla).
Implementación de referencia
- Después de descargar el LLM, copia el siguiente código en un buffer de Emacs y ejecuta
M-x eval-buffer.
- Puedes ajustar el código según tus preferencias personales.
Enlace de descarga de Emacs
- Si no tienes Emacs instalado o usas una plataforma donde es difícil conseguirlo, como Windows, se ofrece un enlace a una compilación de Emacs en un solo archivo ejecutable que puede usarse sin instalación.
Enlaces de descarga de LLM
- Se ofrecen enlaces para descargar gratis algunos LLM que se sabe que funcionan bien con Emacs Copilot.
- El tamaño del modelo puede elegirse según el hardware disponible.
Archivos de caché
- Si decides cambiar de modelo, debes eliminar todos los archivos
FILE.cache creados en el sistema de archivos local.
Avisos
- Si usas Apple Silicon en macOS, debes tener Xcode instalado.
- Si usas zsh, puede que necesites ejecutarlo con
sh -c ./llamafile.
- En algunos sistemas Linux pueden producirse errores relacionados con el registro de
binfmt_misc.
SO y CPU compatibles
- llamafile es compatible con varios sistemas operativos y tiene requisitos mínimos de instalación.
- llamafile es compatible con CPU específicas y requiere un microprocesador AMD64 con conjunto de instrucciones SSSE3 o superior, o un microprocesador ARM64 con ARMv8a+.
Notas sobre los modelos
- Los ejemplos de llamafile proporcionados arriba no deben interpretarse como respaldo o recomendación de Mozilla sobre ningún modelo, licencia o conjunto de datos en particular.
Opinión de GN⁺
- Experiencia de edición innovadora: Emacs Copilot ofrece a los desarrolladores una nueva dimensión de asistencia para programar, con el potencial de mejorar significativamente la eficiencia y la productividad.
- Accesibilidad y personalización: Los usuarios pueden elegir el LLM y ajustar el entorno de Emacs según sus necesidades y preferencias, lo que permite construir un entorno de desarrollo personalizado.
- Compatibilidad técnica: Al ser compatible con varios sistemas operativos y CPU, Emacs Copilot puede ser usado por una amplia gama de usuarios, lo que impulsa la inclusión y la accesibilidad dentro de la comunidad de desarrolladores.
1 comentarios
Opiniones de Hacker News
Dudas sobre la utilidad de la integración de LLM/IDE
Agradecimiento por desarrollar herramientas LLM autoalojadas
Experiencia compartida sobre integración de LLM con Emacs
Experiencia ejecutando LLM en una MacBook Pro M1 Max
Crítica a la función is_prime de la demostración en video
Pregunta sobre compilar llamafile sin un ejecutable realmente portable en NixOS
Solicitud de una integración de LLM más general
Usuario de Vim comparte comando personalizado para integración con LLM
Pregunta sobre la ruta de actualización de Llamafile
Expresa interés en la integración de LLM y disposición a probarla