Git Product home page Git Product logo

ellama's Introduction

Ellama

License GPL 3 MELPA

Ellama is a tool for interacting with large language models from Emacs. It allows you to ask questions and receive responses from the LLMs. Ellama can perform various tasks such as translation, code review, summarization, enhancing grammar/spelling or wording and more through the Emacs interface. Ellama natively supports streaming output, making it effortless to use with your preferred text editor.

What's new

Installation

Install the package ellama from MELPA. Just M-x package-installEnter ellama Enter. By default it uses ollama provider and zephyr model. If you ok with it, you need to install ollama and pull zephyr. You can use ellama with other model or other llm provider. In that case you should customize ellama configuration like this:

(use-package ellama
  :init
  (setopt ellama-language "German")
  (require 'llm-ollama)
  (setopt ellama-provider
		  (make-llm-ollama
		   :chat-model "zephyr:7b-alpha-q5_K_M" :embedding-model "zephyr:7b-alpha-q5_K_M")))

Commands

ellama-chat

Ask Ellama about something by entering a prompt in an interactive buffer and continue conversation.

ellama-ask

Alias for ellama-chat. ellama-ask

ellama-ask-about

Ask Ellama about a selected region or the current buffer. ellama-ask-about

ellama-translate

Ask Ellama to translate a selected region or word at the point. ellama-translate

ellama-define-word

Find the definition of the current word using Ellama. ellama-define-word

ellama-summarize

Summarize a selected region or the current buffer using Ellama. ellama-summarize

ellama-code-review

Review code in a selected region or the current buffer using Ellama. ellama-code-review

ellama-change

Change text in a selected region or the current buffer according to a provided change.

ellama-enhance-grammar-spelling

Enhance the grammar and spelling in the currently selected region or buffer using Ellama. ellama-enhance-grammar-spelling

ellama-enhance-wording

Enhance the wording in the currently selected region or buffer using Ellama.

ellama-make-concise

Make the text of the currently selected region or buffer concise and simple using Ellama.

ellama-change-code

Change selected code or code in the current buffer according to a provided change using Ellama.

ellama-enhance-code

Change selected code or code in the current buffer according to a provided change using Ellama.

ellama-complete-code

Complete selected code or code in the current buffer according to a provided change using Ellama.

ellama-add-code

Add new code according to a description, generating it with a provided context from the selected region or the current buffer using Ellama.

ellama-render

Render the currently selected text or the text in the current buffer as a specified format using Ellama.

ellama-make-list

Create a markdown list from the active region or the current buffer using Ellama.

ellama-make-table

Create a markdown table from the active region or the current buffer using Ellama.

ellama-summarize-webpage

Summarize a webpage fetched from a URL using Ellama.

Configuration

The following variables can be customized for the Ellama client:

  • ellama-buffer: The default Ellama buffer name.
  • ellama-user-nick: The user nick in logs.
  • ellama-assistant-nick: The assistant nick in logs.
  • ellama-buffer-mode: The major mode for the Ellama logs buffer. Default mode is markdown-mode.
  • ellama-language: The language for Ollama translation. Default language is english.
  • ellama-provider: llm provider for ellama. Default provider is ollama with zephyr model. There are many supported providers: ollama, open ai, vertex, GPT4All. For more information see llm documentation
  • ellama-spinner-type: Spinner type for ellama. Default type is progress-bar.

Acknowledgments

Thanks Jeffrey Morgan for excellent project ollama. This project cannot exist without it.

Thanks zweifisch - I got some ideas from ollama.el what ollama client in Emacs can do.

Thanks Dr. David A. Kunz - I got more ideas from gen.nvim.

Thanks Andrew Hyatt for llm library. Without it only ollama would be supported.

ellama's People

Contributors

s-kostyaev avatar stardiviner avatar zhijia-zhang avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.