Class: DSPy::Storage::ProgramStorage::SavedProgram
- Inherits:
-
Object
- Object
- DSPy::Storage::ProgramStorage::SavedProgram
- Extended by:
- T::Sig
- Defined in:
- lib/dspy/storage/program_storage.rb
Overview
Represents a saved program with metadata
Instance Attribute Summary collapse
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#optimization_result ⇒ Object
readonly
Returns the value of attribute optimization_result.
-
#program ⇒ Object
readonly
Returns the value of attribute program.
-
#program_id ⇒ Object
readonly
Returns the value of attribute program_id.
-
#saved_at ⇒ Object
readonly
Returns the value of attribute saved_at.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(program:, optimization_result:, metadata: {}, program_id: nil, saved_at: nil) ⇒ SavedProgram
constructor
A new instance of SavedProgram.
- #to_h ⇒ Object
Constructor Details
#initialize(program:, optimization_result:, metadata: {}, program_id: nil, saved_at: nil) ⇒ SavedProgram
Returns a new instance of SavedProgram.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/dspy/storage/program_storage.rb', line 43 def initialize(program:, optimization_result:, metadata: {}, program_id: nil, saved_at: nil) @program = program @optimization_result = optimization_result dspy_version = begin DSPy::VERSION rescue "unknown" end @metadata = .merge({ dspy_version: dspy_version, ruby_version: RUBY_VERSION, saved_with: "DSPy::Storage::ProgramStorage" }) @program_id = program_id || generate_program_id @saved_at = saved_at || Time.now end |
Instance Attribute Details
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
26 27 28 |
# File 'lib/dspy/storage/program_storage.rb', line 26 def @metadata end |
#optimization_result ⇒ Object (readonly)
Returns the value of attribute optimization_result.
23 24 25 |
# File 'lib/dspy/storage/program_storage.rb', line 23 def optimization_result @optimization_result end |
#program ⇒ Object (readonly)
Returns the value of attribute program.
20 21 22 |
# File 'lib/dspy/storage/program_storage.rb', line 20 def program @program end |
#program_id ⇒ Object (readonly)
Returns the value of attribute program_id.
29 30 31 |
# File 'lib/dspy/storage/program_storage.rb', line 29 def program_id @program_id end |
#saved_at ⇒ Object (readonly)
Returns the value of attribute saved_at.
32 33 34 |
# File 'lib/dspy/storage/program_storage.rb', line 32 def saved_at @saved_at end |
Class Method Details
.from_h(data) ⇒ Object
73 74 75 76 77 78 79 80 81 |
# File 'lib/dspy/storage/program_storage.rb', line 73 def self.from_h(data) new( program: deserialize_program(data[:program_data]), optimization_result: data[:optimization_result], metadata: data[:metadata] || {}, program_id: data[:program_id], saved_at: Time.parse(data[:saved_at]) ) end |
Instance Method Details
#to_h ⇒ Object
62 63 64 65 66 67 68 69 70 |
# File 'lib/dspy/storage/program_storage.rb', line 62 def to_h { program_id: @program_id, saved_at: @saved_at.iso8601, program_data: serialize_program(@program), optimization_result: @optimization_result, metadata: @metadata } end |