480 - Vim, Neovim y ChatGPT en Linux
Te cuento como puedes integrar #ChatGPT con #Vim y #Neovim en #Linux para sacarles la máxima productividad a estas tres herramientas y exprimirlas
Estoy intentando introducir ChatGPT en mis rutinas diarias con la intención de aprovechar al máximo sus capacidades, y por supuesto mejorar mi productividad. No se trata de delegar todo lo que hago en esta herramienta, si no mas bien, delegar aquellas tareas mas tediosas y repetitivas. Y por supuesto, al ganar ese tiempo, puedo dedicar mi tiempo a aportar mas valor al resto de actividades que desempeño. En este sentido, como ya he comentado en mas de una ocasión, utilizo Vim y mayoritariamente Neovim, para escribir y redactar, tanto artículos, como libros, como guiones, etc. Así que he estado buscando distintas opciones para integrar ChatGPT con Neovim y poder exprimirlo al máximo. Así en este podcast, te quiero hablar de estas tres herramientas, Vim, Neovim y ChatGPT
Vim, Neovim y ChatGPT
Sobre Vim y Neovim
Los editores de texto son herramientas esenciales para programadores y desarrolladores de software. Desde la creación de la primera computadora personal, han existido numerosos editores de texto y muchos han sido muy populares. Sin embargo, algunos editores de texto han ganado una gran cantidad de seguidores, como es el caso de Vim y su sucesor, NeoVim. Estos editores se han convertido en la elección preferida para muchos programadores y desarrolladores debido a sus múltiples ventajas y características únicas.
La primera gran ventaja de Vim y NeoVim es que están diseñados para trabajar con rapidez y eficacia en modo texto, sin necesidad de utilizar el ratón o los menús. Estos editores son conocidos por su capacidad de edición de texto en modo texto completo, lo que significa que todos los comandos son introducidos por el teclado. En lugar de utilizar el ratón para seleccionar el texto, los usuarios de Vim y NeoVim utilizan comandos de teclado para mover el cursor y seleccionar texto. Esto permite a los usuarios de Vim y NeoVim trabajar más rápido y ser más productivos, ya que no necesitan mover sus manos entre el teclado y el ratón.
Por otro lado, otra ventaja de Vim y NeoVim es su gran capacidad de personalización. Los usuarios de estos editores pueden personalizar su experiencia de edición de texto para adaptarla a sus necesidades específicas. Esto puede incluir la personalización de los colores, la asignación de teclas personalizadas y la creación de scripts para automatizar tareas repetitivas. Los usuarios también pueden instalar una amplia gama de complementos y extensiones para ampliar aún más la funcionalidad de estos editores. En resumen, Vim y NeoVim son muy personalizables y pueden adaptarse a las necesidades específicas de cada usuario.
Además, otra característica de estas herramientas es su capacidad para manejar grandes archivos de texto con facilidad. Estos editores pueden manejar archivos de texto de varios gigabytes con facilidad, algo que no es posible con muchos editores de texto tradicionales. Además, pueden realizar búsquedas y reemplazos de texto en grandes archivos de texto de manera rápida y eficiente. Esto es especialmente útil para aquellos que trabajan con archivos de registro, archivos de configuración y otros archivos de texto grandes.
Vim y NeoVim también son muy eficientes en términos de recursos del sistema. Estos editores son muy ligeros y pueden funcionar en máquinas con recursos limitados, algo que no es posible con muchos editores de texto modernos. Además, no tienen una interfaz gráfica de usuario pesada que consuma muchos recursos del sistema. En resumen, Vim y NeoVim son muy eficientes en términos de recursos del sistema y pueden funcionar en máquinas con recursos limitados.
Otra gran ventaja de Vim y NeoVim es su capacidad para trabajar en modo de terminal. Los usuarios pueden acceder a estos editores de texto a través de la línea de comandos, lo que significa que pueden trabajar con ellos en una variedad de sistemas operativos, incluyendo sistemas Linux, macOS y Windows.
¿Como me puede beneficiar utilizar Neovim con ChatGPT?
Neovim es un editor de texto muy potente y versátil que puede ser utilizado para una amplia variedad de tareas, desde la edición de código hasta la escritura de documentos. Aunque puede ser utilizado de manera independiente, también puede ser utilizado en conjunto con otras herramientas para maximizar su eficacia. En este sentido, aquí te presento algunas formas en que puedes beneficiarte al utilizar Neovim con ChatGPT:
- Edición de texto en línea: Si estás utilizando ChatGPT para escribir texto en línea, puedes utilizar Neovim para editar el texto en línea en el navegador. Neovim puede ser utilizado en una terminal de línea de comandos, lo que significa que puedes utilizarlo en conjunto con la terminal en el navegador para editar texto en línea. Esto puede ser especialmente útil si necesitas editar texto mientras trabajas en ChatGPT, sin tener que cambiar constantemente de ventana o pestaña.
- Personalización: Neovim es altamente personalizable, lo que significa que puedes adaptar su configuración para que se ajuste a tus necesidades específicas. Puedes personalizar el tema, los atajos de teclado, los complementos y mucho más. Al utilizar Neovim en conjunto con ChatGPT, puedes personalizar su configuración para que se adapte a tus necesidades específicas mientras trabajas en el editor de texto en línea.
- Acceso a complementos y extensiones: Neovim es compatible con una amplia variedad de complementos y extensiones, lo que significa que puedes acceder a una amplia gama de herramientas y funcionalidades adicionales. Al utilizar Neovim en conjunto con ChatGPT, puedes acceder a complementos y extensiones que te ayuden a trabajar de manera más eficiente y productiva, como por ejemplo, autocompletado de código, resaltado de sintaxis y mucho más.
- Eficiencia: Neovim es un editor de texto muy eficiente y ligero, lo que significa que puede funcionar en máquinas con recursos limitados. Esto puede ser especialmente útil si estás trabajando en una máquina con recursos limitados mientras utilizas ChatGPT. Al utilizar Neovim en conjunto con ChatGPT, puedes asegurarte de que tu editor de texto no consuma demasiados recursos del sistema, lo que puede ayudar a mejorar el rendimiento y la eficiencia de tu trabajo.
¿Que son los prompts?
Los prompts para ChatGPT son fragmentos de texto que se utilizan como inicio de una conversación con un modelo de lenguaje de inteligencia artificial como ChatGPT. Estos prompts están diseñados para proporcionar al modelo información sobre el tipo de respuesta que se espera, y para ayudarlo a generar una respuesta coherente y relevante.
En general, los prompts para ChatGPT se componen de una o varias frases cortas que describen la situación o el contexto de la conversación, y que proporcionan al modelo información relevante sobre el tema y el tono de la conversación. Algunos ejemplos de prompts para ChatGPT podrían ser:
- «¿Qué piensas sobre…?»
- «¿Podrías ayudarme a entender…?»
- «Cuéntame más sobre…»
- «Me gustaría saber tu opinión sobre…»
- «¿Qué consejos me darías para…?»
- «Quiero hablar sobre…»
Estos prompts pueden ser utilizados en una amplia variedad de situaciones, desde la generación de respuestas automáticas para chatbots hasta la generación de textos para la creación de contenido. Al utilizar un prompt específico, el modelo de lenguaje puede ser entrenado para generar respuestas más precisas y coherentes, y para ajustar su estilo y tono de acuerdo con el contexto de la conversación.
Es importante tener en cuenta que los prompts para ChatGPT no son una solución única para todas las situaciones de generación de texto. Dependiendo del tipo de conversación o del tipo de texto que se desea generar, puede ser necesario adaptar el prompt para que sea más específico y relevante. Además, también es importante prestar atención a la calidad de los datos de entrenamiento y al modelo de lenguaje utilizado para generar las respuestas, ya que estos factores pueden tener un impacto significativo en la calidad y relevancia de las respuestas generadas.
Así, por ejemplo, algunos ejemplos de prompt mas elaborados pueden ser los siguientes,
- Creación de contenido: «Estoy buscando inspiración para un artículo sobre la importancia de la inteligencia emocional en el liderazgo. ¿Podrías ayudarme a desarrollar algunas ideas clave para incluir en mi artículo?»
- Creación de guiones de videojuegos: «Estoy trabajando en un nuevo juego de aventuras ambientado en una isla misteriosa. Necesito ayuda para desarrollar la trama y crear personajes interesantes. ¿Qué ideas tienes para la trama y los personajes principales?»
- Creación de contenido para redes sociales: «Necesito crear un conjunto de publicaciones para promocionar nuestro nuevo producto en Instagram. ¿Podrías ayudarme a crear algunos mensajes llamativos y atractivos que generen interés entre nuestro público objetivo?»
- Creación de chatbots: «Estamos desarrollando un chatbot para ayudar a los estudiantes universitarios a encontrar respuestas a sus preguntas sobre el proceso de admisión. ¿Podrías ayudarnos a crear una lista de preguntas frecuentes y respuestas relevantes para incluir en nuestro chatbot?»
- Creación de respuestas automáticas para atención al cliente: «Nuestra empresa está buscando una forma de mejorar nuestro servicio de atención al cliente a través de respuestas automáticas. ¿Podrías ayudarnos a crear una serie de respuestas para preguntas frecuentes y problemas comunes que nuestros clientes puedan tener?»
Algunos prompts de utilidad
En este sentido he aprovechado para traducir algunos prompts awesomicos y poder utilizarlos directamente con este complemento para Neovim. Estos prompts los puedes encontrar en mi repositorio de GitHub para que los utilices como consideres. Estos prompts son una daptación de los que puedes encontrar en este otro repositorio de GitHub.
ChatGPT.nvim
ChatGPT es un complemento de Neovim que te permite interactuar con el modelo de lenguaje GPT-3 de OpenAI. Con ChatGPT, puedes hacer preguntas y obtener respuestas de GPT-3 en tiempo real.
Instalación y configuración
Tienes que tener instalado curl
y por otro lado tienes que establecer la siguiente varable de entorno OPENAI_API_KEY
. Lo siguiente es añadirlo, y esto dependerá de tu gestor de paquetes. En mi caso, actualmente estoy utilzando Lazy
, y queda de la siguiente forma,
require("chatgpt").setup({
welcome_message = WELCOME_MESSAGE,
loading_text = "cargando",
question_sign = "", -- you can use emoji if you want e.g. 🙂
answer_sign = "ﮧ", -- 🤖
max_line_length = 120,
yank_register = "+",
chat_layout = {
relative = "editor",
position = "50%",
size = {
height = "80%",
width = "80%",
},
},
settings_window = {
border = {
style = "rounded",
text = {
top = " Settings ",
},
},
},
chat_window = {
filetype = "chatgpt",
border = {
highlight = "FloatBorder",
style = "rounded",
text = {
top = " ChatGPT ",
},
},
},
chat_input = {
prompt = " ",
border = {
highlight = "FloatBorder",
style = "rounded",
text = {
top_align = "center",
top = " Prompt ",
},
},
},
openai_params = {
model = "gpt-3.5-turbo",
frequency_penalty = 0,
presence_penalty = 0,
max_tokens = 300,
temperature = 0,
top_p = 1,
n = 1,
},
openai_edit_params = {
model = "code-davinci-edit-001",
temperature = 0,
top_p = 1,
n = 1,
},
keymaps = {
close = { "<C-c>" },
submit = "<C-Enter>",
yank_last = "<C-y>",
yank_last_code = "<C-k>",
scroll_up = "<C-u>",
scroll_down = "<C-d>",
toggle_settings = "<C-o>",
new_session = "<C-n>",
cycle_windows = "<Tab>",
-- in the Sessions pane
select_session = "<Space>",
rename_session = "r",
delete_session = "d",
},
predefined_chat_gpt_prompts = "https://raw.githubusercontent.com/atareao/prompts-para-chatgpt/main/prompts.csv",
actions_paths = {"~/.config/nvim/custom_actions.json"}
})
Como ves he modificado el parámetro predefined_chat_gpt_prompts
, para que me traiga mis propios prompts.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.