Skip to main content

Class: Generation

Defined in: src/lib/logger/components/generation.ts:124 Represents an LLM generation or completion. The Generation class tracks the complete lifecycle of LLM requests, including input messages, model parameters, results, and any errors. It supports both chat and text completion formats. Generation

Example

const generation = container.generation({
  id: 'gen-001',
  name: 'User Query Response',
  provider: 'openai',
  model: 'gpt-4',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'What is the capital of France?' }
  ],
  modelParameters: { temperature: 0.7, max_tokens: 150 }
});

// Record the result
generation.result({
  id: 'cmpl-123',
  object: 'chat.completion',
  created: Date.now(),
  model: 'gpt-4',
  choices: [{
    index: 0,
    message: { role: 'assistant', content: 'The capital of France is Paris.' },
    finish_reason: 'stop',
    logprobs: null
  }],
  usage: { prompt_tokens: 25, completion_tokens: 8, total_tokens: 33 }
});

Extends

Constructors

Constructor

new Generation(config, writer): Generation
Defined in: src/lib/logger/components/generation.ts:148 Creates a new generation log entry.

Parameters

config
GenerationConfig Configuration object defining the generation
writer
LogWriter Log writer instance for persisting generation data

Returns

Generation

Example

const generation = container.generation({
  id: 'response-gen-001',
  name: 'Customer Query Response',
  provider: 'openai',
  model: 'gpt-4',
  messages: [
    { role: 'system', content: 'You are a helpful assistant.' },
    { role: 'user', content: 'How do I reset my password?' }
  ],
  modelParameters: { temperature: 0.7, max_tokens: 200 }
});

Overrides

EvaluatableBaseContainer.constructor

Accessors

evaluate

Get Signature

get evaluate(): EvaluateContainer
Defined in: src/lib/logger/components/base.ts:248 Gets the evaluation methods for this container.
Example
container.evaluate.withEvaluators('bias', 'toxicity');
Returns
EvaluateContainer Evaluation methods for configuring and triggering evaluations

Inherited from

EvaluatableBaseContainer.evaluate

id

Get Signature

get id(): string
Defined in: src/lib/logger/components/base.ts:80 Gets the unique identifier for this container.
Returns
string The container’s unique ID

Inherited from

EvaluatableBaseContainer.id

Methods

addAttachment()

addAttachment(attachment): void
Defined in: src/lib/logger/components/generation.ts:349 Adds an attachment to this generation (can be of type file, data, or url).

Parameters

attachment
Attachment The attachment to add (file, data, or URL)

Returns

void void

Example

generation.addAttachment({
  id: 'input-document',
  type: 'file',
  path: './uploads/user_document.pdf',
  name: 'User Document'
});

addMessages()

addMessages(messages): void
Defined in: src/lib/logger/components/generation.ts:205 Adds additional messages to this generation’s conversation.

Parameters

messages
(ChatCompletionMessage | CompletionRequest)[] Array of messages to add

Returns

void void

Example

generation.addMessages([
  { role: 'user', content: 'Can you clarify that?' },
]);

addMetadata()

addMetadata(metadata): void
Defined in: src/lib/logger/components/base.ts:124 Adds metadata to this container for additional context and debugging. Any data type could be added as the value in the metadata record.

Parameters

metadata
Record<string, unknown> Key-value pairs of metadata

Returns

void void

Example

container.addMetadata({
  requestId: 'req-123',
  userAgent: 'Mozilla/5.0...',
  processingTime: 1500
});

Inherited from

EvaluatableBaseContainer.addMetadata

addTag()

addTag(key, value): void
Defined in: src/lib/logger/components/base.ts:94 Adds a tag to this container for categorization and filtering.

Parameters

key
string The tag key
value
string The tag value

Returns

void void

Example

container.addTag('environment', 'production');
container.addTag('user_type', 'premium');

Inherited from

EvaluatableBaseContainer.addTag

data()

data(): any
Defined in: src/lib/logger/components/generation.ts:372 Returns the complete data representation of this generation.

Returns

any Generation data.

Example

const genData = generation.data();

Overrides

EvaluatableBaseContainer.data

end()

end(): void
Defined in: src/lib/logger/components/base.ts:163 Marks this container as ended and records the end timestamp.

Returns

void void

Example

// End a container when processing is complete
container.end();

Inherited from

EvaluatableBaseContainer.end

error()

error(error): void
Defined in: src/lib/logger/components/generation.ts:318 Records an error that occurred during this generation.

Parameters

error
GenerationError Error information including message, code, and type

Returns

void void

Example

generation.error({
  message: 'API request timed out',
  code: 'TIMEOUT_ERROR',
  type: 'NetworkError'
});

result()

result(result): void
Defined in: src/lib/logger/components/generation.ts:288 Records the successful result of this generation and ends it.

Parameters

result
The completion result from the LLM ChatCompletionResult | TextCompletionResult

Returns

void void

Example

generation.result({
  id: 'cmpl-123',
  object: 'chat.completion',
  created: Date.now(),
  model: 'gpt-4',
  choices: [{
    index: 0,
    message: { role: 'assistant', content: 'Here is the answer...' },
    finish_reason: 'stop',
    logprobs: null
  }],
  usage: { prompt_tokens: 50, completion_tokens: 25, total_tokens: 75 }
});

setModel()

setModel(model): void
Defined in: src/lib/logger/components/generation.ts:178 Updates the model being used for this generation.

Parameters

model
string The new model name or identifier

Returns

void void

Example

generation.setModel('gpt-4-turbo');

setModelParameters()

setModelParameters(modelParameters): void
Defined in: src/lib/logger/components/generation.ts:252 Updates the model parameters for this generation.

Parameters

modelParameters
Record<string, any> Object containing model-specific parameters

Returns

void void

Example

generation.setModelParameters({
  temperature: 0.9,
  max_tokens: 500,
  top_p: 0.95,
  frequency_penalty: 0.2
});

addAttachment_()

static addAttachment_(writer, id, attachment): void
Defined in: src/lib/logger/components/generation.ts:361 Static method to add an attachment to any generation by ID.

Parameters

writer
LogWriter The log writer instance
id
string The generation ID
attachment
Attachment The attachment to add

Returns

void void

addMessages_()

static addMessages_(writer, id, messages): void
Defined in: src/lib/logger/components/generation.ts:226 Static method to add messages to any generation by ID.

Parameters

writer
LogWriter The log writer instance
id
string The generation ID
messages
(ChatCompletionMessage | CompletionRequest)[] Array of messages to add

Returns

void void

addMetadata_()

static addMetadata_(writer, entity, id, metadata): void
Defined in: src/lib/logger/components/base.ts:144 Static method to add metadata to any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
metadata
Record<string, unknown> The metadata to add

Returns

void void

Inherited from

EvaluatableBaseContainer.addMetadata_

addTag_()

static addTag_(writer, entity, id, key, value): void
Defined in: src/lib/logger/components/base.ts:108 Static method to add a tag to any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
key
string The tag key
value
string The tag value

Returns

void void

Inherited from

EvaluatableBaseContainer.addTag_

end_()

static end_(writer, entity, id, data?): void
Defined in: src/lib/logger/components/base.ts:177 Static method to end any container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID
data?
any Optional additional data to include with the end event

Returns

void void

Inherited from

EvaluatableBaseContainer.end_

error_()

static error_(writer, id, error): void
Defined in: src/lib/logger/components/generation.ts:331 Static method to record an error for any generation by ID.

Parameters

writer
LogWriter The log writer instance
id
string The generation ID
error
GenerationError Error information

Returns

void void

evaluate_()

static evaluate_(writer, entity, id): EvaluateContainer
Defined in: src/lib/logger/components/base.ts:260 Static method to get evaluation methods for any evaluatable container by ID.

Parameters

writer
LogWriter The log writer instance
entity
Entity The entity type
id
string The container ID

Returns

EvaluateContainer Evaluation methods for configuring and triggering evaluations

Inherited from

EvaluatableBaseContainer.evaluate_

result_()

static result_(writer, id, result): void
Defined in: src/lib/logger/components/generation.ts:301 Static method to record a result for any generation by ID.

Parameters

writer
LogWriter The log writer instance
id
string The generation ID
result
The completion result ChatCompletionResult | TextCompletionResult

Returns

void void

setModel_()

static setModel_(writer, id, model): void
Defined in: src/lib/logger/components/generation.ts:191 Static method to update the model for any generation by ID.

Parameters

writer
LogWriter The log writer instance
id
string The generation ID
model
string The new model name

Returns

void void

setModelParameters_()

static setModelParameters_(writer, id, modelParameters): void
Defined in: src/lib/logger/components/generation.ts:264 Static method to update model parameters for any generation by ID.

Parameters

writer
LogWriter The log writer instance
id
string The generation ID
modelParameters
Record<string, any> Model parameters to update

Returns

void void