@@ -57,17 +57,18 @@ pub enum PdlType {
5757/// Timing information
5858#[ derive( Serialize , Deserialize , Debug , Clone , Default ) ]
5959pub struct Timing {
60- start_nanos : u128 ,
61- end_nanos : u128 ,
60+ // TODO serde_json doesn't support u128, but (below) as_nanos() returns u128...
61+ start_nanos : u64 ,
62+ end_nanos : u64 ,
6263 timezone : String ,
6364}
6465
6566type TimingError = Box < dyn Error + Send + Sync > ;
6667impl Timing {
67- fn now ( ) -> Result < u128 , TimingError > {
68+ fn now ( ) -> Result < u64 , TimingError > {
6869 Ok ( :: std:: time:: SystemTime :: now ( )
6970 . duration_since ( SystemTime :: UNIX_EPOCH ) ?
70- . as_nanos ( ) )
71+ . as_nanos ( ) as u64 )
7172 }
7273
7374 pub fn start ( ) -> Result < Timing , TimingError > {
@@ -257,14 +258,16 @@ pub struct FunctionBlock {
257258
258259#[ derive( Serialize , Deserialize , Debug , Clone ) ]
259260pub struct PdlUsage {
260- // Completion tokens consumed
261+ /// Completion tokens consumed
261262 pub completion_tokens : u64 ,
262- // Prompt tokens consumed
263+ /// Prompt tokens consumed
263264 pub prompt_tokens : u64 ,
264- // Completion nanos
265- pub completion_nanos : u64 ,
266- // Prompt nanos
267- pub prompt_nanos : u64 ,
265+ /// Completion nanos
266+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
267+ pub completion_nanos : Option < u64 > ,
268+ /// Prompt nanos
269+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
270+ pub prompt_nanos : Option < u64 > ,
268271}
269272
270273#[ derive( Serialize , Deserialize , Debug , Clone , Default , derive_builder:: Builder ) ]
@@ -277,11 +280,17 @@ pub struct ModelBlock {
277280 #[ serde( skip_serializing_if = "Option::is_none" ) ]
278281 pub input : Option < Box < PdlBlock > > ,
279282 #[ serde( skip_serializing_if = "Option::is_none" ) ]
283+ pub platform : Option < String > ,
284+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
285+ pub context : Option < Vec < MessageBlock > > ,
286+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
280287 #[ serde( rename = "modelResponse" ) ]
281288 pub model_response : Option < String > ,
282289 #[ serde( rename = "pdl__usage" ) ]
283290 #[ serde( skip_serializing_if = "Option::is_none" ) ]
284291 pub pdl_usage : Option < PdlUsage > ,
292+ #[ serde( rename = "pdl__model_input" , skip_serializing_if = "Option::is_none" ) ]
293+ pub pdl_model_input : Option < Vec < MessageBlock > > ,
285294}
286295
287296#[ derive( Serialize , Deserialize , Debug , Clone ) ]
0 commit comments