LLMGenerationResult class


Result of a single text generation shared by every SDK.

Available extensions

Constructors

LLMGenerationResult({String? text, String? thinkingContent, int? inputTokens, int? tokensGenerated, String? modelUsed, double? generationTimeMs, double? ttftMs, double? tokensPerSecond, String? framework, String? finishReason, int? thinkingTokens, int? responseTokens, String? jsonOutput, PerformanceMetrics? performance, ExecutionTarget? executedOn, StructuredOutputValidation? structuredOutputValidation, int? totalTokens, String? errorMessage, int? errorCode, int? cachedPromptTokens, Int64? promptEvalTimeMs, Int64? decodeTimeMs, Iterable<ToolCall>? toolCalls, Iterable<ToolResult>? toolResults})
factory
LLMGenerationResult.fromBuffer(List<int> data, [ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY])
factory
LLMGenerationResult.fromJson(String json, [ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY])
factory

Properties

cachedPromptTokens int
Prompt/cache accounting surfaced by llama.cpp/CoreML-style backends.
getter/setter pair
decodeTimeMs ↔ Int64
getter/setter pair
errorCode int
Numeric backend status code when a result envelope carries an error.
getter/setter pair
errorMessage String
Backend error text for result-producing APIs that return a terminal result envelope instead of throwing through the host language.
getter/setter pair
executedOn ExecutionTarget
Where the generation actually ran (on-device, cloud, etc.). Useful when execution_target was AUTO and the SDK picked the route.
getter/setter pair
finishReason String
Reason the generation stopped: "stop", "length", "cancelled", "error". Empty = unset.
getter/setter pair
framework String
Framework that actually performed the generation. Optional because some C ABI paths don't surface it.
getter/setter pair
generationTimeMs double
Total wall-clock generation time in milliseconds.
getter/setter pair
hashCode int
Calculates a hash code based on the contents of the protobuf.
no setterinherited
info_ → BuilderInfo
no setter
inputTokens int
Number of input/prompt tokens (from tokenizer).
getter/setter pair
isFrozen bool
Returns true if this message is marked read-only. Otherwise false.
no setterinherited
jsonOutput String
Optional JSON output (when structured-output mode was requested). Empty = no structured output.
getter/setter pair
modelUsed String
Model used for generation.
getter/setter pair
performance PerformanceMetrics
Optional aggregated performance metrics. Web SDK surfaces this as a separate object alongside the result; consumers may ignore it if they already use the per-field timings above.
getter/setter pair
promptEvalTimeMs ↔ Int64
getter/setter pair
responseTokens int
Number of tokens in the actual response content (vs thinking).
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
structuredOutputValidation StructuredOutputValidation
Structured-output validation details, when a structured-output request was used. Mirrors the Swift/RN validation payload.
getter/setter pair
text String
Generated text (with thinking content removed if extracted).
getter/setter pair
thinkingContent String
Optional thinking/reasoning content extracted from the response.
getter/setter pair
thinkingTokens int
Number of tokens used for thinking/reasoning. 0 = not applicable.
getter/setter pair
tokensGenerated int
Number of tokens used (output / completion tokens).
getter/setter pair
tokensPerSecond double
Tokens-per-second throughput.
getter/setter pair
toolCalls → PbList<ToolCall>
Tool calls parsed from the final assistant response, if any.
no setter
toolResults → PbList<ToolResult>
Tool results incorporated during auto-execute loops.
no setter
totalTokens int
Total tokens consumed (prompt + completion). Some C ABI paths expose this directly; consumers may also compute it from the per-field counts.
getter/setter pair
ttftMs double
Time-to-first-token in milliseconds (only set in streaming mode).
getter/setter pair
unknownFields → UnknownFieldSet
no setterinherited

Methods

addExtension(Extension extension, Object? value) → void
Adds an extension field value to a repeated field.
inherited
check() → void
Throws a StateError if the message has required fields without a value.
inherited
clear() → void
Clears all data that was set in this message.
inherited
clearCachedPromptTokens() → void
clearDecodeTimeMs() → void
clearErrorCode() → void
clearErrorMessage() → void
clearExecutedOn() → void
clearExtension(Extension extension) → void
Clears an extension field and also removes the extension.
inherited
clearField(int tagNumber) → void
Clears the contents of a given field.
inherited
clearFinishReason() → void
clearFramework() → void
clearGenerationTimeMs() → void
clearInputTokens() → void
clearJsonOutput() → void
clearModelUsed() → void
clearPerformance() → void
clearPromptEvalTimeMs() → void
clearResponseTokens() → void
clearStructuredOutputValidation() → void
clearText() → void
clearThinkingContent() → void
clearThinkingTokens() → void
clearTokensGenerated() → void
clearTokensPerSecond() → void
clearTotalTokens() → void
clearTtftMs() → void
clone() LLMGenerationResult
Creates a deep copy of the fields in this message.
copyWith(void updates(LLMGenerationResult)) LLMGenerationResult
Apply updates to a copy of this message.
createEmptyInstance() LLMGenerationResult
Creates an empty instance of the same message type as this.
deepCopy() → T

Available on T, provided by the GeneratedMessageGenericExtensions extension

Returns a writable deep copy of this message.
ensurePerformance() PerformanceMetrics
ensureStructuredOutputValidation() StructuredOutputValidation
extensionsAreInitialized() bool
inherited
freeze() → GeneratedMessage
Make this message read-only.
inherited
getDefaultForField(int tagNumber) → dynamic
Returns the default value for the given field.
inherited
getExtension(Extension extension) → dynamic
Returns the value of extension.
inherited
getField(int tagNumber) → dynamic
Returns the value of the field associated with tagNumber, or the default value if it is not set.
inherited
getFieldOrNull(int tagNumber) → dynamic
Returns the value of a field, ignoring any defaults.
inherited
getTagNumber(String fieldName) int?
inherited
hasCachedPromptTokens() bool
hasDecodeTimeMs() bool
hasErrorCode() bool
hasErrorMessage() bool
hasExecutedOn() bool
hasExtension(Extension extension) bool
Returns true if a value of extension is present.
inherited
hasField(int tagNumber) bool
Whether this message has a field associated with tagNumber.
inherited
hasFinishReason() bool
hasFramework() bool
hasGenerationTimeMs() bool
hasInputTokens() bool
hasJsonOutput() bool
hasModelUsed() bool
hasPerformance() bool
hasPromptEvalTimeMs() bool
hasRequiredFields() bool
Whether the message has required fields.
inherited
hasResponseTokens() bool
hasStructuredOutputValidation() bool
hasText() bool
hasThinkingContent() bool
hasThinkingTokens() bool
hasTokensGenerated() bool
hasTokensPerSecond() bool
hasTotalTokens() bool
hasTtftMs() bool
isInitialized() bool
Whether all required fields in the message and embedded messages are set.
inherited
mergeFromBuffer(List<int> input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges serialized protocol buffer data into this message.
inherited
mergeFromCodedBufferReader(CodedBufferReader input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Same as mergeFromBuffer, but takes a CodedBufferReader input.
inherited
mergeFromJson(String data, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from data, a JSON object, encoded as described by GeneratedMessage.writeToJson.
inherited
mergeFromJsonMap(Map<String, dynamic> json, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from a JSON object represented as a Dart map.
inherited
mergeFromMessage(GeneratedMessage other) → void
Merges the contents of the other into this message.
inherited
mergeFromProto3Json(Object? json, {TypeRegistry typeRegistry = const TypeRegistry.empty(), bool ignoreUnknownFields = false, bool supportNamesWithUnderscores = true, bool permissiveEnums = false}) → void
Merges field values from json, a JSON object using proto3 encoding.
inherited
mergeUnknownFields(UnknownFieldSet unknownFieldSet) → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
rebuild(void updates(T)) → T

Available on T, provided by the GeneratedMessageGenericExtensions extension

Apply updates to a copy of this message.
setExtension(Extension extension, Object value) → void
Sets the value of a non-repeated extension field to value.
inherited
setField(int tagNumber, Object value) → void
Sets the value of a field by its tagNumber.
inherited
toBuilder() → GeneratedMessage
Creates a writable, shallow copy of this message.
inherited
toDebugString() String
Returns a String representation of this message.
inherited
toProto3Json({TypeRegistry typeRegistry = const TypeRegistry.empty()}) Object?
Returns an Object representing Proto3 JSON serialization of this.
inherited
toString() String
Returns a String representation of this message.
inherited
writeToBuffer() Uint8List
Serialize the message as the protobuf binary format.
inherited
writeToCodedBufferWriter(CodedBufferWriter output) → void
Same as writeToBuffer, but serializes to the given CodedBufferWriter.
inherited
writeToJson() String
Returns a JSON string that encodes this message.
inherited
writeToJsonMap() Map<String, dynamic>
Returns the JSON encoding of this message as a Dart Map.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited