tiktoken rs
v0.6.0
tiktoken-rs
Tiktoken을 사용한 OpenAI 모델로 텍스트 토큰 화를위한 Rust Library.
이 라이브러리는 GPT, Tiktoken 및 관련 OpenAI 모델로 작업하기위한 기성품 토큰 라이저 라이브러리 세트를 제공합니다. 사용 사례는 텍스트 입력의 토큰 화 및 계산을 다룹니다.
이 라이브러리는 tiktoken
라이브러리 위에 구축되었으며 Rust Code와 함께 사용하기 쉬운 몇 가지 추가 기능 및 향상된 기능이 포함되어 있습니다.
모든 지원되는 기능에 대한 전체 작업 예는 저장소의 예제 디렉토리를 참조하십시오.
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 모델 |
사용 사례에 대해서는 Repo의 예제를 참조하십시오. 다른 토큰 화제에 대한 자세한 내용은 Openai Cookbook을 참조하십시오.
버그가 발생하거나 개선에 대한 제안이 있으면 저장소에 문제를여십시오.
원본 코드와 .tiktoken
파일에 대해 @spolu에게 감사드립니다.
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다.