#[ cfg( feature = "enabled" ) ]
mod private
{
use serde::{ Serialize, Deserialize };
use core::hash::{ Hash, Hasher };
#[ derive( Debug, Clone, Serialize ) ]
pub struct GenerateRequest
{
pub model : String,
pub prompt : String,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub stream : Option< bool >,
#[ serde( skip_serializing_if = "Option::is_none" ) ]
pub options : Option< serde_json::Value >,
}
#[ cfg( feature = "request_caching" ) ]
impl Hash for GenerateRequest
{
#[ inline ]
fn hash< H : Hasher >( &self, state : &mut H )
{
self.model.hash( state );
self.prompt.hash( state );
self.stream.hash( state );
if let Some( ref options ) = self.options
{
options.to_string().hash( state );
}
}
}
#[ derive( Debug, Serialize, Deserialize ) ]
pub struct GenerateResponse
{
#[ serde( default ) ]
pub response : String,
#[ serde( default ) ]
pub done : bool,
#[ serde( default ) ]
pub done_reason : Option< String >,
#[ serde( default ) ]
pub model : Option< String >,
#[ serde( default ) ]
pub created_at : Option< String >,
#[ serde( default ) ]
pub context : Option< Vec< u32 > >,
#[ serde( default ) ]
pub total_duration : Option< u64 >,
#[ serde( default ) ]
pub load_duration : Option< u64 >,
#[ serde( default ) ]
pub prompt_eval_count : Option< u32 >,
#[ serde( default ) ]
pub prompt_eval_duration : Option< u64 >,
#[ serde( default ) ]
pub eval_count : Option< u32 >,
#[ serde( default ) ]
pub eval_duration : Option< u64 >,
}
}
#[ cfg( feature = "enabled" ) ]
crate ::mod_interface!
{
exposed use
{
GenerateRequest,
GenerateResponse,
};
}