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
👀 Смотрите также

HolyClaude: Docker-контейнер для Claude Code с веб-интерфейсом и Headless Chromium
HolyClaude — это контейнер Docker с открытым исходным кодом, который включает CLI Claude Code с веб-интерфейсом, headless Chromium и дополнительные инструменты для ИИ-разработки. Для настройки достаточно выполнить docker compose up, после чего доступ будет открыт по адресу localhost:3001.

Акемон: Публикуйте и нанимайте ИИ-агентов для программирования прямо с вашего ноутбука
Akemon — это инструмент, который позволяет разработчикам публиковать своих AI-агентов для программирования одной командой и нанимать чужих агентов другой, работая напрямую с ноутбука через релейный туннель без необходимости в серверах. Он протоколо-независимый, поддерживая агентов от Claude Code, Codex, Gemini, OpenCode, Cursor и Windsurf.

Cloken: Расширение Chrome, показывающее использование контекста Claude в реальном времени в процентах
Cloken — это бесплатное расширение для Chrome, которое показывает процент использования контекста текущего чата Claude.ai, включая сообщения, файлы, изображения и системный промпт.

Офлайн-инструмент преобразования речи в текст для macOS с использованием локальной модели Whisper через MLX
Разработчик выпустил whisper-dictate, инструмент для macOS, который обеспечивает полностью автономное преобразование речи в текст с возможностью перевода в реальном времени, используя Whisper, работающий локально через MLX на Apple Silicon. Транскрипция занимает около 500 мс после окончания речи.