跳转到主要内容

使用 Ruby SDK 运行

当你想从 Ruby 调用提示词部署时,请使用官方的 fetch_hive gem。SDK 使用符合 Ruby 风格的辅助方法包装了公共的 POST /v1/prompt/invoke 端点,处理身份验证,并将流式响应解析为产出的哈希。

安装

添加到你的 Gemfile
gem "fetch_hive"
然后运行:
bundle install
或直接安装:
gem install fetch_hive
该 gem 底层使用 faraday,支持 Ruby 3.0+。

身份验证

FETCH_HIVE_API_KEY 环境变量设置为你的工作区 API 密钥(客户端会自动读取它):
export FETCH_HIVE_API_KEY=fhk_...
require "fetch_hive"

client = FetchHive::Client.new
或显式传入密钥:
client = FetchHive::Client.new(api_key: "fhk_...")
有关如何创建和轮换密钥,请参阅 API 密钥

基本示例

调用提示词部署并读取最终响应:
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 会阻塞直到提示词完成,并将已解析的 JSON 主体作为哈希返回。请参阅 非流式响应结构

方法参考

关键字参数类型必填描述
deploymentString提示词部署名称
variantString部署变体名称
inputsHash提示词变量的键值对
userString用户跟踪 中显示的不透明调用方标识符
metadataHash调用方定义的扁平元数据,用于审计和日志过滤。请参阅 调用元数据
SDK 会为 invoke_prompt 注入 streaming: false。要使用流式,请使用下面的 invoke_prompt_stream

处理响应

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

流式响应

使用 invoke_prompt_stream 在到达时接收 Server-Sent Events。该方法将每个已解析的事件哈希产出给块:
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
该流会产生 调用提示词 → 响应 中记录的相同事件类型:reasoningresponse、最终的 usage 事件,或在提供商在流中失败时产生的 error 事件。 如果你省略块,该方法返回一个可以传递的 Enumerator
enum = client.invoke_prompt_stream(deployment: "my-prompt", variant: "default")
enum.each { |chunk| handle(chunk) }

配置

选项默认值描述
api_keyENV["FETCH_HIVE_API_KEY"]来自仪表板的 Bearer 令牌
base_urlhttps://api.fetchhive.com/v1覆盖 API 基础 URL
timeout120请求超时(秒)
client = FetchHive::Client.new(
  api_key: "fhk_...",
  base_url: "https://api.fetchhive.com/v1",
  timeout: 60
)

错误

非 2xx 响应会引发 RuntimeError,其中包含状态码和响应体。如需处理失败,请捕获异常:
begin
  result = client.invoke_prompt(deployment: "my-prompt", variant: "default")
rescue => e
  warn "Fetch Hive error: #{e.message}"
end
有关状态码含义,请参阅 错误与速率限制

链接

后续步骤