Saltar al contenido principal

Ejecutar con el SDK de Ruby

Usa la gema oficial fetch_hive cuando quieras invocar un deployment de prompt desde Ruby. El SDK envuelve el endpoint público POST /v1/prompt/invoke con ayudantes idiomáticos, maneja la autenticación y analiza las respuestas en streaming convirtiéndolas en hashes producidos.

Instalación

Agrega a tu Gemfile:
gem "fetch_hive"
Luego ejecuta:
bundle install
O instálala directamente:
gem install fetch_hive
La gema usa faraday por debajo y admite Ruby 3.0+.

Autenticación

Configura la variable de entorno FETCH_HIVE_API_KEY con tu clave de API del workspace (el cliente la lee automáticamente):
export FETCH_HIVE_API_KEY=fhk_...
require "fetch_hive"

client = FetchHive::Client.new
O pasa la clave explícitamente:
client = FetchHive::Client.new(api_key: "fhk_...")
Consulta API Keys para saber cómo crear y rotar claves.

Ejemplo básico

Invoca un deployment de prompt y lee la respuesta final:
require "fetch_hive"

client = FetchHive::Client.new

result = client.invoke_prompt(
  deployment: "YOUR_DEPLOYMENT_NAME",
  variant: "YOUR_VARIANT_NAME",
  inputs: { text: "Fetch Hive helps teams ship AI products faster." }
)

puts result["response"]
invoke_prompt se bloquea hasta que el prompt se completa y devuelve el cuerpo JSON analizado como un hash. Consulta la forma de respuesta sin streaming.

Referencia del método

Palabra claveTipoRequeridoDescripción
deploymentStringEl nombre del deployment de prompt
variantStringNoEl nombre de la variante del deployment
inputsHashNoPares clave-valor para las variables del prompt
userStringNoIdentificador opaco de quien llama, expuesto en User Tracking
metadataHashNoMetadata plana definida por quien llama, para auditoría y filtrado de registros. Consulta Metadata de invoke
El SDK inyecta streaming: false para invoke_prompt. Para transmitir, usa invoke_prompt_stream (a continuación).

Manejo de la respuesta

result = client.invoke_prompt(deployment: "my-prompt", variant: "default")

puts result["response"]      # final text
puts result["model"]         # model identifier
puts result["usage"]         # token usage breakdown
puts result["request_id"]    # use this to look up the run in Logs

Streaming

Usa invoke_prompt_stream para recibir Server-Sent Events a medida que llegan. El método produce cada hash de evento analizado al bloque:
client.invoke_prompt_stream(
  deployment: "YOUR_DEPLOYMENT_NAME",
  variant: "YOUR_VARIANT_NAME",
  inputs: { text: "Fetch Hive helps teams ship AI products faster." }
) do |chunk|
  case chunk["type"]
  when "response"
    print chunk["response"]
    $stdout.flush
  when "usage"
    puts "\n\nUsage: #{chunk['usage']}"
  end
end
La transmisión produce los mismos tipos de evento documentados en Invoke Prompt → Response: reasoning, response, un evento usage final o un evento error si el proveedor falla durante la transmisión. Si omites el bloque, el método devuelve un Enumerator que puedes pasar:
enum = client.invoke_prompt_stream(deployment: "my-prompt", variant: "default")
enum.each { |chunk| handle(chunk) }

Configuración

OpciónPredeterminadoDescripción
api_keyENV["FETCH_HIVE_API_KEY"]Token bearer del dashboard
base_urlhttps://api.fetchhive.com/v1Sobrescribe la URL base de la API
timeout120Timeout de la solicitud en segundos
client = FetchHive::Client.new(
  api_key: "fhk_...",
  base_url: "https://api.fetchhive.com/v1",
  timeout: 60
)

Errores

Las respuestas distintas a 2xx lanzan un RuntimeError con el código de estado y el cuerpo. Rescátalas si necesitas manejar fallos:
begin
  result = client.invoke_prompt(deployment: "my-prompt", variant: "default")
rescue => e
  warn "Fetch Hive error: #{e.message}"
end
Consulta Errors and Rate Limits para el significado de los códigos de estado.

Enlaces

Siguientes pasos