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

Подключение OpenClaw к Qwen2.5: осуществимость и соображения
Исследуйте возможность подключения OpenClaw к локальной модели Qwen2.5 Coder с 7 миллиардами параметров, чтобы решить проблемы с лимитом запросов при использовании API Gemini 3.

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

Анализ акций в реальном времени добавлен в Claude Desktop через MCP-сервер
Разработчик создал MCP-сервер под названием agent-toolbelt, который добавляет возможности анализа акций в реальном времени в Claude Desktop и Claude Code. Инструмент предоставляет пять конкретных аналитических функций и работает с установкой одной командой.

Офлайн: Использование аппаратного обеспечения телефона для автономных AI-приложений
Off Grid - это приложение с открытым исходным кодом, которое использует аппаратное обеспечение вашего телефона для выполнения оффлайн задач ИИ, таких как генерация текста и транскрипция голоса.