Quick setup examples
Ruby (HTTP) Quickstart
Call the Unison brain from Ruby using the standard net/http library and json gem — no extra dependencies.
Ruby's standard library covers everything needed. net/http handles the requests; json parses the responses.
Prerequisites
export UNISON_TOKEN=usk_live_...Ruby 3.0 or later.
Recall — fetch prompt-ready context
require "net/http"
require "uri"
require "json"
BASE = "https://brain.unisonlabs.ai"
TOKEN = ENV.fetch("UNISON_TOKEN")
def recall(query)
uri = URI("#{BASE}/v1/brain/context")
uri.query = URI.encode_www_form(q: query, k: 5, mode: "auto")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{TOKEN}"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
data["weakEvidence"] ? "" : data["contextMd"]
end
memory = recall("payment service architecture")
puts memoryPersist — write memory to the brain
require "net/http"
require "uri"
require "json"
def persist
uri = URI("#{BASE}/v1/brain/ingest")
req = Net::HTTP::Post.new(uri)
req["Authorization"] = "Bearer #{TOKEN}"
req["Content-Type"] = "application/json"
req.body = JSON.generate(
items: [
{
type: "conversation",
turns: [
{ role: "user", content: "What queue library should we use?" },
{ role: "assistant", content: "Switched to pgmq — simpler ops than Redis." }
],
sourceRef: "session-1",
visibility: "private"
}
]
)
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body)
puts "jobId: #{data["items"][0]["jobId"]}"
end
persist