RubyLLM: Единый фреймворк Ruby для всех крупных AI-провайдеров

RubyLLM 1.16.0 — это Ruby-фреймворк, предоставляющий единый интерфейс для всех основных AI-провайдеров, включая OpenAI, xAI, Anthropic, Gemini, VertexAI, Bedrock, DeepSeek, Mistral, Ollama, OpenRouter, Perplexity, GPUStack и любые API, совместимые с OpenAI. Поддерживает чат, зрение, аудио, документы, генерацию изображений, эмбеддинги, модерацию, инструменты, агентов, структурированный вывод, стриминг и интеграцию с Rails.
Быстрый старт
Добавьте в Gemfile: gem 'ruby_llm', затем выполните bundle install.
Настройте API-ключи:
RubyLLM.configure do |config|
config.openai_api_key = ENV['OPENAI_API_KEY']
end
Ключевые возможности
- Чат:
RubyLLM.chat.ask('вопрос') - Зрение: Анализ изображений и видео —
chat.ask('Опиши', with: 'photo.jpg') - Аудио: Расшифровка и понимание речи —
RubyLLM.transcribe('meeting.wav') - Документы: Извлечение данных из PDF, CSV, JSON и любых других файлов
- Генерация изображений:
RubyLLM.paint('запрос') - Эмбеддинги:
RubyLLM.embed('текст') - Модерация:
RubyLLM.moderate('текст') - Инструменты: Позвольте AI вызывать ваши Ruby-методы, создав подкласс
RubyLLM::Tool - Агенты: Многоразовые ассистенты с
RubyLLM::Agent - Структурированный вывод: JSON-схемы с
RubyLLM::Schema - Стриминг: Ответы в реальном времени с помощью блоков
- Rails: Интеграция с ActiveRecord через
acts_as_chatи опциональный UI для чата - Асинхронность: Конкурентность на основе файберов
- Реестр моделей: 800+ моделей с определением возможностей и ценами
Примеры кода
Чат с зрением:
chat = RubyLLM.chat
chat.ask('Что изображено на этой картинке?', with: 'ruby_conf.jpg')
chat.ask('Резюмируй этот документ', with: 'contract.pdf')
Использование инструментов:
class Weather < RubyLLM::Tool
desc 'Получить текущую погоду'
def execute(latitude:, longitude:)
JSON.parse(Faraday.get('https://api.open-meteo.com/...').body)
end
end
chat.with_tool(Weather).ask('Какая погода в Берлине?')
Структурированный вывод:
class ProductSchema < RubyLLM::Schema
string :name
number :price
array :features do
string
end
end
response = chat.with_schema(ProductSchema).ask('Проанализируй', with: 'product.txt')
Интеграция с Rails
bin/rails generate ruby_llm:install
bin/rails db:migrate
bin/rails generate ruby_llm:chat_ui
Затем создайте модель Chat с acts_as_chat и перейдите по адресу /chats для готового к использованию интерфейса.
У RubyLLM всего три зависимости: Faraday, Zeitwerk и Marcel.
📖 Читать полный источник: HN AI Agents
👀 Смотрите также

Rift CLI: Управление рабочими деревьями Git для параллельных рабочих процессов AI-агентов
Rift — это инструмент командной строки, который создает изолированные рабочие деревья Git и ветки для одновременного запуска нескольких ИИ-агентов для программирования, таких как Claude Code, в одном репозитории. Он включает хуки жизненного цикла, детерминированное сопоставление портов и поддержку рабочего пространства для нескольких редакторов.

Использование нескольких сеансов Claude Code параллельно с Git Worktrees
Разработчик рассказывает, как использовать git worktrees для запуска нескольких сессий Claude Code на отдельных ветках без stash и переключения контекста. Просматривайте diff, сливайте ветки и двигайтесь дальше.

Visdiff: Визуальная петля обратной связи для генерации фронтенд-кода Claude
Visdiff решает проблему визуальной точности в генерации фронтенд-кода Claude, сравнивая отрендеренный результат пиксель за пикселем с дизайнами Figma и передавая различия обратно в цикл до полного совпадения.

wmux: Электронный Терминальный Мультиплексер для Windows с Управлением через Браузер через MCP
wmux — это открытый терминальный мультиплексор на Electron для Windows 10/11, который предоставляет tmux-подобное разделение экрана, постоянные сессии и управление браузером через Chrome DevTools Protocol для AI-агентов программирования, таких как Claude Code. Он автоматически регистрируется как MCP-сервер и позволяет агентам взаимодействовать с браузерами, одновременно запуская несколько сессий бок о бок.