by Darren Burns (community) OpenAI, Anthropic, Ollama, любые LLM
Красивый TUI-клиент для чата с LLM прямо в терминале. Написан на Python с помощью Textual. Несколько бесед в разных вкладках, история, экспорт — без браузера. Особенности: - Вкладки: несколько разговоров одновременно - Поддержка OpenAI, Anthropic Claude, Ollama, Groq - Syntax highlighting кода в ответах - Markdown-рендеринг в терминале - Persistent история через SQLite - Экспорт в Markdown - Настраиваемые системные промпты
# pip: pip install elia-chat # Запуск: elia # Конфиг ~/.config/elia/config.toml: [default_model] name = "claude-opus-4-5" provider = "anthropic" # С Ollama: elia # выбрать локальную модель в меню
Быстрый, ориентированный на клавиатуру интерфейс терминала для взаимодействия с большими языковыми моделями.
Общайтесь с Claude 3, ChatGPT и локальными моделями, такими как Llama 3, Phi 3, Mistral и Gemma.
elia — это приложение для взаимодействия с LLM, которое работает полностью в вашем терминале и разработано с акцентом на клавиатуру, эффективность и удовольствие от использования!
Оно хранит ваши разговоры в локальной базе данных SQLite и позволяет взаимодействовать с различными моделями.
Общайтесь с проприетарными моделями, такими как ChatGPT и Claude, или с локальными моделями, работающими через ollama или LocalAI.
Установите Elia с помощью pipx:
pipx install --python 3.11 elia-chat
В зависимости от модели, которую вы хотите использовать, вам может потребоваться установить одну или несколько переменных окружения (например, OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY и т.д.).
Запустите Elia из командной строки:
elia
Запустите новый чат встроенно (под вашим приглашением) с помощью -i/--inline:
elia -i "Что такое Дзен Пайтона?"
Запустите новый чат в полноэкранном режиме:
elia "Расскажи мне интересный факт о ящерицах!"
Укажите модель через командную строку с помощью -m/--model:
elia -m gpt-4o
Параметры можно комбинировать — вот как запустить чат с Gemini 1.5 Flash встроенном режиме (требуется переменная окружения GEMINI_API_KEY).
elia -i -m gemini/gemini-1.5-flash-latest "Как мне вызвать код Rust из Python?"
ollama.ollama pull llama3.ollama serve.Расположение файла конфигурации указано в нижней части
окна опций (ctrl+o).
Пример файла ниже демонстрирует доступные опции, а также примеры того, как добавить новые модели.
# ID или имя модели, которая выбирается по умолчанию при запуске
default_model = "gpt-4o"
# системный промпт при запуске
system_prompt = "Вы — полезный помощник, который говорит как пират."
# выберите из "nebula", "cobalt", "twilight", "hacker", "alpine", "galaxy", "nautilus", "monokai", "textual"
theme = "galaxy"
# измените тему подсветки синтаксиса кода в сообщениях
# выберите из https://pygments.org/styles/
# по умолчанию "monokai"
message_code_theme = "dracula"
# пример добавления локальной поддержки llama3
# здесь обязательное поле — только `name`.
[[models]]
name = "ollama/llama3"
# пример модели, работающей на локальном сервере, например, LocalAI
[[models]]
name = "openai/some-model"
api_base = "http://localhost:8080/v1"
api_key = "api-key-if-required"
# пример добавления модели groq с показом некоторых других полей
[[models]]
name = "groq/llama2-70b-4096"
display_name = "Llama 2 70B" # отображается в интерфейсе
provider = "Groq" # отображается в интерфейсе
temperature = 1.0 # высокая temp = высокая вариативность вывода
max_retries = 0 # количество попыток при неудачном запросе
# пример нескольких экземпляров одной модели, например, у вас может
# быть 'рабочая' и 'персональная' организация OpenAI.
[[models]]
id = "work-gpt-3.5-turbo"
name = "gpt-3.5-turbo"
display_name = "GPT 3.5 Turbo (Работа)"
[[models]]
id = "personal-gpt-3.5-turbo"
name = "gpt-3.5-turbo"
display_name = "GPT 3.5 Turbo (Личное)"
Добавьте пользовательский YAML-файл темы в каталог тем.
Вы можете найти расположение каталога тем, нажав ctrl+o на главном экране и найдя строку Themes directory.
Вот пример YAML-файла темы:
name: example # используйте это имя в вашем файле конфигурации
primary: '#4e78c4'
secondary: '#f39c12'
accent: '#e74c3c'
background: '#0e1726'
surface: '#17202a'
error: '#e74c3c' # сообщения об ошибках
success: '#2ecc71' # сообщения об успехе
warning: '#f1c40f' # предупреждения
В настоящее время привязки клавиш нельзя изменить. Терминалы также довольно ограничены в поддерживаемых привязках клавиш. Например, нажатие Cmd+Enter для отправки сообщения невозможно (хотя мы можем поддержать протокол, позволяющий это делать в некоторых терминалах в будущем).
На данный момент я рекомендую вам настроить любую желаемую комбинацию клавиш на уровне эмулятора терминала для отправки \n.
Вот пример с использованием iTerm:
При такой настройке нажатие Cmd+Enter отправит сообщение в LLM, а нажатие только Enter создаст новую строку.
Экспортируйте ваши беседы в JSON-файл с помощью интерфейса ChatGPT, а затем импортируйте их с помощью команды import.
elia import 'path/to/conversations.json'
elia reset
pipx uninstall elia-chat