pub struct ChatSplitter { /* private fields */ }
Expand description

Chat splitter for OpenAI’s chat models when using async_openai.

For more detailed information, see the crate documentation.

Implementations§

source§

impl ChatSplitter

source

pub fn new(model: impl Into<String>) -> Self

Create a new ChatSplitter for the given model.

Panics

If for some reason tiktoken_rs gives a context size twice as large as what would fit in a u16. If this happens, it should be considered a bug, but this behaviour might change in the future, as models with larger context sizes are released.

source

pub fn max_messages(self, max_messages: impl Into<usize>) -> Self

Set the maximum number of messages to have in the chat.

Splits will have at most that many messages, never more.

source

pub fn max_tokens(self, max_tokens: impl Into<u16>) -> Self

Set the maximum number of tokens to leave for chat completion.

This is the same as in the official API and given to async_openai. The total length of input tokens and generated tokens is limited by the model’s context size. Splits will have at least that many tokens available for chat completion, never less.

source

pub fn model(self, model: impl Into<String>) -> Self

Set the model to use for tokenization, e.g., gpt-3.5-turbo.

It is passed to tiktoken_rs to select the correct tokenizer.

source

pub fn split<'a, M>(&self, messages: &'a [M]) -> (&'a [M], &'a [M])where M: IntoChatCompletionRequestMessage + Clone,

Split the chat into two groups of messages, the ‘outdated’ and the ‘recent’ ones.

The ‘recent’ messages are guaranteed to satisfy the given limits, while the ‘outdated’ ones contain all the ones before ‘recent’.

For a detailed usage example, see examples/chat.rs.

Panics

If tokenizer for the specified model is not found or is not a supported chat model.

Trait Implementations§

source§

impl Clone for ChatSplitter

source§

fn clone(&self) -> ChatSplitter

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ChatSplitter

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ChatSplitter

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more