Saltar para o conteúdo principal
Versão: Próximo

EmbedderResult

Typed wrapper for Embedder.embed() and Embedder.embedBatch() responses. Normalizes OpenAI's snake_case API keys (prompt_tokens, total_tokens) to camelCase properties, and flattens the nested rate-limit structure into direct properties.

A single class handles both single and batch results — embed() populates .vector, embedBatch() populates .vectors.

Properties​

Embedding results​

PropertyTypeDefaultDescription
vector4D.VectorNullSingle embedding result. Null for batch calls.
vectorsCollection[]Batch embedding results.

Token usage​

PropertyTypeDefaultDescription
promptTokensInteger0Input tokens consumed.
totalTokensInteger0Total tokens consumed (in + out).

Rate-limit state​

PropertyTypeDefaultDescription
remainingTokensInteger-1Tokens left in the current window. -1 = unknown.
remainingRequestsInteger-1Requests left in the current window. -1 = unknown.
limitTokensInteger0TPM ceiling for the account.
limitRequestsInteger0RPM ceiling for the account.
resetTokensText""Time until token bucket refills (e.g. "6m0s").
resetRequestsText""Time until request bucket refills (e.g. "1s").

Class constructor​

// From a real API result (used by Embedder internally)
var $result:=cs.EmbedderResult.new($aikitResult; True) // batch
var $result:=cs.EmbedderResult.new($aikitResult; False) // single

// Empty result (no API call — e.g. empty batch)
var $result:=cs.EmbedderResult.new()
ArgumentTypeDescription
resultObjectAn object with .vector/.vectors, .usage, .rateLimit (duck-typed).
isBatchBooleanTrue to read .vectors, False to read .vector.

The constructor accepts any object that exposes the expected shape — it does not require a specific class. This makes it easy to construct in tests.

Usage​

// Single embedding
var $r:=$embedder.embed("hello world"; "text-embedding-3-small")
$r.vector // → 4D.Vector
$r.promptTokens // → 6
$r.totalTokens // → 6

// Batch embedding
var $r:=$embedder.embedBatch(["hello"; "world"]; "text-embedding-3-small")
$r.vectors.length // → 2
$r.totalTokens // → 10

// Rate-limit awareness
$r.remainingTokens // → 148230 (or -1 if not yet known)
$r.resetTokens // → "6m0s"

See also​

  • Embedder — creates EmbedderResult instances
  • ProcessResult — run-level report that accumulates EmbedderResult usage
  • Rate Limiting — how the pipeline uses rate-limit fields for throttling and batch sizing