rager_rb
Build continuously improving generative workflows.
Providers
| Feature | Providers |
|---|---|
| Chat | openai (and compatible APIs) |
| Embedding | openai (and compatible APIs) |
| Image generation | replicate |
| 3D mesh generation | replicate |
| Rerank | cohere (and compatible APIs) |
| Search | jina |
| Templating | erb (built-in) |
Logging
The main reason for developing yet another library is to have an out-of-the-box compatible logging server that tracks AI workflows and outcomes. This data can be used to generate high-quality examples for few-shot prompting and fine-tuning. That server will be released soon, check back here for updates.
Installation
Add this line to your application’s Gemfile:
gem "rager", "~> 0.6.0"
Or use it in a standalone script (example uses OPENAI_API_KEY env var):
#!/usr/bin/env ruby
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "async-http", "~> 0.88.0"
gem "rager", "~> 0.6.0"
end
require "rager"
Rager.configure do |config|
config.http_adapter = Rager::Http::Adapters::AsyncHttp.new
end
Async do
ctx = Rager::Context.new
prompt = ctx.template(
"Tell me about the history of <%= topic %>:\n",
{topic: "Ruby programming"}
)
chat = ctx.chat(prompt, stream: true)
chat.out.each { |d| print d.content }
end
This library makes extensive use of sorbet-runtime for runtime type checking. To learn more, including how to disable it, please see the official Sorbet documentation.