tiktoken rs
v0.6.0
tiktoken-rs使用tiktoken使用OpenAI模型來使文本進行銹庫。
該庫提供了一組現成的令牌庫,用於使用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 ) ; 需要在您的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食譜
如果您遇到任何錯誤或有任何改進建議,請在存儲庫上打開一個問題。
感謝@spolu的原始代碼和.tiktoken文件。
該項目已根據MIT許可獲得許可。