Sha256: 36a2a8dc41f85f50fe12e40579e3cc5245afca217626f0bdcbbb44489d5059af
Contents?: true
Size: 1.87 KB
Versions: 3
Compression:
Stored size: 1.87 KB
Contents
mod core_bpe_wrapper; use core_bpe_wrapper::CoreBPEWrapper; use magnus::{class, define_module, function, method, prelude::*, Error, ExceptionClass, RModule}; fn r50k_base() -> CoreBPEWrapper { let core_bpe = tiktoken_rs::r50k_base().unwrap(); CoreBPEWrapper::new(core_bpe) } fn p50k_base() -> CoreBPEWrapper { let core_bpe = tiktoken_rs::p50k_base().unwrap(); CoreBPEWrapper::new(core_bpe) } fn p50k_edit() -> CoreBPEWrapper { let core_bpe = tiktoken_rs::p50k_edit().unwrap(); CoreBPEWrapper::new(core_bpe) } fn cl100k_base() -> CoreBPEWrapper { let core_bpe = tiktoken_rs::cl100k_base().unwrap(); CoreBPEWrapper::new(core_bpe) } fn module() -> Result<RModule, magnus::Error> { define_module("Tiktoken") } fn uncicode_error() -> Result<ExceptionClass, magnus::Error> { module()?.define_error("UnicodeError", magnus::exception::standard_error()) } #[magnus::init] fn init() -> Result<(), Error> { let module = module()?; let factory_module = module.define_module("BpeFactory")?; factory_module.define_singleton_method("r50k_base", function!(r50k_base, 0))?; factory_module.define_singleton_method("p50k_base", function!(p50k_base, 0))?; factory_module.define_singleton_method("p50k_edit", function!(p50k_edit, 0))?; factory_module.define_singleton_method("cl100k_base", function!(cl100k_base, 0))?; let ext_module = module.define_module("Ext")?; let bpe_class = ext_module.define_class("CoreBPE", class::object())?; bpe_class.define_method( "encode_ordinary", method!(CoreBPEWrapper::encode_ordinary, 1), )?; bpe_class.define_method("encode", method!(CoreBPEWrapper::encode, 2))?; bpe_class.define_method( "encode_with_special_tokens", method!(CoreBPEWrapper::encode_with_special_tokens, 1), )?; bpe_class.define_method("decode", method!(CoreBPEWrapper::decode, 1))?; Ok(()) }
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
tiktoken_ruby-0.0.8 | ext/tiktoken_ruby/src/lib.rs |
tiktoken_ruby-0.0.7 | ext/tiktoken_ruby/src/lib.rs |
tiktoken_ruby-0.0.6 | ext/tiktoken_ruby/src/lib.rs |