About pen.el (Prompt engineering in emacs)
Pen.el is an innovative tool designed to integrate the capabilities of large language models, such as OpenAI’s GPT-3 and EleutherAI’s GPT-J, directly into the Emacs environment. It’s essentially a Docker application based on Emacs, but it can also run as a server and integrate with other editors like Vim. The primary function of Pen.el is to generate functions from prompts that map Emacs’s features onto large language models. This allows users to centralize all their prompting tasks, including various NLP tasks for text or code, describing images, and even imagining images. The overarching goal of Pen.el is to evolve into a mini ‘imaginary’ operating system, integrating prompting into all facets of a Linux OS, enhancing or replacing components with imaginary counterparts.
Features of pen.el
- Integration with Large Language Models (LMs): Pen.el can incorporate LMs like GPT-3 or GPT-J into Emacs, generating functions from prompts that loosely map onto these LMs. These functions can be used in multiple configurable ways, both interactively and non-interactively.
- Centralization of Prompting Tasks: Users can centralize all their prompting tasks, including NLP tasks for text or code, describing images, and imagining images. It even has potential support for audio and video, with future prospects for VideoGPT integration.
- Payload System: This system allows users to send media to multi-modal models, facilitating the composition of prompting functions for any model or API.
- Graphical UI Support: While Pen.el emphasizes a textual interface, it does support a graphical UI. For instance, when opening a man page inside Pen, it can generate an imaginary page if the real one doesn’t exist.
- Built-in Prompting Functions: Some of the built-in ways to utilize prompting functions include simulating virtual life forms, browsing the imaginary web, programming in any conceivable language, interacting with imagined personalities, and even generating shell commands using natural language.
- Docker Integration: Pen.el operates within a Docker container, which is around 25GB in size. The project comprises mainly of Emacs Lisp, Bash scripts, and Clojure. It’s set up as a self-sustaining IDE for various languages, including Clojure, Haskell, Prolog, Python, Go, and Ethereum.
- Imaginary Web Browser: Named “LookingGlass,” this feature allows users to browse an imaginary version of the web.
- Inkw.el and Lalia: These are technologies that facilitate the encoding of text’s provenance and the creation of multi-modal prompt chains, respectively.
- Prompt Creation and Development: Pen.el aids in the creation, development, discovery, and utilization of prompts. It’s designed to be transparent and emphasizes keeping the human in the loop.
- P2P Sharing: Pen.el supports peer-to-peer sharing of prompts, allowing for decentralized access and collaboration.