Перейти к основному содержимому

Чат

Chat system Elftia — это основной интерфейс взаимодействия приложения. Она поддерживает параллельные разговоры в нескольких вкладках, ветвление и переключение сообщений, streaming responses в реальном времени, загрузку файловых вложений, организацию и управление sessions, а также богатые slash commands и keyboard shortcuts.

Сценарии использования

  • Вести многоходовые разговоры с AI, чтобы получать предложения, ответы или совместно работать над задачами
  • Открывать несколько вкладок одновременно и свободно переключаться между разными темами
  • Если ответ AI не устраивает, сгенерировать его заново и использовать branch navigation для сравнения разных результатов
  • Загружать изображения, документы и другие вложения, чтобы AI мог понимать и анализировать содержимое файлов
  • Использовать slash commands для быстрого выполнения встроенных операций
  • Использовать символ @, чтобы ссылаться на файлы project и передавать AI контекст кода
  • Использовать //, чтобы быстро вставлять заранее заданные prompt templates

Несколько вкладок

Elftia поддерживает одновременное открытие нескольких chat-вкладок. У каждой вкладки есть собственный независимый контекст session и история сообщений.

Шаги

  1. Нажмите кнопку + на панели вкладок, чтобы создать новую вкладку
  2. Начните независимый разговор в новой вкладке
  3. Нажимайте разные вкладки, чтобы переключаться между разговорами
  4. Щелкните вкладку правой кнопкой мыши, чтобы закрыть или переименовать ее

Сообщения, контекст и состояние каждой вкладки полностью независимы и не мешают друг другу.

Tab Keep-alive (0.1.8)

Переключение вкладок не приводит к потере состояния:

  • При уходе с вкладки и возвращении сохраняются позиция прокрутки, любой неотправленный черновик и streaming state
  • Несколько вкладок могут одновременно получать данные от одного и того же LLM, не перезаписывая друг друга (stream buffers изолированы по sessionId)
  • Polling и анимации фоновых вкладок автоматически приостанавливаются для экономии CPU

Страница настроек, страница Agents и другие страницы вне чата также применяют keep-alive: если вы переключились в настройки во время редактирования и вернулись, сохраняются активная вкладка, положение прокрутки и измененные поля.

Ветвление сообщений

Ветвление сообщений — одна из основных функций chat system Elftia. Когда вы повторно генерируете ответ AI или редактируете отправленное сообщение, система автоматически создает ветку, которая сохраняет все исторические версии, чтобы вы могли просматривать их и переключаться между ними в любое время.

Как создаются ветки

ДействиеРезультат
Повторная генерация ответаСоздает новую ветку в текущей позиции сообщения AI, сохраняя исходный ответ
Редактирование отправленного сообщенияСоздает новую ветку с точки редактирования; последующий разговор продолжается на основе измененного содержимого

Branch Navigation

Когда у сообщения есть несколько веток, рядом с ним появляется компонент branch navigation, показывающий:

  • Иконка ветки — указывает, что у текущего сообщения есть несколько версий
  • Текущий индекс / всего веток — например, 2 / 3 означает, что есть 3 ветки, и вы просматриваете 2-ю
  • Стрелки влево/вправо — нажмите, чтобы переключаться между ветками

Шаги

  1. Наведите курсор на ответ AI и нажмите кнопку Regenerate на toolbar
  2. Система сгенерирует новый ответ и создаст новую ветку
  3. Рядом с сообщением появится компонент branch navigation (например, 1 / 2)
  4. Нажимайте стрелки влево/вправо, чтобы просматривать разные версии ответа
  5. Можно выполнять повторную генерацию несколько раз; каждая генерация добавляет новую ветку

:::tip Ветки никогда не теряются Все ветки сохраняются. Даже если закрыть приложение и открыть его снова, история веток останется полностью целой. :::

Streaming Responses

Ответы AI используют streaming-передачу. Содержимое сообщения отображается постепенно в реальном времени в интерфейсе чата, а не только после завершения полной генерации.

Поведение

  • Пока ответ генерируется, область сообщения обновляется в реальном времени
  • Индикатор загрузки внизу сообщения показывает, что ответ все еще генерируется
  • Во время генерации можно в любой момент нажать кнопку Stop, чтобы прервать ответ
  • Частично сгенерированные ответы сохраняются
  • Форматирование Markdown (code blocks, списки, headings и т. д.) отображается сразу по мере поступления содержимого
  • Процесс reasoning: reasoning от inference models отображается в сворачиваемой области над финальным ответом

Контракт streaming state

У каждого сообщения в streaming есть маркеры data-streaming и data-stream-phase на корневом DOM-элементе, что позволяет внешним драйверам (elftia-cli) надежно ждать завершения сообщения. data-streaming равно "true", пока любой из процессов reasoning / tool-call / content typing еще выполняется. Это означает, что отложенный результат tool-call не приводит к ошибочному переключению streaming state в "false".

Рендеринг богатого содержимого

Chat system поддерживает inline-рендеринг нескольких типов богатого содержимого:

СодержимоеПоведение рендеринга
MarkdownHeadings, списки, code blocks (syntax highlighting + копирование в один клик), таблицы, blockquotes
Изображения / видеоInline preview; изображения можно открыть в Lightbox для просмотра в полном размере
AudioВстроенный player
Процесс reasoningСворачиваемая область, по умолчанию свернута
Tool callsНазвание tool + arguments + results, сворачиваемые
Inline HTMLПри обнаружении полного HTML-документа (содержащего <!DOCTYPE> / <html>) он безопасно отображается в iframe (sandbox не разрешает same-origin)
Question Form (только design session)Сообщения в стиле опроса с radio buttons, checkboxes, текстовыми полями и direction cards; отправка превращает form в ответ для продолжения разговора
JSONАвтоматически определяется и отображается в форматированном виде

Загрузка вложений

Chat поддерживает несколько способов загрузки вложений, чтобы AI мог анализировать содержимое файлов.

Способы загрузки

СпособКак
Drag and dropПеретащите файлы из file manager в область ввода чата
PasteИспользуйте Ctrl+V, чтобы вставить изображения из clipboard
File pickerНажмите кнопку вложения рядом с полем ввода и выберите файл в dialog

Поддерживаемые типы файлов

  • Изображения — PNG, JPG, GIF, WebP и другие распространенные форматы изображений
  • Документы — PDF, TXT, Markdown и другие text files
  • Файлы кода — файлы исходного кода на разных programming languages

Загруженные вложения отображаются как миниатюры предварительного просмотра над полем ввода; вы можете нажать на них, чтобы удалить перед отправкой.

Управление sessions

Elftia предоставляет комплексные функции организации и управления sessions, чтобы помочь эффективно управлять большим числом разговоров.

Папки

  • Создавайте папки в sidebar, чтобы организовывать связанные sessions в группы
  • Поддерживаются многоуровневые вложенные структуры папок
  • Перетаскивайте sessions в папки, чтобы классифицировать их

Tags

  • Добавляйте пользовательские tags к sessions для удобной категоризации
  • Быстро фильтруйте связанные sessions по tag

Поиск

  • Введите keywords в поле поиска вверху sidebar
  • Поиск охватывает как названия sessions, так и содержимое сообщений
  • Результаты поиска подсвечивают совпадения в реальном времени

Закрепленные sessions

  • Щелкните session правой кнопкой мыши и выберите Pin, чтобы держать ее наверху
  • Закрепленные sessions всегда отображаются вверху списка и не смещаются вниз новыми sessions

Command Menu (/ Slash Commands)

Ввод / в поле ввода открывает command menu, предоставляющее набор быстрых действий.

Шаги

  1. Введите / в поле ввода чата
  2. Появится command menu со списком доступных commands
  3. Продолжайте вводить текст, чтобы фильтровать commands
  4. Используйте стрелки вверх/вниз, чтобы выбрать command; нажмите Enter для выполнения
  5. Или нажмите command напрямую, чтобы выполнить ее

Встроенные commands

CommandОписание
/clearОчистить историю сообщений текущей session
/helpПоказать справочную информацию
/modelБыстро переключить используемую AI model
/settingsОткрыть панель настроек

:::info Пользовательские commands Помимо встроенных commands, система Agent и plugins также могут регистрировать пользовательские commands. Доступные commands зависят от текущего активного Agent и установленных plugins. Command palette (slash palette) поддерживает fuzzy search; нажмите Tab для автодополнения arguments. :::

Ссылки на файлы (символ @)

Ввод @ в поле ввода позволяет ссылаться на файлы в project, добавляя содержимое файла в контекст сообщения.

Шаги

  1. Введите @ в поле ввода чата
  2. Появится выпадающий список выбора файла, показывающий список файлов текущего project
  3. Введите keyword имени файла для фильтрации
  4. Используйте стрелки вверх/вниз, чтобы выбрать файл; нажмите Enter для подтверждения
  5. Ссылка на файл вставляется как маркер в поле ввода
  6. Когда вы отправите сообщение, содержимое указанного файла будет отправлено AI вместе с ним

:::tip Сценарий использования Функция ссылок на файлы особенно полезна в разговорах, связанных с кодом. Вы можете ссылаться на файлы исходного кода, чтобы AI мог анализировать логику кода, находить bugs или предлагать optimizations. :::

Быстрая вставка prompt (// Double Slash)

Ввод // в поле ввода позволяет быстро вставить заранее заданный prompt template.

Шаги

  1. Введите // в поле ввода чата
  2. Появится меню быстрой вставки prompt
  3. Меню показывает избранные prompts, недавно использованные prompts и prompt chains
  4. Выберите prompt template
  5. Если template содержит variables (например, {{language}}), появится форма заполнения variables
  6. После заполнения variables итоговое содержимое prompt вставляется в поле ввода

Подробности управления prompts см. в документации Prompts.

Keyboard Shortcuts

ShortcutДействие
EnterОтправить сообщение (режим по умолчанию)
Ctrl+EnterОтправить сообщение (режим Ctrl+Enter) или вставить перенос строки (режим по умолчанию)
Shift+EnterВставить перенос строки в поле ввода
EscЗакрыть command menu или меню выбора файла
Up / DownПереместить выбор в command menu или file menu
Ctrl+VВставить текст или изображение

Настройка режима отправки

Вы можете переключить keyboard shortcut для отправки сообщений в настройках:

РежимПоведение клавиши EnterПоведение клавиши Ctrl+Enter
Enter to send (по умолчанию)Отправить сообщениеВставить перенос строки
Ctrl+Enter to sendВставить перенос строкиОтправить сообщение

Переключите режим отправки в Settings > General.

Полный поток разговора

Вот типичный поток полного разговора:

Type message → Send → Streaming response displayed in real time

Satisfied with the reply?
├── Yes → Continue the conversation
└── No → Regenerate (creates a branch)

Branch navigation to compare versions

Choose the preferred version and continue

FAQ

ПроблемаРешение
Нет ответа после отправки сообщенияПроверьте, что у LLM provider настроен API Key и что сетевое подключение работает
Streaming response прерванВероятно, колебание сети или timeout API; попробуйте повторно сгенерировать ответ
Не удалось загрузить вложениеПроверьте, не превышает ли размер файла лимит и поддерживается ли формат файла
Command menu не появляетсяУбедитесь, что / введен в начале поля ввода или после пробела
Branch navigation не отображаетсяКомпонент navigation появляется только когда у сообщения больше одной ветки
Ссылка на файл @ не реагируетСначала нужно открыть project; функция ссылок на файлы зависит от контекста project

Связанные ссылки

  • Конфигурация LLM Provider — настройка AI models и API Keys
  • Prompts — управление и использование prompt templates
  • Agent — узнать о системе Agent и пользовательских commands
  • Web Search — интеграция web search в реальном времени в разговоры