Развитие инструментов для работы с большими языковыми моделями (LLM) движется семимильными шагами. То, что вчера казалось сложным архитектурным решением, сегодня становится стандартом де-факто для разработчиков. В центре этого процесса находится Simon Willison и его популярный командный интерфейс llm, который уже несколько лет служит мостом между обычными пользователями и мощью современных нейросетей. В конце августа вышла новая версия, которая не просто добавляет новые функции, но и фундаментально меняет подход к управлению конфигурацией и безопасностью запросов.
Эта релизная версия знаменует собой переход на новую экосистему зависимостей и внедрение более гибких паттернов работы с промптами. Для тех, кто привык работать с LLM через терминал, это обновление открывает новые горизонты: от более стабильного подключения к API до возможности создавать сложные, многослойные сценарии взаимодействия с моделями. Давайте разберем каждое изменение подробно, чтобы понять, как это влияет на вашу повседневную работу с искусственным интеллектом.
01Технический фундамент: Переход на новую версию библиотеки и HTTP-клиента
Первое и, возможно, самое важное изменение в новой версии касается базовой инфраструктуры. Разработчики полностью обновили зависимость от библиотеки OpenAI Python, перейдя на третью мажорную версию. Это не просто обновление номеров версий; это смена парадигмы в том, как клиентское приложение взаимодействует с серверами OpenAI.
Параллельно с этим произошло переключение HTTP-клиента с популярной библиотеки httpx на httpx2. Почему это важно? Новая библиотека предлагает улучшенную производительность, лучшую обработку асинхронных операций и более строгую типизацию, что критически важно для стабильности работы с LLM, где задержки и ошибки сети могут стоить времени и денег. Переход на httpx2 обеспечивает более надежную сетевую прослойку, что особенно актуально при частых запросах к моделям.
llm как библиотеку в своем коде. Однако для большинства пользователей, работающих через командную строку, этот процесс будет полностью прозрачным. Разработчик уже выпустил быстрое исправление для устранения совместимости, но новая версия представляет собой более комплексное и долгосрочное решение этой проблемы.Этот технический апгрейд закладывает фундамент для будущих функций. Более современный стек позволяет легче интегрировать новые API-методы, которые появляются в экосистеме OpenAI, и обеспечивает лучшую поддержку асинхронности, что становится все более востребованным при работе с агентами и пакетной обработкой данных.

02Революция в управлении ключами API
Одной из самых обсуждаемых новинок стала поддержка параметра --key в командах llm embed и llm embed-multi. Ранее управление ключами доступа к моделям встраивания (embedding models) было менее гибким. Теперь же вы можете передавать ключ API непосредственно в командной строке для каждого вызова, не изменяя глобальные настройки или переменные окружения.
Это изменение затрагивает не только командную строку, но и программный интерфейс. Методы Python EmbeddingModel.embed(), EmbeddingModel.embed_multi(), а также методы коллекций Collection.embed() и Collection.embed_multi() теперь принимают аргумент key=. Это позволяет передавать ключ, разрешенный для конкретного вызова, плагинам встраивания, не изменяя общее состояние модели. Такой подход обеспечивает безопасность и гибкость: вы можете использовать разные ключи для разных задач, не рискуя случайно подменить основной ключ в конфигурации.
Существующие плагины, которые читают ключ через self.key, продолжают работать благодаря механизму обратной совместимости. Это означает, что вам не нужно срочно переписывать все свои кастомные плагины, но при этом вы получаете доступ к новым возможностям управления доступом.
Теперь модели встраивания используют тот же паттерн управления ключами, что и обычные LLM-модели. Это унификация упрощает жизнь разработчикам: единый подход к безопасности и аутентификации для всех типов моделей. Если вы привыкли передавать ключи через переменные окружения или файлы конфигурации, вы можете продолжать так делать, но возможность переопределять ключ на лету через --key открывает новые сценарии использования, особенно в автоматизированных пайплайнах.

03Мощь комбинирования шаблонов
Самая интересная и творческая возможность, появившаяся в новой версии, — это возможность повторять флаг -t/--template для объединения шаблонов в заданном порядке. Раньше шаблон был чем-то монолитным: вы выбирали один шаблон, и он определял весь контекст запроса. Теперь же вы можете создавать модульные шаблоны и комбинировать их как конструктор LEGO.
Как это работает на практике? Представьте, что у вас есть два разных шаблона. Первый шаблон, назовем его lhigh, настроен на использование конкретной модели с высокими параметрами рассуждения. Второй шаблон, pelican, содержит сам промпт: «Сгенерируй SVG-изображение пеликана, едущего на велосипеде».
Раньше вам пришлось бы либо дублировать настройки модели в каждом промпте, либо создавать один огромный шаблон, который был бы негибким. Теперь же вы можете сохранить эти настройки отдельно:
llm -m gpt-5.6-luna -o reasoning_effort high --save lhigh
llm "Generate an SVG of a pelican riding a bicycle" --save pelicanА затем запустить их вместе, просто пе
Источник: Simon Willison ↗
