pub struct LengthBasedExampleSelector {
pub examples: Vec<Example>,
pub get_text_length: fn(&str) -> usize,
pub max_length: usize,
pub example_text_lengths: Vec<usize>,
}
Expand description
Select examples based on length.
This selector chooses examples that fit within a maximum length constraint, making it useful for managing prompt size and token limits.
Fields§
§examples: Vec<Example>
A list of the examples that the prompt template expects
get_text_length: fn(&str) -> usize
Function to measure text length. Defaults to word count.
max_length: usize
Max length for the prompt, beyond which examples are cut
example_text_lengths: Vec<usize>
Length of each example (cached for performance)
Implementations§
Source§impl LengthBasedExampleSelector
impl LengthBasedExampleSelector
Sourcepub fn new(
examples: Vec<Example>,
max_length: usize,
get_text_length: Option<fn(&str) -> usize>,
) -> Self
pub fn new( examples: Vec<Example>, max_length: usize, get_text_length: Option<fn(&str) -> usize>, ) -> Self
Create a new length-based example selector.
§Arguments
examples
- Initial list of examplesmax_length
- Maximum total length for selected examplesget_text_length
- Function to measure text length (defaults to word count)
Sourcepub fn with_word_count(examples: Vec<Example>, max_length: usize) -> Self
pub fn with_word_count(examples: Vec<Example>, max_length: usize) -> Self
Create a new selector with default word count function.
Sourcepub fn with_char_count(examples: Vec<Example>, max_length: usize) -> Self
pub fn with_char_count(examples: Vec<Example>, max_length: usize) -> Self
Create a new selector with character count function.
Sourcepub fn default_text_length(text: &str) -> usize
pub fn default_text_length(text: &str) -> usize
Default text length function (word count).
Sourcepub fn char_length(text: &str) -> usize
pub fn char_length(text: &str) -> usize
Character count function.
Sourcepub fn total_length(&self) -> usize
pub fn total_length(&self) -> usize
Get the current total length of examples.
Trait Implementations§
Source§impl BaseExampleSelector for LengthBasedExampleSelector
impl BaseExampleSelector for LengthBasedExampleSelector
Source§fn add_example(&mut self, example: Example) -> Result<()>
fn add_example(&mut self, example: Example) -> Result<()>
Add a new example to the store. Read more
Source§fn select_examples(&self, input_variables: &Example) -> Result<Vec<Example>>
fn select_examples(&self, input_variables: &Example) -> Result<Vec<Example>>
Select which examples to use based on the inputs. Read more
Source§fn aadd_example<'life0, 'async_trait>(
&'life0 mut self,
example: Example,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn aadd_example<'life0, 'async_trait>(
&'life0 mut self,
example: Example,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Async add a new example to the store. Read more
Source§fn aselect_examples<'life0, 'life1, 'async_trait>(
&'life0 self,
input_variables: &'life1 Example,
) -> Pin<Box<dyn Future<Output = Result<Vec<Example>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn aselect_examples<'life0, 'life1, 'async_trait>(
&'life0 self,
input_variables: &'life1 Example,
) -> Pin<Box<dyn Future<Output = Result<Vec<Example>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Async select which examples to use based on the inputs. Read more
Source§impl Clone for LengthBasedExampleSelector
impl Clone for LengthBasedExampleSelector
Source§fn clone(&self) -> LengthBasedExampleSelector
fn clone(&self) -> LengthBasedExampleSelector
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for LengthBasedExampleSelector
impl Debug for LengthBasedExampleSelector
Source§impl<'de> Deserialize<'de> for LengthBasedExampleSelector
impl<'de> Deserialize<'de> for LengthBasedExampleSelector
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serializable for LengthBasedExampleSelector
impl Serializable for LengthBasedExampleSelector
Source§fn is_serializable() -> bool
fn is_serializable() -> bool
Check if this object is serializable Read more
Source§fn to_json_pretty(&self) -> Result<String>
fn to_json_pretty(&self) -> Result<String>
Serialize this object to a pretty-printed JSON string
Source§fn to_dict(&self) -> Result<HashMap<String, Value>>
fn to_dict(&self) -> Result<HashMap<String, Value>>
Serialize this object to a dictionary (HashMap)
Auto Trait Implementations§
impl Freeze for LengthBasedExampleSelector
impl RefUnwindSafe for LengthBasedExampleSelector
impl Send for LengthBasedExampleSelector
impl Sync for LengthBasedExampleSelector
impl Unpin for LengthBasedExampleSelector
impl UnwindSafe for LengthBasedExampleSelector
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more