addOrUpdateChatMetadata method

void addOrUpdateChatMetadata(
  1. ChatResponse response, {
  2. Duration? duration,
})

Records model ID and token counts from a ChatResponse as metadata.

Implementation

void addOrUpdateChatMetadata(ChatResponse response, {Duration? duration}) {
  if (response.modelId != null && response.modelId!.isNotEmpty) {
    addOrUpdateMetadata('evaluation.model', response.modelId!);
  }
  final usage = response.usage;
  if (usage != null) {
    if (usage.inputTokenCount != null) {
      addOrUpdateMetadata(
          'evaluation.input_tokens', usage.inputTokenCount.toString());
    }
    if (usage.outputTokenCount != null) {
      addOrUpdateMetadata(
          'evaluation.output_tokens', usage.outputTokenCount.toString());
    }
    if (usage.totalTokenCount != null) {
      addOrUpdateMetadata(
          'evaluation.total_tokens', usage.totalTokenCount.toString());
    }
  }
  if (duration != null) {
    addOrUpdateDurationMetadata(duration);
  }
}