Я посвящаю себя отслеживанию каждого исследовательского проекта, каждого списка чтения, повестки дня и каждого набора задач и жизненных целей в виде простого текста, который можно гибко искать, индексировать и архивировать. Для меня способ сделать это — использовать Режим организации.

До сих пор в этом рабочем процессе отсутствовала интеграция с генеративным ИИ, таким как ChatGPT.

gptel для Emacs: канонический пакет?

Я начал время от времени взламывать свой собственный пакет с идеей записи совместных разговоров с LLM и превращения их в статьи базы знаний, проекты и грамотное программирование.

К счастью, я обнаружил пакет gptel @karthink и быстро понял, что он намного превзошел то, что я начал.

Этот пост посвящен интересным функциям и деталям. Я буду следить за этим в другом посте с «почему» и «как»!

Позвольте мне начать с моих самых ценных функций в этом пакете, а затем дать некоторые идеи об использовании gptel для различных рабочих процессов.

Функции

Радикальная приверженность простому тексту

Это означает настоящий обычный текст без специальных внеполосных метаданных.

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

Вы можете использовать ответ, чтобы начать чат, или просто добавить или изменить текст в документе. Вы можете открыть сохраненный файл из предыдущего сеанса чата, а затем вызвать gptel-режим, который определит контекст и позволит вам продолжить разговор с того места, где вы остановились.

Сообщество

Очень активный GitHub и вдумчивый и отзывчивый разработчик

Структурированный? Как-то структурировано? Все хорошо!

Используйте буферы организационного режима, режима уценки или буферы другого режима, если хотите.

Крючки и фильтры

Массируйте ответы от ИИ, чтобы придать любую структуру, которую вы предпочитаете

Несмотря на то, что вы можете сохранить все в текстовом режиме, у вас есть возможность использовать организационный режим, который дает преимущества исполняемого исходного кода, экспорта во многие форматы, назначения задач и многого другого. Markdown — это еще один вариант, любой режим кодирования, основанный на prog-mode, — это другой!

LLM очень искусны в создании кода Markdown, несколько менее совершенны в организационном режиме. Поэтому я запрашиваю модель для вывода в Markdown, а затем позволяю gptel преобразовать ее в режим организации. Включенная свободная от зависимостей функция Emacs Lisp для этого очень проста, поэтому я написал свою собственную функцию, которая вызывает Pandoc в ответе.

Безопасная и простая обработка ключей API

Меня сводит с ума, когда я вижу весь код в учебниках по кодированию, которые ожидают, что люди будут размещать токены API и другие учетные данные в тексте в коде. Менее опытные разработчики и даже опытные разработчики могут случайно отправить эти учетные данные в общедоступные репозитории.

Пакет Emacs auth-source — встроенная функция для безопасного управления учетными данными — является опцией gptel, которая делает хранилище ключей безопасным (оно может быть зашифровано) и помещает его за пределы любого каталога, который может быть проверен на GitHub!

Легкий доступ к вашим любимым подсказкам в виде «директив»

Используя настройку, вы можете поддерживать группу системных подсказок с клавишами и изменять их на лету в сеансе чата, используя интерфейс переходного режима.

Интерфейс переходного режима

Это пользовательский интерфейс выбора параметров, который использует Magit — приятно иметь его, поскольку, когда вы хотите настроить один параметр, такой как лимит токенов, вы также можете изменить температуру, модель и другие вещи.

Тем не менее, я не самый большой поклонник Transient как универсального UX. Например, для переключения системных подсказок (директив) я предпочитаю использовать встроенную функцию завершения-чтения, поэтому я просто добавил функцию, которая делает именно это.

Потоковая поддержка

Хотя может быть приятно видеть потоковую передачу текста, как вы это делаете в веб-интерфейсе ChatGPT, я не очень часто использую это в данный момент из-за моей потребности массировать ответ: перевод в режим организации, добавление заголовков и отступы структуры структура в хуке пост-ответа.

Выбор API и параметров API

(Желательная) цель на будущее — поддерживать гораздо больше, чем модели OpenAI.

Резюме

Короче говоря, для меня этот пакет — святой Грааль (я отказываюсь это использовать). Это только для текстового генеративного ИИ, пока только для API OpenAI, но он использует правильный подход для обеспечения гибкости и чистого подхода, свободного от зависимостей.

Моя следующая статья будет посвящена использованию организационного режима и пакета Denote для управления сбором знаний, исследовательскими проектами, статьями базы знаний, списками чтения, задачами и планированием. Я поделюсь кодом, чтобы он соответствовал моему рабочему процессу, в надежде вдохновить вас.

Если вам понравилась эта статья, пожалуйста, подпишитесь на меня здесь, на Medium. Я планирую написать гораздо больше, и это должно стать гиковским!