trackGeneration method

void trackGeneration({
  1. required String modelId,
  2. required int promptTokens,
  3. required int completionTokens,
  4. required int latencyMs,
  5. String? modelName,
  6. double? temperature,
  7. int? maxTokens,
  8. int? contextLength,
  9. double? tokensPerSecond,
  10. int? timeToFirstTokenMs,
  11. bool isStreaming = false,
})

Track text generation

Implementation

void trackGeneration({
  required String modelId,
  required int promptTokens,
  required int completionTokens,
  required int latencyMs,
  String? modelName,
  double? temperature,
  int? maxTokens,
  int? contextLength,
  double? tokensPerSecond,
  int? timeToFirstTokenMs,
  bool isStreaming = false,
}) {
  final totalTokens = promptTokens + completionTokens;
  final calculatedTps = tokensPerSecond ??
      (latencyMs > 0 ? (completionTokens / latencyMs) * 1000 : 0.0);

  track(
    'generation_completed',
    category: TelemetryCategory.llm,
    properties: {
      'model_id': modelId,
      'model_name': modelName,
      'prompt_tokens': promptTokens,
      'completion_tokens': completionTokens,
      'total_tokens': totalTokens,
      'latency_ms': latencyMs,
      'generation_time_ms': latencyMs,
      'tokens_per_second': calculatedTps,
      'temperature': temperature,
      'max_tokens': maxTokens,
      'context_length': contextLength,
      'time_to_first_token_ms': timeToFirstTokenMs,
      'is_streaming': isStreaming,
    },
  );
}