tiktoken rs
v0.6.0
tiktoken-rsTiktokenを使用してOpenaiモデルを使用してテキストをトークン化するためのRustライブラリ。
このライブラリは、GPT、Tiktoken、および関連するOpenAIモデルを操作するための既製のトークネザーライブラリのセットを提供します。ユースケースは、テキスト入力のトークンのトークン化とカウントをカバーしています。
このライブラリは、 tiktokenライブラリの上に構築されており、Rustコードで使いやすい追加機能と機能強化が含まれています。
サポートされているすべての機能の完全な作業例については、リポジトリの例ディレクトリを参照してください。
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 ) ; Cargo.tomlファイルでasync-openai機能を有効にする必要があります。
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 ) | davinciのようなGPT-3モデル |
ユースケースについては、リポジトリの例を参照してください。さまざまなトークンザーのより多くのコンテキストについては、Openai Cookbookを参照してください
バグが発生したり、改善の提案がある場合は、リポジトリに問題を開いてください。
元のコードと.tiktokenファイルについては@spoluに感謝します。
このプロジェクトは、MITライセンスの下でライセンスされています。