Один Ruby-гем, 12 провайдеров ИИ, 800 моделей — и затор у мейнтейнера

RubyLLM прячет раздутые клиенты всех провайдеров за единым интерфейсом. Продакшн-команды его хвалят — пока не приходит время сделать PR.

Вкратце

Одно API вместо двенадцати: OpenAI, Anthropic, Gemini, xAI, Mistral, DeepSeek, Ollama и другие — плюс чат, зрение, эмбеддинги, вызов инструментов и хук acts_as_chat для Rails на трёх зависимостях.

Реальные команды подтверждают, что запустили на нём прод, — и тут же называют проблемы: кеширование промптов ломается по-разному у каждого провайдера, а основатель Rubygems.org пишет, что мейнтейнер принимает вайб-кодированные PR, игнорируя нормальные.

Один интерфейс поверх дюжины раздутых клиентов

RubyLLM
RubyLLM

RubyLLM решает одну проблему: «Каждый провайдер ИИ поставляет свой раздутый клиент. Разные API. Разные форматы ответов.» Фреймворк объединяет 12+ провайдеров — OpenAI, Anthropic, Gemini, xAI, Mistral, DeepSeek, Ollama и другие — и 800+ моделей за единым Ruby-интерфейсом, опираясь всего на три зависимости: Faraday, Zeitwerk, Marcel.

Функциональность широкая: стриминговый чат, зрение, транскрипция аудио, генерация изображений через RubyLLM.paint, эмбеддинги, вызовы инструментов, открывающие Ruby-методы модели, структурированный JSON-вывод и Rails-интеграция acts_as_chat на ActiveRecord. Слоган лаконичный: «Чат, изображения, эмбеддинги, инструменты».

Продакшн-команды хвалят, затем перечисляют дыры

Отзывы в треде конкретные: компании называют живые продукты. Но самые ценные комментарии — оговорки. CTO, запустивший прод на RubyLLM, указал на пробел в наблюдаемости:

«Из минусов: было сложно наладить трассировку запросов, и есть паттерн, когда ретраи удаляют исходные модели, — история выглядит чистой, но не показывает точную последовательность API-вызовов.» — CTO Shogun, бывший инженер YC

Скептик указал на структурную слабость любой унифицирующей обёртки: детали провайдера просачиваются наружу.

«Кеширование промптов, схемы вызова инструментов, структурированный вывод и reasoning-токены настолько по-разному реализованы у провайдеров, что общий интерфейс тихо отбрасывает всё специфическое.» — комментатор, которому важно кеширование промптов

Самая острая критика поступила от человека со статусом в экосистеме:

«Мы используем RubyLLM около 6 месяцев… практически без успеха с точки зрения взаимодействия с мейнтейнером по PR, и замечаем, что принимается много вайб-кодированных PR, включая переписанные версии наших же PR.» — основатель Rubygems.org

Сквозная мысль: абстракция достаточно элегантна, чтобы компании поставили на неё продакшн, — и именно поэтому вопрос управления проектом, кто решает, что попадает в общий интерфейс, теперь важнее синтаксиса.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 24 из 32 Читать дальше
🚀Tech

Pico W за $4 стал беспроводным USB-адаптером без драйверов — Gemini говорил «невозможно»

Gemini признал проект нереализуемым. Автор потратил длинные выходные и миллион токенов Claude, доказал обратное, а потом опубликовал результат через сам же адаптер.

★ 251 · 💬 128 · gitlab.com · 3 мин