gpt-tokenizer 2.0.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -8
- package/cjs/GptEncoding.d.ts +33 -6
- package/cjs/GptEncoding.js +79 -34
- package/cjs/GptEncoding.js.map +1 -1
- package/cjs/GptEncoding.test.js +54 -0
- package/cjs/GptEncoding.test.js.map +1 -1
- package/cjs/encoding/cl100k_base.d.ts +2 -2
- package/cjs/encoding/cl100k_base.js +4 -2
- package/cjs/encoding/cl100k_base.js.map +1 -1
- package/cjs/encoding/p50k_base.d.ts +1 -1
- package/cjs/encoding/p50k_edit.d.ts +1 -1
- package/cjs/encoding/r50k_base.d.ts +1 -1
- package/cjs/main.d.ts +1 -0
- package/cjs/main.js +7 -0
- package/cjs/main.js.map +1 -1
- package/cjs/mapping.d.ts +37 -0
- package/cjs/mapping.js +34 -2
- package/cjs/mapping.js.map +1 -1
- package/cjs/model/ada.d.ts +1 -0
- package/cjs/model/ada.js +7 -0
- package/cjs/model/ada.js.map +1 -1
- package/cjs/model/babbage.d.ts +1 -0
- package/cjs/model/babbage.js +7 -0
- package/cjs/model/babbage.js.map +1 -1
- package/cjs/model/code-cushman-001.d.ts +1 -0
- package/cjs/model/code-cushman-001.js +7 -0
- package/cjs/model/code-cushman-001.js.map +1 -1
- package/cjs/model/code-cushman-002.d.ts +1 -0
- package/cjs/model/code-cushman-002.js +7 -0
- package/cjs/model/code-cushman-002.js.map +1 -1
- package/cjs/model/code-davinci-001.d.ts +1 -0
- package/cjs/model/code-davinci-001.js +7 -0
- package/cjs/model/code-davinci-001.js.map +1 -1
- package/cjs/model/code-davinci-002.d.ts +1 -0
- package/cjs/model/code-davinci-002.js +7 -0
- package/cjs/model/code-davinci-002.js.map +1 -1
- package/cjs/model/code-davinci-edit-001.d.ts +1 -0
- package/cjs/model/code-davinci-edit-001.js +7 -0
- package/cjs/model/code-davinci-edit-001.js.map +1 -1
- package/cjs/model/code-search-ada-code-001.d.ts +1 -0
- package/cjs/model/code-search-ada-code-001.js +7 -0
- package/cjs/model/code-search-ada-code-001.js.map +1 -1
- package/cjs/model/code-search-babbage-code-001.d.ts +1 -0
- package/cjs/model/code-search-babbage-code-001.js +7 -0
- package/cjs/model/code-search-babbage-code-001.js.map +1 -1
- package/cjs/model/curie.d.ts +1 -0
- package/cjs/model/curie.js +7 -0
- package/cjs/model/curie.js.map +1 -1
- package/cjs/model/cushman-codex.d.ts +1 -0
- package/cjs/model/cushman-codex.js +7 -0
- package/cjs/model/cushman-codex.js.map +1 -1
- package/cjs/model/davinci-codex.d.ts +1 -0
- package/cjs/model/davinci-codex.js +7 -0
- package/cjs/model/davinci-codex.js.map +1 -1
- package/cjs/model/davinci.d.ts +1 -0
- package/cjs/model/davinci.js +7 -0
- package/cjs/model/davinci.js.map +1 -1
- package/cjs/model/gpt-3.5-turbo-0301.d.ts +6 -0
- package/cjs/model/gpt-3.5-turbo-0301.js +38 -0
- package/cjs/model/gpt-3.5-turbo-0301.js.map +1 -0
- package/cjs/model/gpt-3.5-turbo.d.ts +6 -1
- package/cjs/model/gpt-3.5-turbo.js +21 -1
- package/cjs/model/gpt-3.5-turbo.js.map +1 -1
- package/cjs/model/gpt-4-0314.d.ts +6 -0
- package/cjs/model/gpt-4-0314.js +38 -0
- package/cjs/model/gpt-4-0314.js.map +1 -0
- package/cjs/model/gpt-4-32k-0314.d.ts +6 -0
- package/cjs/model/gpt-4-32k-0314.js +38 -0
- package/cjs/model/gpt-4-32k-0314.js.map +1 -0
- package/cjs/model/gpt-4-32k.d.ts +6 -0
- package/cjs/model/gpt-4-32k.js +38 -0
- package/cjs/model/gpt-4-32k.js.map +1 -0
- package/cjs/model/gpt-4.d.ts +6 -1
- package/cjs/model/gpt-4.js +21 -1
- package/cjs/model/gpt-4.js.map +1 -1
- package/cjs/model/text-ada-001.d.ts +1 -0
- package/cjs/model/text-ada-001.js +7 -0
- package/cjs/model/text-ada-001.js.map +1 -1
- package/cjs/model/text-babbage-001.d.ts +1 -0
- package/cjs/model/text-babbage-001.js +7 -0
- package/cjs/model/text-babbage-001.js.map +1 -1
- package/cjs/model/text-curie-001.d.ts +1 -0
- package/cjs/model/text-curie-001.js +7 -0
- package/cjs/model/text-curie-001.js.map +1 -1
- package/cjs/model/text-davinci-001.d.ts +1 -0
- package/cjs/model/text-davinci-001.js +7 -0
- package/cjs/model/text-davinci-001.js.map +1 -1
- package/cjs/model/text-davinci-002.d.ts +1 -0
- package/cjs/model/text-davinci-002.js +7 -0
- package/cjs/model/text-davinci-002.js.map +1 -1
- package/cjs/model/text-davinci-003.d.ts +1 -0
- package/cjs/model/text-davinci-003.js +7 -0
- package/cjs/model/text-davinci-003.js.map +1 -1
- package/cjs/model/text-davinci-edit-001.d.ts +1 -0
- package/cjs/model/text-davinci-edit-001.js +7 -0
- package/cjs/model/text-davinci-edit-001.js.map +1 -1
- package/cjs/model/text-embedding-ada-002.d.ts +1 -0
- package/cjs/model/text-embedding-ada-002.js +7 -0
- package/cjs/model/text-embedding-ada-002.js.map +1 -1
- package/cjs/model/text-search-ada-doc-001.d.ts +1 -0
- package/cjs/model/text-search-ada-doc-001.js +7 -0
- package/cjs/model/text-search-ada-doc-001.js.map +1 -1
- package/cjs/model/text-search-babbage-doc-001.d.ts +1 -0
- package/cjs/model/text-search-babbage-doc-001.js +7 -0
- package/cjs/model/text-search-babbage-doc-001.js.map +1 -1
- package/cjs/model/text-search-curie-doc-001.d.ts +1 -0
- package/cjs/model/text-search-curie-doc-001.js +7 -0
- package/cjs/model/text-search-curie-doc-001.js.map +1 -1
- package/cjs/model/text-search-davinci-doc-001.d.ts +1 -0
- package/cjs/model/text-search-davinci-doc-001.js +7 -0
- package/cjs/model/text-search-davinci-doc-001.js.map +1 -1
- package/cjs/model/text-similarity-ada-001.d.ts +1 -0
- package/cjs/model/text-similarity-ada-001.js +7 -0
- package/cjs/model/text-similarity-ada-001.js.map +1 -1
- package/cjs/model/text-similarity-babbage-001.d.ts +1 -0
- package/cjs/model/text-similarity-babbage-001.js +7 -0
- package/cjs/model/text-similarity-babbage-001.js.map +1 -1
- package/cjs/model/text-similarity-curie-001.d.ts +1 -0
- package/cjs/model/text-similarity-curie-001.js +7 -0
- package/cjs/model/text-similarity-curie-001.js.map +1 -1
- package/cjs/model/text-similarity-davinci-001.d.ts +1 -0
- package/cjs/model/text-similarity-davinci-001.js +7 -0
- package/cjs/model/text-similarity-davinci-001.js.map +1 -1
- package/cjs/modelParams.d.ts +5 -4
- package/cjs/modelParams.js +7 -4
- package/cjs/modelParams.js.map +1 -1
- package/cjs/specialTokens.d.ts +3 -0
- package/cjs/specialTokens.js +4 -1
- package/cjs/specialTokens.js.map +1 -1
- package/cjs/util.d.ts +2 -0
- package/cjs/util.js +19 -0
- package/cjs/util.js.map +1 -0
- package/dist/cl100k_base.js +1 -1
- package/dist/cl100k_base.js.map +1 -1
- package/dist/p50k_base.js +1 -1
- package/dist/p50k_base.js.map +1 -1
- package/dist/p50k_edit.js +1 -1
- package/dist/p50k_edit.js.map +1 -1
- package/dist/r50k_base.js +1 -1
- package/dist/r50k_base.js.map +1 -1
- package/esm/GptEncoding.d.ts +33 -6
- package/esm/GptEncoding.js +81 -36
- package/esm/GptEncoding.js.map +1 -1
- package/esm/GptEncoding.test.js +55 -1
- package/esm/GptEncoding.test.js.map +1 -1
- package/esm/codegen/generateByModel.js +19 -0
- package/esm/codegen/generateByModel.js.map +1 -0
- package/esm/{generateJsModels.js → codegen/generateJsEncodings.js} +4 -4
- package/esm/codegen/generateJsEncodings.js.map +1 -0
- package/esm/encoding/cl100k_base.d.ts +2 -2
- package/esm/encoding/cl100k_base.js +2 -2
- package/esm/encoding/cl100k_base.js.map +1 -1
- package/esm/encoding/p50k_base.d.ts +1 -1
- package/esm/encoding/p50k_edit.d.ts +1 -1
- package/esm/encoding/r50k_base.d.ts +1 -1
- package/esm/main.d.ts +1 -0
- package/esm/main.js +2 -0
- package/esm/main.js.map +1 -1
- package/esm/mapping.d.ts +37 -0
- package/esm/mapping.js +32 -0
- package/esm/mapping.js.map +1 -1
- package/esm/model/ada.d.ts +1 -0
- package/esm/model/ada.js +2 -0
- package/esm/model/ada.js.map +1 -1
- package/esm/model/babbage.d.ts +1 -0
- package/esm/model/babbage.js +2 -0
- package/esm/model/babbage.js.map +1 -1
- package/esm/model/code-cushman-001.d.ts +1 -0
- package/esm/model/code-cushman-001.js +2 -0
- package/esm/model/code-cushman-001.js.map +1 -1
- package/esm/model/code-cushman-002.d.ts +1 -0
- package/esm/model/code-cushman-002.js +2 -0
- package/esm/model/code-cushman-002.js.map +1 -1
- package/esm/model/code-davinci-001.d.ts +1 -0
- package/esm/model/code-davinci-001.js +2 -0
- package/esm/model/code-davinci-001.js.map +1 -1
- package/esm/model/code-davinci-002.d.ts +1 -0
- package/esm/model/code-davinci-002.js +2 -0
- package/esm/model/code-davinci-002.js.map +1 -1
- package/esm/model/code-davinci-edit-001.d.ts +1 -0
- package/esm/model/code-davinci-edit-001.js +2 -0
- package/esm/model/code-davinci-edit-001.js.map +1 -1
- package/esm/model/code-search-ada-code-001.d.ts +1 -0
- package/esm/model/code-search-ada-code-001.js +2 -0
- package/esm/model/code-search-ada-code-001.js.map +1 -1
- package/esm/model/code-search-babbage-code-001.d.ts +1 -0
- package/esm/model/code-search-babbage-code-001.js +2 -0
- package/esm/model/code-search-babbage-code-001.js.map +1 -1
- package/esm/model/curie.d.ts +1 -0
- package/esm/model/curie.js +2 -0
- package/esm/model/curie.js.map +1 -1
- package/esm/model/cushman-codex.d.ts +1 -0
- package/esm/model/cushman-codex.js +2 -0
- package/esm/model/cushman-codex.js.map +1 -1
- package/esm/model/davinci-codex.d.ts +1 -0
- package/esm/model/davinci-codex.js +2 -0
- package/esm/model/davinci-codex.js.map +1 -1
- package/esm/model/davinci.d.ts +1 -0
- package/esm/model/davinci.js +2 -0
- package/esm/model/davinci.js.map +1 -1
- package/esm/model/gpt-3.5-turbo-0301.d.ts +6 -0
- package/esm/model/gpt-3.5-turbo-0301.js +11 -0
- package/esm/model/gpt-3.5-turbo-0301.js.map +1 -0
- package/esm/model/gpt-3.5-turbo.d.ts +6 -1
- package/esm/model/gpt-3.5-turbo.js +10 -1
- package/esm/model/gpt-3.5-turbo.js.map +1 -1
- package/esm/model/gpt-4-0314.d.ts +6 -0
- package/esm/model/gpt-4-0314.js +11 -0
- package/esm/model/gpt-4-0314.js.map +1 -0
- package/esm/model/gpt-4-32k-0314.d.ts +6 -0
- package/esm/model/gpt-4-32k-0314.js +11 -0
- package/esm/model/gpt-4-32k-0314.js.map +1 -0
- package/esm/model/gpt-4-32k.d.ts +6 -0
- package/esm/model/gpt-4-32k.js +11 -0
- package/esm/model/gpt-4-32k.js.map +1 -0
- package/esm/model/gpt-4.d.ts +6 -1
- package/esm/model/gpt-4.js +10 -1
- package/esm/model/gpt-4.js.map +1 -1
- package/esm/model/text-ada-001.d.ts +1 -0
- package/esm/model/text-ada-001.js +2 -0
- package/esm/model/text-ada-001.js.map +1 -1
- package/esm/model/text-babbage-001.d.ts +1 -0
- package/esm/model/text-babbage-001.js +2 -0
- package/esm/model/text-babbage-001.js.map +1 -1
- package/esm/model/text-curie-001.d.ts +1 -0
- package/esm/model/text-curie-001.js +2 -0
- package/esm/model/text-curie-001.js.map +1 -1
- package/esm/model/text-davinci-001.d.ts +1 -0
- package/esm/model/text-davinci-001.js +2 -0
- package/esm/model/text-davinci-001.js.map +1 -1
- package/esm/model/text-davinci-002.d.ts +1 -0
- package/esm/model/text-davinci-002.js +2 -0
- package/esm/model/text-davinci-002.js.map +1 -1
- package/esm/model/text-davinci-003.d.ts +1 -0
- package/esm/model/text-davinci-003.js +2 -0
- package/esm/model/text-davinci-003.js.map +1 -1
- package/esm/model/text-davinci-edit-001.d.ts +1 -0
- package/esm/model/text-davinci-edit-001.js +2 -0
- package/esm/model/text-davinci-edit-001.js.map +1 -1
- package/esm/model/text-embedding-ada-002.d.ts +1 -0
- package/esm/model/text-embedding-ada-002.js +2 -0
- package/esm/model/text-embedding-ada-002.js.map +1 -1
- package/esm/model/text-search-ada-doc-001.d.ts +1 -0
- package/esm/model/text-search-ada-doc-001.js +2 -0
- package/esm/model/text-search-ada-doc-001.js.map +1 -1
- package/esm/model/text-search-babbage-doc-001.d.ts +1 -0
- package/esm/model/text-search-babbage-doc-001.js +2 -0
- package/esm/model/text-search-babbage-doc-001.js.map +1 -1
- package/esm/model/text-search-curie-doc-001.d.ts +1 -0
- package/esm/model/text-search-curie-doc-001.js +2 -0
- package/esm/model/text-search-curie-doc-001.js.map +1 -1
- package/esm/model/text-search-davinci-doc-001.d.ts +1 -0
- package/esm/model/text-search-davinci-doc-001.js +2 -0
- package/esm/model/text-search-davinci-doc-001.js.map +1 -1
- package/esm/model/text-similarity-ada-001.d.ts +1 -0
- package/esm/model/text-similarity-ada-001.js +2 -0
- package/esm/model/text-similarity-ada-001.js.map +1 -1
- package/esm/model/text-similarity-babbage-001.d.ts +1 -0
- package/esm/model/text-similarity-babbage-001.js +2 -0
- package/esm/model/text-similarity-babbage-001.js.map +1 -1
- package/esm/model/text-similarity-curie-001.d.ts +1 -0
- package/esm/model/text-similarity-curie-001.js +2 -0
- package/esm/model/text-similarity-curie-001.js.map +1 -1
- package/esm/model/text-similarity-davinci-001.d.ts +1 -0
- package/esm/model/text-similarity-davinci-001.js +2 -0
- package/esm/model/text-similarity-davinci-001.js.map +1 -1
- package/esm/modelParams.d.ts +5 -4
- package/esm/modelParams.js +6 -3
- package/esm/modelParams.js.map +1 -1
- package/esm/specialTokens.d.ts +3 -0
- package/esm/specialTokens.js +3 -0
- package/esm/specialTokens.js.map +1 -1
- package/esm/util.d.ts +2 -0
- package/esm/util.js +14 -0
- package/esm/util.js.map +1 -0
- package/package.json +8 -6
- package/src/GptEncoding.test.ts +78 -1
- package/src/GptEncoding.ts +125 -44
- package/src/__snapshots__/GptEncoding.test.ts.snap +811 -0
- package/src/codegen/generateByModel.ts +35 -0
- package/src/{generateJsModels.ts → codegen/generateJsEncodings.ts} +3 -3
- package/src/encoding/cl100k_base.ts +4 -0
- package/src/main.ts +2 -0
- package/src/mapping.ts +42 -0
- package/src/model/ada.ts +2 -0
- package/src/model/babbage.ts +2 -0
- package/src/model/code-cushman-001.ts +2 -0
- package/src/model/code-cushman-002.ts +2 -0
- package/src/model/code-davinci-001.ts +2 -0
- package/src/model/code-davinci-002.ts +2 -0
- package/src/model/code-davinci-edit-001.ts +2 -0
- package/src/model/code-search-ada-code-001.ts +2 -0
- package/src/model/code-search-babbage-code-001.ts +2 -0
- package/src/model/curie.ts +2 -0
- package/src/model/cushman-codex.ts +2 -0
- package/src/model/davinci-codex.ts +2 -0
- package/src/model/davinci.ts +2 -0
- package/src/model/gpt-3.5-turbo-0301.ts +32 -0
- package/src/model/gpt-3.5-turbo.ts +32 -1
- package/src/model/gpt-4-0314.ts +32 -0
- package/src/model/gpt-4-32k-0314.ts +32 -0
- package/src/model/gpt-4-32k.ts +32 -0
- package/src/model/gpt-4.ts +32 -1
- package/src/model/text-ada-001.ts +2 -0
- package/src/model/text-babbage-001.ts +2 -0
- package/src/model/text-curie-001.ts +2 -0
- package/src/model/text-davinci-001.ts +2 -0
- package/src/model/text-davinci-002.ts +2 -0
- package/src/model/text-davinci-003.ts +2 -0
- package/src/model/text-davinci-edit-001.ts +2 -0
- package/src/model/text-embedding-ada-002.ts +2 -0
- package/src/model/text-search-ada-doc-001.ts +2 -0
- package/src/model/text-search-babbage-doc-001.ts +2 -0
- package/src/model/text-search-curie-doc-001.ts +2 -0
- package/src/model/text-search-davinci-doc-001.ts +2 -0
- package/src/model/text-similarity-ada-001.ts +2 -0
- package/src/model/text-similarity-babbage-001.ts +2 -0
- package/src/model/text-similarity-curie-001.ts +2 -0
- package/src/model/text-similarity-davinci-001.ts +2 -0
- package/src/modelParams.ts +17 -10
- package/src/specialTokens.ts +3 -0
- package/src/util.ts +15 -0
- package/esm/generateByModel.js +0 -13
- package/esm/generateByModel.js.map +0 -1
- package/esm/generateJsModels.js.map +0 -1
- package/src/generateByModel.ts +0 -20
- /package/esm/{generateByModel.d.ts → codegen/generateByModel.d.ts} +0 -0
- /package/esm/{generateJsModels.d.ts → codegen/generateJsEncodings.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -4,21 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
`gpt-tokenizer` is a highly optimized Token Byte Pair Encoder/Decoder for all OpenAI's models (including those used by GPT-2, GPT-3, GPT-3.5 and GPT-4). It's written in TypeScript, and is fully compatible with all modern JavaScript environments.
|
|
6
6
|
|
|
7
|
+
This package is a port of OpenAI's [tiktoken](https://github.com/openai/tiktoken), with some additional features sprinkled on top.
|
|
8
|
+
|
|
7
9
|
OpenAI's GPT models utilize byte pair encoding to transform text into a sequence of integers before feeding them into the model.
|
|
8
10
|
|
|
9
11
|
As of 2023, it is the most feature-complete, open-source GPT tokenizer on NPM. It implements some unique features, such as:
|
|
10
12
|
|
|
13
|
+
- Support for easily tokenizing chats thanks to the `encodeChat` function
|
|
11
14
|
- Support for all current OpenAI models (available encodings: `r50k_base`, `p50k_base`, `p50k_edit` and `cl100k_base`)
|
|
12
|
-
- Generator function versions of both the decoder and encoder
|
|
15
|
+
- Generator function versions of both the decoder and encoder functions
|
|
13
16
|
- Provides the ability to decode an asynchronous stream of data (using `decodeAsyncGenerator` and `decodeGenerator` with any iterable input)
|
|
14
17
|
- No global cache (no accidental memory leaks, as with the original GPT-3-Encoder implementation)
|
|
15
|
-
- Includes a highly performant `isWithinTokenLimit` function to assess token limit without encoding the entire text
|
|
18
|
+
- Includes a highly performant `isWithinTokenLimit` function to assess token limit without encoding the entire text/chat
|
|
16
19
|
- Improves overall performance by eliminating transitive arrays
|
|
17
20
|
- Type-safe (written in TypeScript)
|
|
18
21
|
- Works in the browser out-of-the-box
|
|
19
22
|
|
|
20
|
-
This package is a port of OpenAI's [tiktoken](https://github.com/openai/tiktoken), with some additional features sprinkled on top.
|
|
21
|
-
|
|
22
23
|
Thanks to @dmitry-brazhenko's [SharpToken](https://github.com/dmitry-brazhenko/SharpToken), whose code was served as a reference for the port.
|
|
23
24
|
|
|
24
25
|
Historical note: This package started off as a fork of [latitudegames/GPT-3-Encoder](https://github.com/latitudegames/GPT-3-Encoder), but version 2.0 was rewritten from scratch.
|
|
@@ -38,21 +39,25 @@ npm install gpt-tokenizer
|
|
|
38
39
|
|
|
39
40
|
<script>
|
|
40
41
|
// the package is now available as a global:
|
|
41
|
-
const { encode, decode } =
|
|
42
|
+
const { encode, decode } = GPTTokenizer_cl100k_base
|
|
42
43
|
</script>
|
|
43
44
|
```
|
|
44
45
|
|
|
45
|
-
If you wish to use a custom encoding, fetch the relevant script
|
|
46
|
+
If you wish to use a custom encoding, fetch the relevant script.
|
|
46
47
|
|
|
47
48
|
- https://unpkg.com/gpt-tokenizer/dist/cl100k_base.js
|
|
48
49
|
- https://unpkg.com/gpt-tokenizer/dist/p50k_base.js
|
|
49
50
|
- https://unpkg.com/gpt-tokenizer/dist/p50k_edit.js
|
|
50
51
|
- https://unpkg.com/gpt-tokenizer/dist/r50k_base.js
|
|
51
52
|
|
|
53
|
+
The global name is a concatenation: `GPTTokenizer_${encoding}`.
|
|
54
|
+
|
|
52
55
|
Refer to [supported models and their encodings](#Supported-models-and-their-encodings) section for more information.
|
|
53
56
|
|
|
54
57
|
## Playground
|
|
55
58
|
|
|
59
|
+
The playground is published under a memorable URL: https://gpt-tokenizer.dev/
|
|
60
|
+
|
|
56
61
|
You can play with the package in the browser using the [Playground](https://codesandbox.io/s/gpt-tokenizer-tjcjoz?fontsize=14&hidenavigation=1&theme=dark).
|
|
57
62
|
|
|
58
63
|
[](https://codesandbox.io/s/gpt-tokenizer-tjcjoz?fontsize=14&hidenavigation=1&theme=dark)
|
|
@@ -64,6 +69,7 @@ The playground mimics the official [OpenAI Tokenizer](https://platform.openai.co
|
|
|
64
69
|
```typescript
|
|
65
70
|
import {
|
|
66
71
|
encode,
|
|
72
|
+
encodeChat,
|
|
67
73
|
decode,
|
|
68
74
|
isWithinTokenLimit,
|
|
69
75
|
encodeGenerator,
|
|
@@ -84,6 +90,18 @@ const decodedText = decode(tokens)
|
|
|
84
90
|
// returns false if the limit is exceeded, otherwise returns the actual number of tokens (truthy value)
|
|
85
91
|
const withinTokenLimit = isWithinTokenLimit(text, tokenLimit)
|
|
86
92
|
|
|
93
|
+
// Example chat:
|
|
94
|
+
const chat = [
|
|
95
|
+
{ role: 'system', content: 'You are a helpful assistant.' },
|
|
96
|
+
{ role: 'assistant', content: 'gpt-tokenizer is awesome.' },
|
|
97
|
+
]
|
|
98
|
+
|
|
99
|
+
// Encode chat into tokens
|
|
100
|
+
const chatTokens = encodeChat(chat)
|
|
101
|
+
|
|
102
|
+
// Check if chat is within the token limit
|
|
103
|
+
const chatWithinTokenLimit = isWithinTokenLimit(chat, tokenLimit)
|
|
104
|
+
|
|
87
105
|
// Encode text using generator
|
|
88
106
|
for (const tokenChunk of encodeGenerator(text)) {
|
|
89
107
|
console.log(tokenChunk)
|
|
@@ -127,10 +145,13 @@ import {
|
|
|
127
145
|
|
|
128
146
|
chat:
|
|
129
147
|
|
|
130
|
-
- `gpt-4` (`cl100k_base`)
|
|
148
|
+
- `gpt-4-32k` (`cl100k_base`)
|
|
149
|
+
- `gpt-4-0314` (`cl100k_base`)
|
|
150
|
+
- `gpt-4-32k-0314` (`cl100k_base`)
|
|
131
151
|
- `gpt-3.5-turbo` (`cl100k_base`)
|
|
152
|
+
- `gpt-3.5-turbo-0301` (`cl100k_base`)
|
|
132
153
|
|
|
133
|
-
text:
|
|
154
|
+
text-only:
|
|
134
155
|
|
|
135
156
|
- `text-davinci-003` (`p50k_base`)
|
|
136
157
|
- `text-davinci-002` (`p50k_base`)
|
|
@@ -216,6 +237,24 @@ const tokenLimit = 10
|
|
|
216
237
|
const withinTokenLimit = isWithinTokenLimit(text, tokenLimit)
|
|
217
238
|
```
|
|
218
239
|
|
|
240
|
+
### `encodeChat(chat: ChatMessage[], model?: ModelName): number[]`
|
|
241
|
+
|
|
242
|
+
Encodes the given chat into a sequence of tokens.
|
|
243
|
+
|
|
244
|
+
If you didn't import the model version directly, or if `model` wasn't provided during initialization, it must be provided here to correctly tokenize the chat for a given model. Use this method when you need to transform a chat into the token format that the GPT models can process.
|
|
245
|
+
|
|
246
|
+
Example:
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
import { encodeChat } from 'gpt-tokenizer'
|
|
250
|
+
|
|
251
|
+
const chat = [
|
|
252
|
+
{ role: 'system', content: 'You are a helpful assistant.' },
|
|
253
|
+
{ role: 'assistant', content: 'gpt-tokenizer is awesome.' },
|
|
254
|
+
]
|
|
255
|
+
const tokens = encodeChat(chat)
|
|
256
|
+
```
|
|
257
|
+
|
|
219
258
|
### `encodeGenerator(text: string): Generator<number[], void, undefined>`
|
|
220
259
|
|
|
221
260
|
Encodes the given text using a generator, yielding chunks of tokens.
|
|
@@ -233,6 +272,10 @@ for (const tokenChunk of encodeGenerator(text)) {
|
|
|
233
272
|
}
|
|
234
273
|
```
|
|
235
274
|
|
|
275
|
+
### `encodeChatGenerator(chat: Iterator<ChatMessage>, model?: ModelName): Generator<number[], void, undefined>`
|
|
276
|
+
|
|
277
|
+
Same as `encodeChat`, but uses a generator as output, and may use any iterator as the input `chat`.
|
|
278
|
+
|
|
236
279
|
### `decodeGenerator(tokens: Iterable<number>): Generator<string, void, undefined>`
|
|
237
280
|
|
|
238
281
|
Decodes a sequence of tokens using a generator, yielding chunks of decoded text.
|
|
@@ -284,6 +327,9 @@ import {
|
|
|
284
327
|
FimMiddle,
|
|
285
328
|
FimPrefix,
|
|
286
329
|
FimSuffix,
|
|
330
|
+
ImStart,
|
|
331
|
+
ImEnd,
|
|
332
|
+
ImSep,
|
|
287
333
|
encode,
|
|
288
334
|
} from 'gpt-tokenizer'
|
|
289
335
|
|
package/cjs/GptEncoding.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { type EncodingName, type ModelName } from './mapping.js';
|
|
2
2
|
import { type GetMergeableRanksAsyncFn, type GetMergeableRanksFn } from './modelParams.js';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const ALL_SPECIAL_TOKENS = "all";
|
|
4
|
+
export interface EncodeOptions {
|
|
5
|
+
allowedSpecial?: Set<string>;
|
|
6
|
+
disallowedSpecial?: Set<string>;
|
|
7
|
+
}
|
|
8
|
+
export interface ChatMessage {
|
|
9
|
+
role?: 'system' | 'user' | 'assistant';
|
|
10
|
+
name?: string;
|
|
11
|
+
content: string;
|
|
12
|
+
}
|
|
13
|
+
export interface EncodeChatOptions {
|
|
14
|
+
primeWithAssistantResponse?: string;
|
|
15
|
+
}
|
|
4
16
|
export declare class GptEncoding {
|
|
5
17
|
static EndOfPrompt: string;
|
|
6
18
|
static EndOfText: string;
|
|
@@ -8,6 +20,7 @@ export declare class GptEncoding {
|
|
|
8
20
|
static FimPrefix: string;
|
|
9
21
|
static FimSuffix: string;
|
|
10
22
|
decoder: TextDecoder;
|
|
23
|
+
modelName?: ModelName;
|
|
11
24
|
private bytePairEncodingCoreProcessor;
|
|
12
25
|
private specialTokenMapping;
|
|
13
26
|
private constructor();
|
|
@@ -15,14 +28,28 @@ export declare class GptEncoding {
|
|
|
15
28
|
static getEncodingApiForModel(modelName: ModelName, getMergeableRanks: GetMergeableRanksFn): GptEncoding;
|
|
16
29
|
static getEncodingApiAsync(encodingName: EncodingName, getMergeableRanks: GetMergeableRanksAsyncFn): Promise<GptEncoding>;
|
|
17
30
|
static getEncodingApiForModelAsync(modelName: ModelName, getMergeableRanks: GetMergeableRanksAsyncFn): Promise<GptEncoding>;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
31
|
+
encodeGenerator(lineToEncode: string, { allowedSpecial, disallowedSpecial, }?: EncodeOptions): Generator<number[], number, undefined>;
|
|
32
|
+
encode(lineToEncode: string, encodeOptions?: EncodeOptions): number[];
|
|
33
|
+
/**
|
|
34
|
+
* Progressively tokenizes an OpenAI chat.
|
|
35
|
+
* Warning: gpt-3.5-turbo and gpt-4 chat format may change over time.
|
|
36
|
+
* Returns tokens assuming the 'gpt-3.5-turbo-0301' / 'gpt-4-0314' format.
|
|
37
|
+
* Based on OpenAI's guidelines: https://github.com/openai/openai-python/blob/main/chatml.md
|
|
38
|
+
* Also mentioned in section 6 of this document: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb
|
|
39
|
+
*/
|
|
40
|
+
encodeChatGenerator(chat: Iterable<ChatMessage>, model?: "gpt-4" | "gpt-4-32k" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo" | "gpt-3.5-turbo-0301" | "text-davinci-003" | "text-davinci-002" | "text-davinci-001" | "text-curie-001" | "text-babbage-001" | "text-ada-001" | "davinci" | "curie" | "babbage" | "ada" | "code-davinci-002" | "code-davinci-001" | "code-cushman-002" | "code-cushman-001" | "davinci-codex" | "cushman-codex" | "text-davinci-edit-001" | "code-davinci-edit-001" | "text-embedding-ada-002" | "text-similarity-davinci-001" | "text-similarity-curie-001" | "text-similarity-babbage-001" | "text-similarity-ada-001" | "text-search-davinci-doc-001" | "text-search-curie-doc-001" | "text-search-babbage-doc-001" | "text-search-ada-doc-001" | "code-search-babbage-code-001" | "code-search-ada-code-001" | undefined): Generator<number[], void, undefined>;
|
|
41
|
+
/**
|
|
42
|
+
* Encodes a chat into a single array of tokens.
|
|
43
|
+
* Warning: gpt-3.5-turbo and gpt-4 chat format may change over time.
|
|
44
|
+
* Returns tokens assuming the 'gpt-3.5-turbo-0301' / 'gpt-4-0314' format.
|
|
45
|
+
* Based on OpenAI's guidelines: https://github.com/openai/openai-python/blob/main/chatml.md
|
|
46
|
+
* Also mentioned in section 6 of this document: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb
|
|
47
|
+
*/
|
|
48
|
+
encodeChat(chat: readonly ChatMessage[], model?: "gpt-4" | "gpt-4-32k" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo" | "gpt-3.5-turbo-0301" | "text-davinci-003" | "text-davinci-002" | "text-davinci-001" | "text-curie-001" | "text-babbage-001" | "text-ada-001" | "davinci" | "curie" | "babbage" | "ada" | "code-davinci-002" | "code-davinci-001" | "code-cushman-002" | "code-cushman-001" | "davinci-codex" | "cushman-codex" | "text-davinci-edit-001" | "code-davinci-edit-001" | "text-embedding-ada-002" | "text-similarity-davinci-001" | "text-similarity-curie-001" | "text-similarity-babbage-001" | "text-similarity-ada-001" | "text-search-davinci-doc-001" | "text-search-curie-doc-001" | "text-search-babbage-doc-001" | "text-search-ada-doc-001" | "code-search-babbage-code-001" | "code-search-ada-code-001" | undefined): number[];
|
|
22
49
|
/**
|
|
23
50
|
* @returns {false | number} false if token limit is exceeded, otherwise the number of tokens
|
|
24
51
|
*/
|
|
25
|
-
isWithinTokenLimit(
|
|
52
|
+
isWithinTokenLimit(input: string | Iterable<ChatMessage>, tokenLimit: number): false | number;
|
|
26
53
|
decodeGenerator(inputTokensToDecode: Iterable<number>): Generator<string, void>;
|
|
27
54
|
decodeAsyncGenerator(inputTokensToDecode: AsyncIterable<number>): AsyncGenerator<string, void>;
|
|
28
55
|
decode(inputTokensToDecode: Iterable<number>): string;
|
package/cjs/GptEncoding.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GptEncoding = exports.
|
|
3
|
+
exports.GptEncoding = exports.ALL_SPECIAL_TOKENS = void 0;
|
|
4
4
|
/* eslint-disable no-param-reassign */
|
|
5
5
|
const BytePairEncodingCore_js_1 = require("./BytePairEncodingCore.js");
|
|
6
|
-
const escapeRegExp_js_1 = require("./escapeRegExp.js");
|
|
7
6
|
const mapping_js_1 = require("./mapping.js");
|
|
8
7
|
const modelParams_js_1 = require("./modelParams.js");
|
|
9
8
|
const specialTokens_js_1 = require("./specialTokens.js");
|
|
10
9
|
const utfUtil_js_1 = require("./utfUtil.js");
|
|
11
|
-
|
|
10
|
+
const util_js_1 = require("./util.js");
|
|
11
|
+
exports.ALL_SPECIAL_TOKENS = 'all';
|
|
12
12
|
class GptEncoding {
|
|
13
13
|
static EndOfPrompt = specialTokens_js_1.EndOfPrompt;
|
|
14
14
|
static EndOfText = specialTokens_js_1.EndOfText;
|
|
@@ -16,10 +16,11 @@ class GptEncoding {
|
|
|
16
16
|
static FimPrefix = specialTokens_js_1.FimPrefix;
|
|
17
17
|
static FimSuffix = specialTokens_js_1.FimSuffix;
|
|
18
18
|
decoder = new TextDecoder('utf8');
|
|
19
|
+
modelName;
|
|
19
20
|
bytePairEncodingCoreProcessor;
|
|
20
21
|
specialTokenMapping;
|
|
21
|
-
constructor({ tokenSplitRegex, mergeableBytePairRanks, specialTokenMapping, expectedVocabularySize, }) {
|
|
22
|
-
const maxTokenValue = Math.max(
|
|
22
|
+
constructor({ tokenSplitRegex, mergeableBytePairRanks, specialTokenMapping, expectedVocabularySize, modelName, }) {
|
|
23
|
+
const maxTokenValue = Math.max((0, util_js_1.getMaxValueFromMap)(mergeableBytePairRanks), (0, util_js_1.getMaxValueFromMap)(specialTokenMapping));
|
|
23
24
|
this.specialTokenMapping = specialTokenMapping;
|
|
24
25
|
if (expectedVocabularySize !== undefined) {
|
|
25
26
|
if (mergeableBytePairRanks.size + specialTokenMapping.size !==
|
|
@@ -41,14 +42,16 @@ class GptEncoding {
|
|
|
41
42
|
this.decodeGenerator = this.decodeGenerator.bind(this);
|
|
42
43
|
this.decodeAsyncGenerator = this.decodeAsyncGenerator.bind(this);
|
|
43
44
|
this.isWithinTokenLimit = this.isWithinTokenLimit.bind(this);
|
|
45
|
+
this.modelName = modelName;
|
|
44
46
|
}
|
|
45
47
|
static getEncodingApi(encodingName, getMergeableRanks) {
|
|
46
|
-
const modelParams = (0, modelParams_js_1.
|
|
48
|
+
const modelParams = (0, modelParams_js_1.getEncodingParams)(encodingName, getMergeableRanks);
|
|
47
49
|
return new GptEncoding(modelParams);
|
|
48
50
|
}
|
|
49
51
|
static getEncodingApiForModel(modelName, getMergeableRanks) {
|
|
50
52
|
const encodingName = mapping_js_1.modelToEncodingMap[modelName];
|
|
51
|
-
|
|
53
|
+
const modelParams = (0, modelParams_js_1.getEncodingParams)(encodingName, getMergeableRanks);
|
|
54
|
+
return new GptEncoding({ ...modelParams, modelName });
|
|
52
55
|
}
|
|
53
56
|
static async getEncodingApiAsync(encodingName, getMergeableRanks) {
|
|
54
57
|
const modelParams = await (0, modelParams_js_1.getModelParamsAsync)(encodingName, getMergeableRanks);
|
|
@@ -56,33 +59,21 @@ class GptEncoding {
|
|
|
56
59
|
}
|
|
57
60
|
static async getEncodingApiForModelAsync(modelName, getMergeableRanks) {
|
|
58
61
|
const encodingName = mapping_js_1.modelToEncodingMap[modelName];
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
static getMaxValueFromMap(map) {
|
|
62
|
-
let max = 0;
|
|
63
|
-
map.forEach((val) => {
|
|
64
|
-
max = Math.max(max, val);
|
|
65
|
-
});
|
|
66
|
-
return max;
|
|
67
|
-
}
|
|
68
|
-
static specialTokenRegex(tokens) {
|
|
69
|
-
const escapedTokens = [...tokens].map(escapeRegExp_js_1.escapeRegExp);
|
|
70
|
-
const inner = escapedTokens.join('|');
|
|
71
|
-
return new RegExp(`(${inner})`);
|
|
62
|
+
const modelParams = await (0, modelParams_js_1.getModelParamsAsync)(encodingName, getMergeableRanks);
|
|
63
|
+
return new GptEncoding({ ...modelParams, modelName });
|
|
72
64
|
}
|
|
73
|
-
encodeGenerator(lineToEncode, allowedSpecial = new Set(), disallowedSpecial = new Set([
|
|
74
|
-
exports.DISALLOW_ALL_SPECIAL_TOKENS,
|
|
75
|
-
])) {
|
|
65
|
+
encodeGenerator(lineToEncode, { allowedSpecial = new Set(), disallowedSpecial = new Set([exports.ALL_SPECIAL_TOKENS]), } = {}) {
|
|
76
66
|
const specialTokensSet = new Set(this.specialTokenMapping.keys());
|
|
77
|
-
if (disallowedSpecial.has(exports.
|
|
67
|
+
if (disallowedSpecial.has(exports.ALL_SPECIAL_TOKENS)) {
|
|
78
68
|
disallowedSpecial = new Set(specialTokensSet);
|
|
69
|
+
allowedSpecial.forEach((val) => disallowedSpecial.delete(val));
|
|
79
70
|
disallowedSpecial.forEach((val) => allowedSpecial.delete(val));
|
|
80
71
|
}
|
|
81
|
-
if (allowedSpecial.has(exports.
|
|
72
|
+
if (allowedSpecial.has(exports.ALL_SPECIAL_TOKENS)) {
|
|
82
73
|
allowedSpecial = specialTokensSet;
|
|
83
74
|
}
|
|
84
75
|
if (disallowedSpecial.size > 0) {
|
|
85
|
-
const regexPattern =
|
|
76
|
+
const regexPattern = (0, util_js_1.getSpecialTokenRegex)(disallowedSpecial);
|
|
86
77
|
const match = lineToEncode.match(regexPattern);
|
|
87
78
|
if (match !== null) {
|
|
88
79
|
throw new Error(`Disallowed special token found: ${match[0]}`);
|
|
@@ -90,18 +81,72 @@ class GptEncoding {
|
|
|
90
81
|
}
|
|
91
82
|
return this.bytePairEncodingCoreProcessor.encodeNative(lineToEncode, allowedSpecial);
|
|
92
83
|
}
|
|
93
|
-
encode(lineToEncode,
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
84
|
+
encode(lineToEncode, encodeOptions = {}) {
|
|
85
|
+
return [...this.encodeGenerator(lineToEncode, encodeOptions)].flat();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Progressively tokenizes an OpenAI chat.
|
|
89
|
+
* Warning: gpt-3.5-turbo and gpt-4 chat format may change over time.
|
|
90
|
+
* Returns tokens assuming the 'gpt-3.5-turbo-0301' / 'gpt-4-0314' format.
|
|
91
|
+
* Based on OpenAI's guidelines: https://github.com/openai/openai-python/blob/main/chatml.md
|
|
92
|
+
* Also mentioned in section 6 of this document: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb
|
|
93
|
+
*/
|
|
94
|
+
*encodeChatGenerator(chat, model = this.modelName) {
|
|
95
|
+
if (!model) {
|
|
96
|
+
throw new Error('Model name must be provided either during initialization or passed in to the method.');
|
|
97
|
+
}
|
|
98
|
+
const params = mapping_js_1.chatModelParams[model];
|
|
99
|
+
const chatStartToken = this.specialTokenMapping.get(specialTokens_js_1.ImStart);
|
|
100
|
+
const chatEndToken = this.specialTokenMapping.get(specialTokens_js_1.ImEnd);
|
|
101
|
+
if (!params || chatStartToken === undefined || chatEndToken === undefined) {
|
|
102
|
+
throw new Error(`Model '${model}' does not support chat.`);
|
|
103
|
+
}
|
|
104
|
+
const allowedSpecial = new Set([specialTokens_js_1.ImSep]);
|
|
105
|
+
const { messageSeparator, roleSeparator } = params;
|
|
106
|
+
const encodedMessageSeparator = messageSeparator.length > 0 ? this.encode(messageSeparator) : [];
|
|
107
|
+
const encodedRoleSeparator = roleSeparator.length > 0
|
|
108
|
+
? this.encode(roleSeparator, { allowedSpecial })
|
|
109
|
+
: [];
|
|
110
|
+
const nameCache = new Map();
|
|
111
|
+
for (const { role = 'system', name = role, content } of chat) {
|
|
112
|
+
if (content === undefined) {
|
|
113
|
+
throw new Error('Content must be defined for all messages.');
|
|
114
|
+
}
|
|
115
|
+
yield [chatStartToken];
|
|
116
|
+
const encodedName = nameCache.get(name) ?? this.encode(name);
|
|
117
|
+
nameCache.set(name, encodedName);
|
|
118
|
+
yield encodedName;
|
|
119
|
+
if (encodedRoleSeparator.length > 0) {
|
|
120
|
+
yield encodedRoleSeparator;
|
|
121
|
+
}
|
|
122
|
+
yield* this.encodeGenerator(content);
|
|
123
|
+
yield [chatEndToken];
|
|
124
|
+
yield encodedMessageSeparator;
|
|
125
|
+
}
|
|
126
|
+
// every reply is primed with <|start|>assistant<|message|>
|
|
127
|
+
yield [chatStartToken];
|
|
128
|
+
yield* this.encodeGenerator('assistant');
|
|
129
|
+
if (encodedRoleSeparator.length > 0) {
|
|
130
|
+
yield encodedRoleSeparator;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Encodes a chat into a single array of tokens.
|
|
135
|
+
* Warning: gpt-3.5-turbo and gpt-4 chat format may change over time.
|
|
136
|
+
* Returns tokens assuming the 'gpt-3.5-turbo-0301' / 'gpt-4-0314' format.
|
|
137
|
+
* Based on OpenAI's guidelines: https://github.com/openai/openai-python/blob/main/chatml.md
|
|
138
|
+
* Also mentioned in section 6 of this document: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb
|
|
139
|
+
*/
|
|
140
|
+
encodeChat(chat, model = this.modelName) {
|
|
141
|
+
return [...this.encodeChatGenerator(chat, model)].flat();
|
|
99
142
|
}
|
|
100
143
|
/**
|
|
101
144
|
* @returns {false | number} false if token limit is exceeded, otherwise the number of tokens
|
|
102
145
|
*/
|
|
103
|
-
isWithinTokenLimit(
|
|
104
|
-
const tokenGenerator =
|
|
146
|
+
isWithinTokenLimit(input, tokenLimit) {
|
|
147
|
+
const tokenGenerator = typeof input === 'string'
|
|
148
|
+
? this.encodeGenerator(input)
|
|
149
|
+
: this.encodeChatGenerator(input);
|
|
105
150
|
let count = 0;
|
|
106
151
|
for (const tokens of tokenGenerator) {
|
|
107
152
|
count += tokens.length;
|
package/cjs/GptEncoding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GptEncoding.js","sourceRoot":"","sources":["../src/GptEncoding.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,uEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"GptEncoding.js","sourceRoot":"","sources":["../src/GptEncoding.ts"],"names":[],"mappings":"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"}
|
package/cjs/GptEncoding.test.js
CHANGED
|
@@ -134,6 +134,60 @@ describe.each(mapping_js_1.encodingNames)('%s', (encodingName) => {
|
|
|
134
134
|
});
|
|
135
135
|
});
|
|
136
136
|
});
|
|
137
|
+
const chatModelNames = Object.keys(mapping_js_1.chatModelParams);
|
|
138
|
+
const exampleMessages = [
|
|
139
|
+
{
|
|
140
|
+
role: 'system',
|
|
141
|
+
content: 'You are a helpful, pattern-following assistant that translates corporate jargon into plain English.',
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
role: 'system',
|
|
145
|
+
name: 'example_user',
|
|
146
|
+
content: 'New synergies will help drive top-line growth.',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
role: 'system',
|
|
150
|
+
name: 'example_assistant',
|
|
151
|
+
content: 'Things working well together will increase revenue.',
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
role: 'system',
|
|
155
|
+
name: 'example_user',
|
|
156
|
+
content: "Let's circle back when we have more bandwidth to touch base on opportunities for increased leverage.",
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
role: 'system',
|
|
160
|
+
name: 'example_assistant',
|
|
161
|
+
content: "Let's talk later when we're less busy about how to do better.",
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
role: 'user',
|
|
165
|
+
content: "This late pivot means we don't have time to boil the ocean for the client deliverable.",
|
|
166
|
+
},
|
|
167
|
+
];
|
|
168
|
+
describe.each(chatModelNames)('%s', (modelName) => {
|
|
169
|
+
const encoding = GptEncoding_js_1.GptEncoding.getEncodingApiForModel(modelName, resolveEncoding_js_1.resolveEncoding);
|
|
170
|
+
const expectedEncodedLength = modelName.startsWith('gpt-3.5-turbo')
|
|
171
|
+
? 127
|
|
172
|
+
: 121;
|
|
173
|
+
describe('chat functionality', () => {
|
|
174
|
+
it('encodes a chat correctly', () => {
|
|
175
|
+
const encoded = encoding.encodeChat(exampleMessages);
|
|
176
|
+
expect(encoded).toMatchSnapshot();
|
|
177
|
+
expect(encoded).toHaveLength(expectedEncodedLength);
|
|
178
|
+
const decoded = encoding.decode(encoded);
|
|
179
|
+
expect(decoded).toMatchSnapshot();
|
|
180
|
+
});
|
|
181
|
+
it('isWithinTokenLimit: false', () => {
|
|
182
|
+
const isWithinTokenLimit = encoding.isWithinTokenLimit(exampleMessages, 50);
|
|
183
|
+
expect(isWithinTokenLimit).toBe(false);
|
|
184
|
+
});
|
|
185
|
+
it('isWithinTokenLimit: true (number)', () => {
|
|
186
|
+
const isWithinTokenLimit = encoding.isWithinTokenLimit(exampleMessages, 150);
|
|
187
|
+
expect(isWithinTokenLimit).toBe(expectedEncodedLength);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
});
|
|
137
191
|
function loadTestPlans() {
|
|
138
192
|
const testPlanPath = path_1.default.join(__dirname, '../data/TestPlans.txt');
|
|
139
193
|
const testPlanData = fs_1.default.readFileSync(testPlanPath, 'utf8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GptEncoding.test.js","sourceRoot":"","sources":["../src/GptEncoding.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,qDAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"GptEncoding.test.js","sourceRoot":"","sources":["../src/GptEncoding.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GptEncoding } from '../GptEncoding.js';
|
|
2
2
|
export * from '../specialTokens.js';
|
|
3
3
|
declare const api: GptEncoding;
|
|
4
|
-
declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void, unknown>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, unknown>, encode: (lineToEncode: string,
|
|
5
|
-
export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, };
|
|
4
|
+
declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void, unknown>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, unknown>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, { allowedSpecial, disallowedSpecial, }?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => number | false, encodeChat: (chat: readonly import("../GptEncoding.js").ChatMessage[], model?: "gpt-4" | "gpt-4-32k" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo" | "gpt-3.5-turbo-0301" | "text-davinci-003" | "text-davinci-002" | "text-davinci-001" | "text-curie-001" | "text-babbage-001" | "text-ada-001" | "davinci" | "curie" | "babbage" | "ada" | "code-davinci-002" | "code-davinci-001" | "code-cushman-002" | "code-cushman-001" | "davinci-codex" | "cushman-codex" | "text-davinci-edit-001" | "code-davinci-edit-001" | "text-embedding-ada-002" | "text-similarity-davinci-001" | "text-similarity-curie-001" | "text-similarity-babbage-001" | "text-similarity-ada-001" | "text-search-davinci-doc-001" | "text-search-curie-doc-001" | "text-search-babbage-doc-001" | "text-search-ada-doc-001" | "code-search-babbage-code-001" | "code-search-ada-code-001" | undefined) => number[], encodeChatGenerator: (chat: Iterable<import("../GptEncoding.js").ChatMessage>, model?: "gpt-4" | "gpt-4-32k" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo" | "gpt-3.5-turbo-0301" | "text-davinci-003" | "text-davinci-002" | "text-davinci-001" | "text-curie-001" | "text-babbage-001" | "text-ada-001" | "davinci" | "curie" | "babbage" | "ada" | "code-davinci-002" | "code-davinci-001" | "code-cushman-002" | "code-cushman-001" | "davinci-codex" | "cushman-codex" | "text-davinci-edit-001" | "code-davinci-edit-001" | "text-embedding-ada-002" | "text-similarity-davinci-001" | "text-similarity-curie-001" | "text-similarity-babbage-001" | "text-similarity-ada-001" | "text-search-davinci-doc-001" | "text-search-curie-doc-001" | "text-search-babbage-doc-001" | "text-search-ada-doc-001" | "code-search-babbage-code-001" | "code-search-ada-code-001" | undefined) => Generator<number[], void, undefined>;
|
|
5
|
+
export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, };
|
|
6
6
|
export default api;
|
|
@@ -17,20 +17,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.isWithinTokenLimit = exports.encodeGenerator = exports.encode = exports.decodeGenerator = exports.decodeAsyncGenerator = exports.decode = void 0;
|
|
20
|
+
exports.isWithinTokenLimit = exports.encodeGenerator = exports.encodeChatGenerator = exports.encodeChat = exports.encode = exports.decodeGenerator = exports.decodeAsyncGenerator = exports.decode = void 0;
|
|
21
21
|
/* eslint-disable import/extensions */
|
|
22
22
|
const convertTokenBytePairEncodingFromTuples_js_1 = require("../convertTokenBytePairEncodingFromTuples.js");
|
|
23
23
|
const cl100k_base_js_1 = __importDefault(require("../encodings/cl100k_base.js"));
|
|
24
24
|
const GptEncoding_js_1 = require("../GptEncoding.js");
|
|
25
25
|
__exportStar(require("../specialTokens.js"), exports);
|
|
26
26
|
const api = GptEncoding_js_1.GptEncoding.getEncodingApi('cl100k_base', () => (0, convertTokenBytePairEncodingFromTuples_js_1.convertTokenBytePairEncodingFromTuples)(cl100k_base_js_1.default));
|
|
27
|
-
const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, } = api;
|
|
27
|
+
const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, encodeChat, encodeChatGenerator, } = api;
|
|
28
28
|
exports.decode = decode;
|
|
29
29
|
exports.decodeAsyncGenerator = decodeAsyncGenerator;
|
|
30
30
|
exports.decodeGenerator = decodeGenerator;
|
|
31
31
|
exports.encode = encode;
|
|
32
32
|
exports.encodeGenerator = encodeGenerator;
|
|
33
33
|
exports.isWithinTokenLimit = isWithinTokenLimit;
|
|
34
|
+
exports.encodeChat = encodeChat;
|
|
35
|
+
exports.encodeChatGenerator = encodeChatGenerator;
|
|
34
36
|
// eslint-disable-next-line import/no-default-export
|
|
35
37
|
exports.default = api;
|
|
36
38
|
//# sourceMappingURL=cl100k_base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cl100k_base.js","sourceRoot":"","sources":["../../src/encoding/cl100k_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,4GAAqG;AACrG,iFAAiD;AACjD,sDAA+C;AAE/C,sDAAmC;AAEnC,MAAM,GAAG,GAAG,4BAAW,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CACzD,IAAA,kFAAsC,EAAC,wBAAO,CAAC,CAChD,CAAA;AACD,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,
|
|
1
|
+
{"version":3,"file":"cl100k_base.js","sourceRoot":"","sources":["../../src/encoding/cl100k_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,4GAAqG;AACrG,iFAAiD;AACjD,sDAA+C;AAE/C,sDAAmC;AAEnC,MAAM,GAAG,GAAG,4BAAW,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CACzD,IAAA,kFAAsC,EAAC,wBAAO,CAAC,CAChD,CAAA;AACD,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,mBAAmB,GACpB,GAAG,GAAG,CAAA;AAEL,wBAAM;AACN,oDAAoB;AACpB,0CAAe;AACf,wBAAM;AAGN,0CAAe;AACf,gDAAkB;AAHlB,gCAAU;AACV,kDAAmB;AAIrB,oDAAoD;AACpD,kBAAe,GAAG,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GptEncoding } from '../GptEncoding.js';
|
|
2
2
|
export * from '../specialTokens.js';
|
|
3
3
|
declare const api: GptEncoding;
|
|
4
|
-
declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void, unknown>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, unknown>, encode: (lineToEncode: string,
|
|
4
|
+
declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void, unknown>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, unknown>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, { allowedSpecial, disallowedSpecial, }?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => number | false;
|
|
5
5
|
export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, };
|
|
6
6
|
export default api;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GptEncoding } from '../GptEncoding.js';
|
|
2
2
|
export * from '../specialTokens.js';
|
|
3
3
|
declare const api: GptEncoding;
|
|
4
|
-
declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void, unknown>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, unknown>, encode: (lineToEncode: string,
|
|
4
|
+
declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void, unknown>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, unknown>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, { allowedSpecial, disallowedSpecial, }?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => number | false;
|
|
5
5
|
export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, };
|
|
6
6
|
export default api;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GptEncoding } from '../GptEncoding.js';
|
|
2
2
|
export * from '../specialTokens.js';
|
|
3
3
|
declare const api: GptEncoding;
|
|
4
|
-
declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void, unknown>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, unknown>, encode: (lineToEncode: string,
|
|
4
|
+
declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void, unknown>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, unknown>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, { allowedSpecial, disallowedSpecial, }?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => number | false;
|
|
5
5
|
export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, };
|
|
6
6
|
export default api;
|
package/cjs/main.d.ts
CHANGED
package/cjs/main.js
CHANGED
|
@@ -13,6 +13,13 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
13
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
16
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.default = void 0;
|
|
21
|
+
// eslint-disable-next-line no-restricted-exports, import/no-default-export
|
|
22
|
+
var cl100k_base_js_1 = require("./encoding/cl100k_base.js");
|
|
23
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(cl100k_base_js_1).default; } });
|
|
17
24
|
__exportStar(require("./encoding/cl100k_base.js"), exports);
|
|
18
25
|
//# sourceMappingURL=main.js.map
|
package/cjs/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,2EAA2E;AAC3E,4DAAmD;AAA1C,0HAAA,OAAO,OAAA;AAChB,4DAAyC"}
|