module NewRelic::Agent::Llm::ResponseHeaders

Constants

ATTRIBUTES
ATTRIBUTE_NAME_EXCEPTIONS
OPENAI_ORGANIZATION
OPENAI_VERSION
X_RATELIMIT_LIMIT_REQUESTS
X_RATELIMIT_LIMIT_TOKENS
X_RATELIMIT_LIMIT_TOKENS_USAGE_BASED
X_RATELIMIT_REMAINING_REQUESTS
X_RATELIMIT_REMAINING_TOKENS
X_RATELIMIT_REMAINING_TOKENS_USAGE_BASED
X_RATELIMIT_RESET_REQUESTS
X_RATELIMIT_RESET_TOKENS
X_RATELIMIT_RESET_TOKENS_USAGE_BASED
X_REQUEST_ID

Public Instance Methods

populate_openai_response_headers(headers) click to toggle source

Headers is a hash of Net::HTTP response headers

# File lib/new_relic/agent/llm/response_headers.rb, line 46
def populate_openai_response_headers(headers)
  # Embedding, ChatCompletionSummary, and ChatCompletionMessage all need
  # request_id, so it's defined in LlmEvent. ChatCompletionMessage
  # adds the attribute via ChatCompletionSummary.
  self.request_id = headers[X_REQUEST_ID]&.first
  self.response_organization = headers[OPENAI_ORGANIZATION]&.first
  self.llm_version = headers[OPENAI_VERSION]&.first
  self.ratelimit_limit_requests = headers[X_RATELIMIT_LIMIT_REQUESTS]&.first.to_i
  self.ratelimit_limit_tokens = headers[X_RATELIMIT_LIMIT_TOKENS]&.first.to_i
  remaining_headers(headers)
  reset_headers(headers)
  tokens_usage_based_headers(headers)
end

Private Instance Methods

remaining_headers(headers) click to toggle source
# File lib/new_relic/agent/llm/response_headers.rb, line 62
def remaining_headers(headers)
  self.ratelimit_remaining_requests = headers[X_RATELIMIT_REMAINING_REQUESTS]&.first.to_i
  self.ratelimit_remaining_tokens = headers[X_RATELIMIT_REMAINING_TOKENS]&.first.to_i
end
reset_headers(headers) click to toggle source
# File lib/new_relic/agent/llm/response_headers.rb, line 67
def reset_headers(headers)
  self.ratelimit_reset_requests = headers[X_RATELIMIT_RESET_REQUESTS]&.first
  self.ratelimit_reset_tokens = headers[X_RATELIMIT_RESET_TOKENS]&.first
end
tokens_usage_based_headers(headers) click to toggle source
# File lib/new_relic/agent/llm/response_headers.rb, line 72
def tokens_usage_based_headers(headers)
  self.ratelimit_limit_tokens_usage_based = headers[X_RATELIMIT_LIMIT_TOKENS_USAGE_BASED]&.first.to_i
  self.ratelimit_reset_tokens_usage_based = headers[X_RATELIMIT_RESET_TOKENS_USAGE_BASED]&.first
  self.ratelimit_remaining_tokens_usage_based = headers[X_RATELIMIT_REMAINING_TOKENS_USAGE_BASED]&.first.to_i
end