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许可获得许可。