Translator

Struct Translator 

Source
pub struct Translator { /* private fields */ }
Expand description

A text translator.

This struct is a Rust binding to the ctranslate2::Translator.

§Example

Below is an example where a given list of tokens is translated:

use ct2rs::sys::{Config, Device, Translator};

let translator = Translator::new("/path/to/model", &Config::default())?;
let res = translator.translate_batch(
    &[vec!["▁Hello", "▁world", "!", "</s>", "<unk>"]],
    &Default::default(),
    None,
)?;
for r in res {
    println!("{:?}", r);
}

If the model requires target prefixes, use Translator::translate_batch_with_target_prefix instead:

use ct2rs::sys::{Config, Device, Translator};

let translator = Translator::new("/path/to/model", &Config::default())?;
let res = translator.translate_batch_with_target_prefix(
    &[vec!["▁Hello", "▁world", "!", "</s>", "<unk>"]],
    &[vec!["jpn_Jpan"]],
    &Default::default(),
    None,
)?;
for r in res {
    println!("{:?}", r);
}

Implementations§

Source§

impl Translator

Source

pub fn new<T: AsRef<Path>>(model_path: T, config: &Config) -> Result<Translator>

Creates and initializes an instance of Translator.

This function constructs a new Translator by loading a language model from the specified model_path and applying the provided config settings.

§Arguments
  • model_path - A path to the directory containing the language model to be loaded.
  • config - A reference to a Config structure that specifies various settings and configurations for the Translator.
§Returns

Returns a Result that, if successful, contains the initialized Translator. If an error occurs during initialization, the function will return an error wrapped in the Result.

§Example
use ct2rs::sys::{Config, Translator};

let config = Config::default();
let translator = Translator::new("/path/to/model", &config)?;
Source

pub fn translate_batch<T, U, V>( &self, source: &[Vec<T>], options: &TranslationOptions<U, V>, callback: Option<&mut dyn FnMut(GenerationStepResult) -> bool>, ) -> Result<Vec<TranslationResult>>
where T: AsRef<str>, U: AsRef<str>, V: AsRef<str>,

Translates multiple lists of tokens in a batch processing manner.

This function takes a vector of token lists and performs batch translation according to the specified settings in options. The results of the batch translation are returned as a vector. An optional callback closure can be provided which is invoked for each new token generated during the translation process. This allows for step-by-step reception of the batch translation results. If the callback returns true, it will stop the translation for that batch. Note that if a callback is provided, options.beam_size must be set to 1.

§Arguments
  • source - A vector of token lists, each list representing a sequence of tokens to be translated.
  • options - Settings applied to the batch translation process.
  • callback - An optional mutable reference to a closure that is called for each token generation step. The closure takes a GenerationStepResult and returns a bool. If it returns true, the translation process for the current batch will stop.
§Returns

Returns a Result containing a vector of TranslationResult if successful, or an error if the translation fails.

§Example
use ct2rs::sys::{Config, GenerationStepResult, Translator, TranslationOptions};

let source_tokens = [
    vec!["▁Hall", "o", "▁World", "!", "</s>"],
    vec![
        "▁This", "▁library", "▁is", "▁a", "▁", "Rust", "▁", "binding", "s", "▁of",
        "▁C", "Trans", "late", "2", ".", "</s>"
    ],
];
let options = TranslationOptions::default();
let mut callback = |step_result: GenerationStepResult| -> bool {
    println!("{:?}", step_result);
    false // Continue processing
};
let translator = Translator::new("/path/to/model", &Config::default())?;
let results = translator.translate_batch(&source_tokens, &options, Some(&mut callback))?;
Source

pub fn translate_batch_with_target_prefix<T, U, V, W>( &self, source: &[Vec<T>], target_prefix: &[Vec<U>], options: &TranslationOptions<V, W>, callback: Option<&mut dyn FnMut(GenerationStepResult) -> bool>, ) -> Result<Vec<TranslationResult>>
where T: AsRef<str>, U: AsRef<str>, V: AsRef<str>, W: AsRef<str>,

Translates multiple lists of tokens with target prefixes in a batch processing manner.

This function takes a vector of token lists and corresponding target prefixes, performing batch translation according to the specified settings in options. An optional callback closure can be provided which is invoked for each new token generated during the translation process.

This function is similar to translate_batch, with the addition of handling target prefixes that guide the translation process. For more detailed parameter and option descriptions, refer to the documentation for Translator::translate_batch.

§Arguments
  • source - A vector of token lists, each list representing a sequence of tokens to be translated.
  • target_prefix - A vector of token lists, each list representing a sequence of target prefix tokens that provide a starting point for the translation output.
  • options - Settings applied to the batch translation process.
  • callback - An optional mutable reference to a closure that is called for each token generation step. The closure takes a GenerationStepResult and returns a bool. If it returns true, the translation process for the current batch will stop.
§Returns

Returns a Result containing a vector of TranslationResult if successful, or an error if the translation fails.

Source

pub fn num_queued_batches(&self) -> Result<usize>

Number of batches in the work queue.

Source

pub fn num_active_batches(&self) -> Result<usize>

Number of batches in the work queue or currently processed by a worker.

Source

pub fn num_replicas(&self) -> Result<usize>

Number of parallel replicas.

Trait Implementations§

Source§

impl Debug for Translator

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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 T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

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

Source§

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