tiktoken-rsRostbibliothek zum Tokenisierungstext mit OpenAI -Modellen mit Tiktoken.
Diese Bibliothek bietet eine Reihe von bereitgestellten Tokenizer-Bibliotheken für die Zusammenarbeit mit GPT, Tiktoken und verwandten OpenAI-Modellen. Anwendungsfälle deckt Tokenisierungs- und Zählen von Token in Texteingaben ab.
Diese Bibliothek basiert auf der tiktoken -Bibliothek und enthält einige zusätzliche Funktionen und Verbesserungen zur einfachen Verwendung mit Rostcode.
Voll funktionierende Beispiele für alle unterstützten Funktionen finden Sie im Beispielverzeichnis im Repository.
cargo cargo add tiktoken-rsRufen Sie dann in Ihrem Rostcode die API an
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 ) ; Müssen die async-openai Funktion in Ihrer Datei Cargo.toml aktivieren.
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 unterstützt diese von OpenAI -Modellen verwendeten Codierungen:
| Codierungsname | OpenAI -Modelle |
|---|---|
o200k_base | GPT-4O-Modelle, O1-Modelle |
cl100k_base | CHATGPT-Modelle, text-embedding-ada-002 |
p50k_base | Codemodelle, text-davinci-002 , text-davinci-003 |
p50k_edit | Verwenden Sie für Bearbeitungsmodelle wie text-davinci-edit-001 , code-davinci-edit-001 |
r50k_base (oder gpt2 ) | GPT-3-Modelle wie davinci |
Die Beispiele im Repo finden Sie in Anwendungsfällen. Weitere Kontexte zu den verschiedenen Rowarenisatern finden Sie im OpenAI -Kochbuch
Wenn Sie auf Fehler stoßen oder Vorschläge für Verbesserungen haben, öffnen Sie bitte ein Problem im Repository.
Danke @spolu für den ursprünglichen Code und .tiktoken -Dateien.
Dieses Projekt ist unter der MIT -Lizenz lizenziert.