← На главную

RubyLLM объединяет OpenAI, Anthropic и Ollama под единым API

24.06.2026 14:41 · hackernews

RubyLLM — это Ruby-фреймворк, который закрывает вопрос с AI-провайдерами. Вместо того чтобы тащить отдельный клиент под OpenAI, отдельный под Anthropic, отдельный под Ollama и мучиться с разными API, форматами ответов и конвенциями, RubyLLM даёт один красивый интерфейс. Всего три зависимости: Faraday, Zeitwerk и Marcel.

С ним можно просто спрашивать, анализировать любые файлы — картинки, видео, аудио, PDF, CSV, JSON, код. Несколько файлов сразу, стриминг ответов, генерация изображений (RubyLLM.paint), эмбеддинги (RubyLLM.embed), транскрипция (RubyLLM.transcribe), модерация (RubyLLM.moderate). Можно дать AI вызывать свои Ruby-методы через инструменты, а агенты на RubyLLM::Agent — это готовые ассистенты с инструкциями и инструментами. Структурированный вывод через схемы (RubyLLM::Schema) — просто описал поля, и JSON сам приходит.

Под капотом модельный реестр на 800+ моделей с автоопределением возможностей и цен. Поддерживаются OpenAI, xAI, Anthropic, Gemini, VertexAI, Bedrock, DeepSeek, Mistral, Ollama, OpenRouter, Perplexity, GPUStack и любой OpenAI-совместимый API. Extended thinking — можно контролировать, просматривать и сохранять размышления модели.

Установка — добавил в Gemfile, bundle install, сконфигурил ключи в RubyLLM.configure. Для Rails — генератор ruby_llm:install, миграции, загрузка моделей. Опционально — ruby_llm:chat_ui, который даёт готовый интерфейс чата по адресу /chats. В модели act_as_chat включает ActiveRecord-интеграцию: можно создать Chat.create!(model: "claude-sonnet-4") и сразу спрашивать с файлами.

Всё работает на фьючерах (Fiber-based concurrency), стриминг — через блоки. Код читается как обычный Ruby, никакой магии.

Читать оригинал →