tiktoken-rs
مكتبة الصدأ لتصنيف النص مع نماذج Openai باستخدام Tiktoken.
توفر هذه المكتبة مجموعة من مكتبات Tokenizer جاهزة للعمل مع GPT و Tiktoken ونماذج Openai ذات الصلة. يغطي حالات الاستخدام الرمز المميز وحساب الرموز في مدخلات النص.
تم تصميم هذه المكتبة فوق مكتبة tiktoken
وتتضمن بعض الميزات والتحسينات الإضافية لسهولة الاستخدام مع رمز الصدأ.
للحصول على أمثلة عمل كاملة لجميع الميزات المدعومة ، راجع دليل الأمثلة في المستودع.
cargo
cargo add tiktoken-rs
ثم في رمز الصدأ الخاص بك ، اتصل بـ API
use tiktoken_rs :: o200k_base ;
let bpe = o200k_base ( ) . unwrap ( ) ;
let tokens = bpe . encode_with_special_tokens (
"This is a sentence with spaces"
) ;
println ! ( "Token count: {}" , tokens.len ( ) ) ;
use tiktoken_rs :: { get_chat_completion_max_tokens , ChatCompletionRequestMessage } ;
let messages = vec ! [
ChatCompletionRequestMessage {
content: Some ( "You are a helpful assistant that only speaks French." .to_string ( ) ) ,
role: "system" .to_string ( ) ,
name: None ,
function_call: None ,
} ,
ChatCompletionRequestMessage {
content: Some ( "Hello, how are you?" .to_string ( ) ) ,
role: "user" .to_string ( ) ,
name: None ,
function_call: None ,
} ,
ChatCompletionRequestMessage {
content: Some ( "Parlez-vous francais?" .to_string ( ) ) ,
role: "system" .to_string ( ) ,
name: None ,
function_call: None ,
} ,
] ;
let max_tokens = get_chat_completion_max_tokens ( "o1-mini" , & messages ) . unwrap ( ) ;
println ! ( "max_tokens: {}" , max_tokens ) ;
تحتاج إلى تمكين ميزة async-openai
في ملف Cargo.toml
الخاص بك.
use tiktoken_rs :: async_openai :: get_chat_completion_max_tokens ;
use async_openai :: types :: { ChatCompletionRequestMessage , Role } ;
let messages = vec ! [
ChatCompletionRequestMessage {
content: Some ( "You are a helpful assistant that only speaks French." .to_string ( ) ) ,
role: Role :: System ,
name: None ,
function_call: None ,
} ,
ChatCompletionRequestMessage {
content: Some ( "Hello, how are you?" .to_string ( ) ) ,
role: Role :: User ,
name: None ,
function_call: None ,
} ,
ChatCompletionRequestMessage {
content: Some ( "Parlez-vous francais?" .to_string ( ) ) ,
role: Role :: System ,
name: None ,
function_call: None ,
} ,
] ;
let max_tokens = get_chat_completion_max_tokens ( "o1-mini" , & messages ) . unwrap ( ) ;
println ! ( "max_tokens: {}" , max_tokens ) ;
يدعم tiktoken
هذه الترميزات التي تستخدمها نماذج Openai:
الاسم الترميز | نماذج Openai |
---|---|
o200k_base | نماذج GPT-4O ، نماذج O1 |
cl100k_base | نماذج ChatGPT ، text-embedding-ada-002 |
p50k_base | نماذج الكود ، text-davinci-002 ، text-davinci-003 |
p50k_edit | استخدم طرز تحرير مثل text-davinci-edit-001 ، code-davinci-edit-001 |
r50k_base (أو gpt2 ) | نماذج GPT-3 مثل davinci |
انظر الأمثلة في الريبو لحالات الاستخدام. لمزيد من السياق على المميزات المختلفة ، راجع كتاب طبخ Openai
إذا واجهت أي أخطاء أو لديك أي اقتراحات للتحسينات ، فيرجى فتح مشكلة في المستودع.
شكرًا لـ Spolu على الكود الأصلي ، وملفات .tiktoken
.
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.