RubyLLM: Um Framework Ruby para Todos os Principais Provedores de IA

RubyLLM 1.16.0 é um framework Ruby que fornece uma interface unificada para todos os principais provedores de IA, incluindo OpenAI, xAI, Anthropic, Gemini, VertexAI, Bedrock, DeepSeek, Mistral, Ollama, OpenRouter, Perplexity, GPUStack e qualquer API compatível com OpenAI. Ele suporta chat, visão, áudio, documentos, geração de imagens, embeddings, moderação, ferramentas, agentes, saída estruturada, streaming e integração com Rails.
Início Rápido
Adicione ao Gemfile: gem 'ruby_llm', depois bundle install.
Configure as chaves de API:
RubyLLM.configure do |config|
config.openai_api_key = ENV['OPENAI_API_KEY']
end
Principais Funcionalidades
- Chat:
RubyLLM.chat.ask('pergunta') - Visão: Analise imagens e vídeos —
chat.ask('Descreva', with: 'foto.jpg') - Áudio: Transcreva e entenda fala —
RubyLLM.transcribe('reuniao.wav') - Documentos: Extraia de PDFs, CSVs, JSON, qualquer tipo de arquivo
- Geração de imagens:
RubyLLM.paint('prompt') - Embeddings:
RubyLLM.embed('texto') - Moderação:
RubyLLM.moderate('texto') - Ferramentas: Deixe a IA chamar seus métodos Ruby subclassificando
RubyLLM::Tool - Agentes: Assistentes reutilizáveis com
RubyLLM::Agent - Saída estruturada: Esquemas JSON com
RubyLLM::Schema - Streaming: Respostas em tempo real com blocos
- Rails: Integração com ActiveRecord via
acts_as_chate Chat UI opcional - Assíncrono: Concorrência baseada em Fibers
- Registro de modelos: 800+ modelos com detecção de capacidade e preços
Exemplos de Código
Chat com visão:
chat = RubyLLM.chat
chat.ask('O que há nesta imagem?', with: 'ruby_conf.jpg')
chat.ask('Resuma este documento', with: 'contrato.pdf')
Usando ferramentas:
class Clima < RubyLLM::Tool
desc 'Obter clima atual'
def execute(latitude:, longitude:)
JSON.parse(Faraday.get('https://api.open-meteo.com/...').body)
end
end
chat.with_tool(Clima).ask('Qual é o clima em Berlim?')
Saída estruturada:
class SchemaProduto < RubyLLM::Schema
string :nome
number :preco
array :caracteristicas do
string
end
end
resposta = chat.with_schema(SchemaProduto).ask('Analise', with: 'produto.txt')
Integração com Rails
bin/rails generate ruby_llm:install
bin/rails db:migrate
bin/rails generate ruby_llm:chat_ui
Em seguida, crie um modelo Chat com acts_as_chat e visite /chats para uma UI pronta para uso.
RubyLLM tem apenas três dependências: Faraday, Zeitwerk e Marcel.
📖 Leia a fonte completa: HN AI Agents
👀 See Also

IUM: Índice de Símbolos MCP reduz uso de tokens de IA em 15,9x comparado ao grep
IUM indexa bases de código em uma matriz SQLite de eventos de símbolo, expondo coordenadas exatas de arquivo:linha, rastreamento de grafo de chamadas e busca semântica via MCP. Benchmark contra DataFusion (1.538 arquivos) mostra 15,9x menos tokens que grep para consultas equivalentes.

Qwen2-0.5B Ajustado para Automação de Tarefas Locais com llama.cpp
Um desenvolvedor ajustou o Qwen2-0.5B para automação de tarefas usando LoRA em aproximadamente 1000 exemplos personalizados, criando um modelo GGUF de 300MB que roda localmente na CPU via llama.cpp. O modelo recebe tarefas em linguagem natural, detecta os tipos de tarefa e gera planos de execução com comandos CLI e atalhos de teclado.

Optio: Orquestrando Agentes de Codificação de IA no Kubernetes do Chamado ao PR
Optio é um sistema de orquestração de código aberto que transforma tickets em pull requests mesclados usando agentes de codificação com IA como Claude Code ou Codex. Ele gerencia todo o ciclo de vida em pods Kubernetes isolados com um loop de feedback que reinicia automaticamente os agentes em falhas de CI ou feedback de revisão.

ClearSpec: Um Gerador de Especificações para Reduzir Alucinações no Código Claude
ClearSpec é uma ferramenta que gera especificações estruturadas a partir de descrições em inglês simples, conectando-se a repositórios do GitHub para referenciar caminhos de arquivos reais e dependências, e então usa essas especificações como prompts para o Claude Code para fornecer melhor contexto.