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.
Files changed (328) hide show
  1. package/README.md +54 -8
  2. package/cjs/GptEncoding.d.ts +33 -6
  3. package/cjs/GptEncoding.js +79 -34
  4. package/cjs/GptEncoding.js.map +1 -1
  5. package/cjs/GptEncoding.test.js +54 -0
  6. package/cjs/GptEncoding.test.js.map +1 -1
  7. package/cjs/encoding/cl100k_base.d.ts +2 -2
  8. package/cjs/encoding/cl100k_base.js +4 -2
  9. package/cjs/encoding/cl100k_base.js.map +1 -1
  10. package/cjs/encoding/p50k_base.d.ts +1 -1
  11. package/cjs/encoding/p50k_edit.d.ts +1 -1
  12. package/cjs/encoding/r50k_base.d.ts +1 -1
  13. package/cjs/main.d.ts +1 -0
  14. package/cjs/main.js +7 -0
  15. package/cjs/main.js.map +1 -1
  16. package/cjs/mapping.d.ts +37 -0
  17. package/cjs/mapping.js +34 -2
  18. package/cjs/mapping.js.map +1 -1
  19. package/cjs/model/ada.d.ts +1 -0
  20. package/cjs/model/ada.js +7 -0
  21. package/cjs/model/ada.js.map +1 -1
  22. package/cjs/model/babbage.d.ts +1 -0
  23. package/cjs/model/babbage.js +7 -0
  24. package/cjs/model/babbage.js.map +1 -1
  25. package/cjs/model/code-cushman-001.d.ts +1 -0
  26. package/cjs/model/code-cushman-001.js +7 -0
  27. package/cjs/model/code-cushman-001.js.map +1 -1
  28. package/cjs/model/code-cushman-002.d.ts +1 -0
  29. package/cjs/model/code-cushman-002.js +7 -0
  30. package/cjs/model/code-cushman-002.js.map +1 -1
  31. package/cjs/model/code-davinci-001.d.ts +1 -0
  32. package/cjs/model/code-davinci-001.js +7 -0
  33. package/cjs/model/code-davinci-001.js.map +1 -1
  34. package/cjs/model/code-davinci-002.d.ts +1 -0
  35. package/cjs/model/code-davinci-002.js +7 -0
  36. package/cjs/model/code-davinci-002.js.map +1 -1
  37. package/cjs/model/code-davinci-edit-001.d.ts +1 -0
  38. package/cjs/model/code-davinci-edit-001.js +7 -0
  39. package/cjs/model/code-davinci-edit-001.js.map +1 -1
  40. package/cjs/model/code-search-ada-code-001.d.ts +1 -0
  41. package/cjs/model/code-search-ada-code-001.js +7 -0
  42. package/cjs/model/code-search-ada-code-001.js.map +1 -1
  43. package/cjs/model/code-search-babbage-code-001.d.ts +1 -0
  44. package/cjs/model/code-search-babbage-code-001.js +7 -0
  45. package/cjs/model/code-search-babbage-code-001.js.map +1 -1
  46. package/cjs/model/curie.d.ts +1 -0
  47. package/cjs/model/curie.js +7 -0
  48. package/cjs/model/curie.js.map +1 -1
  49. package/cjs/model/cushman-codex.d.ts +1 -0
  50. package/cjs/model/cushman-codex.js +7 -0
  51. package/cjs/model/cushman-codex.js.map +1 -1
  52. package/cjs/model/davinci-codex.d.ts +1 -0
  53. package/cjs/model/davinci-codex.js +7 -0
  54. package/cjs/model/davinci-codex.js.map +1 -1
  55. package/cjs/model/davinci.d.ts +1 -0
  56. package/cjs/model/davinci.js +7 -0
  57. package/cjs/model/davinci.js.map +1 -1
  58. package/cjs/model/gpt-3.5-turbo-0301.d.ts +6 -0
  59. package/cjs/model/gpt-3.5-turbo-0301.js +38 -0
  60. package/cjs/model/gpt-3.5-turbo-0301.js.map +1 -0
  61. package/cjs/model/gpt-3.5-turbo.d.ts +6 -1
  62. package/cjs/model/gpt-3.5-turbo.js +21 -1
  63. package/cjs/model/gpt-3.5-turbo.js.map +1 -1
  64. package/cjs/model/gpt-4-0314.d.ts +6 -0
  65. package/cjs/model/gpt-4-0314.js +38 -0
  66. package/cjs/model/gpt-4-0314.js.map +1 -0
  67. package/cjs/model/gpt-4-32k-0314.d.ts +6 -0
  68. package/cjs/model/gpt-4-32k-0314.js +38 -0
  69. package/cjs/model/gpt-4-32k-0314.js.map +1 -0
  70. package/cjs/model/gpt-4-32k.d.ts +6 -0
  71. package/cjs/model/gpt-4-32k.js +38 -0
  72. package/cjs/model/gpt-4-32k.js.map +1 -0
  73. package/cjs/model/gpt-4.d.ts +6 -1
  74. package/cjs/model/gpt-4.js +21 -1
  75. package/cjs/model/gpt-4.js.map +1 -1
  76. package/cjs/model/text-ada-001.d.ts +1 -0
  77. package/cjs/model/text-ada-001.js +7 -0
  78. package/cjs/model/text-ada-001.js.map +1 -1
  79. package/cjs/model/text-babbage-001.d.ts +1 -0
  80. package/cjs/model/text-babbage-001.js +7 -0
  81. package/cjs/model/text-babbage-001.js.map +1 -1
  82. package/cjs/model/text-curie-001.d.ts +1 -0
  83. package/cjs/model/text-curie-001.js +7 -0
  84. package/cjs/model/text-curie-001.js.map +1 -1
  85. package/cjs/model/text-davinci-001.d.ts +1 -0
  86. package/cjs/model/text-davinci-001.js +7 -0
  87. package/cjs/model/text-davinci-001.js.map +1 -1
  88. package/cjs/model/text-davinci-002.d.ts +1 -0
  89. package/cjs/model/text-davinci-002.js +7 -0
  90. package/cjs/model/text-davinci-002.js.map +1 -1
  91. package/cjs/model/text-davinci-003.d.ts +1 -0
  92. package/cjs/model/text-davinci-003.js +7 -0
  93. package/cjs/model/text-davinci-003.js.map +1 -1
  94. package/cjs/model/text-davinci-edit-001.d.ts +1 -0
  95. package/cjs/model/text-davinci-edit-001.js +7 -0
  96. package/cjs/model/text-davinci-edit-001.js.map +1 -1
  97. package/cjs/model/text-embedding-ada-002.d.ts +1 -0
  98. package/cjs/model/text-embedding-ada-002.js +7 -0
  99. package/cjs/model/text-embedding-ada-002.js.map +1 -1
  100. package/cjs/model/text-search-ada-doc-001.d.ts +1 -0
  101. package/cjs/model/text-search-ada-doc-001.js +7 -0
  102. package/cjs/model/text-search-ada-doc-001.js.map +1 -1
  103. package/cjs/model/text-search-babbage-doc-001.d.ts +1 -0
  104. package/cjs/model/text-search-babbage-doc-001.js +7 -0
  105. package/cjs/model/text-search-babbage-doc-001.js.map +1 -1
  106. package/cjs/model/text-search-curie-doc-001.d.ts +1 -0
  107. package/cjs/model/text-search-curie-doc-001.js +7 -0
  108. package/cjs/model/text-search-curie-doc-001.js.map +1 -1
  109. package/cjs/model/text-search-davinci-doc-001.d.ts +1 -0
  110. package/cjs/model/text-search-davinci-doc-001.js +7 -0
  111. package/cjs/model/text-search-davinci-doc-001.js.map +1 -1
  112. package/cjs/model/text-similarity-ada-001.d.ts +1 -0
  113. package/cjs/model/text-similarity-ada-001.js +7 -0
  114. package/cjs/model/text-similarity-ada-001.js.map +1 -1
  115. package/cjs/model/text-similarity-babbage-001.d.ts +1 -0
  116. package/cjs/model/text-similarity-babbage-001.js +7 -0
  117. package/cjs/model/text-similarity-babbage-001.js.map +1 -1
  118. package/cjs/model/text-similarity-curie-001.d.ts +1 -0
  119. package/cjs/model/text-similarity-curie-001.js +7 -0
  120. package/cjs/model/text-similarity-curie-001.js.map +1 -1
  121. package/cjs/model/text-similarity-davinci-001.d.ts +1 -0
  122. package/cjs/model/text-similarity-davinci-001.js +7 -0
  123. package/cjs/model/text-similarity-davinci-001.js.map +1 -1
  124. package/cjs/modelParams.d.ts +5 -4
  125. package/cjs/modelParams.js +7 -4
  126. package/cjs/modelParams.js.map +1 -1
  127. package/cjs/specialTokens.d.ts +3 -0
  128. package/cjs/specialTokens.js +4 -1
  129. package/cjs/specialTokens.js.map +1 -1
  130. package/cjs/util.d.ts +2 -0
  131. package/cjs/util.js +19 -0
  132. package/cjs/util.js.map +1 -0
  133. package/dist/cl100k_base.js +1 -1
  134. package/dist/cl100k_base.js.map +1 -1
  135. package/dist/p50k_base.js +1 -1
  136. package/dist/p50k_base.js.map +1 -1
  137. package/dist/p50k_edit.js +1 -1
  138. package/dist/p50k_edit.js.map +1 -1
  139. package/dist/r50k_base.js +1 -1
  140. package/dist/r50k_base.js.map +1 -1
  141. package/esm/GptEncoding.d.ts +33 -6
  142. package/esm/GptEncoding.js +81 -36
  143. package/esm/GptEncoding.js.map +1 -1
  144. package/esm/GptEncoding.test.js +55 -1
  145. package/esm/GptEncoding.test.js.map +1 -1
  146. package/esm/codegen/generateByModel.js +19 -0
  147. package/esm/codegen/generateByModel.js.map +1 -0
  148. package/esm/{generateJsModels.js → codegen/generateJsEncodings.js} +4 -4
  149. package/esm/codegen/generateJsEncodings.js.map +1 -0
  150. package/esm/encoding/cl100k_base.d.ts +2 -2
  151. package/esm/encoding/cl100k_base.js +2 -2
  152. package/esm/encoding/cl100k_base.js.map +1 -1
  153. package/esm/encoding/p50k_base.d.ts +1 -1
  154. package/esm/encoding/p50k_edit.d.ts +1 -1
  155. package/esm/encoding/r50k_base.d.ts +1 -1
  156. package/esm/main.d.ts +1 -0
  157. package/esm/main.js +2 -0
  158. package/esm/main.js.map +1 -1
  159. package/esm/mapping.d.ts +37 -0
  160. package/esm/mapping.js +32 -0
  161. package/esm/mapping.js.map +1 -1
  162. package/esm/model/ada.d.ts +1 -0
  163. package/esm/model/ada.js +2 -0
  164. package/esm/model/ada.js.map +1 -1
  165. package/esm/model/babbage.d.ts +1 -0
  166. package/esm/model/babbage.js +2 -0
  167. package/esm/model/babbage.js.map +1 -1
  168. package/esm/model/code-cushman-001.d.ts +1 -0
  169. package/esm/model/code-cushman-001.js +2 -0
  170. package/esm/model/code-cushman-001.js.map +1 -1
  171. package/esm/model/code-cushman-002.d.ts +1 -0
  172. package/esm/model/code-cushman-002.js +2 -0
  173. package/esm/model/code-cushman-002.js.map +1 -1
  174. package/esm/model/code-davinci-001.d.ts +1 -0
  175. package/esm/model/code-davinci-001.js +2 -0
  176. package/esm/model/code-davinci-001.js.map +1 -1
  177. package/esm/model/code-davinci-002.d.ts +1 -0
  178. package/esm/model/code-davinci-002.js +2 -0
  179. package/esm/model/code-davinci-002.js.map +1 -1
  180. package/esm/model/code-davinci-edit-001.d.ts +1 -0
  181. package/esm/model/code-davinci-edit-001.js +2 -0
  182. package/esm/model/code-davinci-edit-001.js.map +1 -1
  183. package/esm/model/code-search-ada-code-001.d.ts +1 -0
  184. package/esm/model/code-search-ada-code-001.js +2 -0
  185. package/esm/model/code-search-ada-code-001.js.map +1 -1
  186. package/esm/model/code-search-babbage-code-001.d.ts +1 -0
  187. package/esm/model/code-search-babbage-code-001.js +2 -0
  188. package/esm/model/code-search-babbage-code-001.js.map +1 -1
  189. package/esm/model/curie.d.ts +1 -0
  190. package/esm/model/curie.js +2 -0
  191. package/esm/model/curie.js.map +1 -1
  192. package/esm/model/cushman-codex.d.ts +1 -0
  193. package/esm/model/cushman-codex.js +2 -0
  194. package/esm/model/cushman-codex.js.map +1 -1
  195. package/esm/model/davinci-codex.d.ts +1 -0
  196. package/esm/model/davinci-codex.js +2 -0
  197. package/esm/model/davinci-codex.js.map +1 -1
  198. package/esm/model/davinci.d.ts +1 -0
  199. package/esm/model/davinci.js +2 -0
  200. package/esm/model/davinci.js.map +1 -1
  201. package/esm/model/gpt-3.5-turbo-0301.d.ts +6 -0
  202. package/esm/model/gpt-3.5-turbo-0301.js +11 -0
  203. package/esm/model/gpt-3.5-turbo-0301.js.map +1 -0
  204. package/esm/model/gpt-3.5-turbo.d.ts +6 -1
  205. package/esm/model/gpt-3.5-turbo.js +10 -1
  206. package/esm/model/gpt-3.5-turbo.js.map +1 -1
  207. package/esm/model/gpt-4-0314.d.ts +6 -0
  208. package/esm/model/gpt-4-0314.js +11 -0
  209. package/esm/model/gpt-4-0314.js.map +1 -0
  210. package/esm/model/gpt-4-32k-0314.d.ts +6 -0
  211. package/esm/model/gpt-4-32k-0314.js +11 -0
  212. package/esm/model/gpt-4-32k-0314.js.map +1 -0
  213. package/esm/model/gpt-4-32k.d.ts +6 -0
  214. package/esm/model/gpt-4-32k.js +11 -0
  215. package/esm/model/gpt-4-32k.js.map +1 -0
  216. package/esm/model/gpt-4.d.ts +6 -1
  217. package/esm/model/gpt-4.js +10 -1
  218. package/esm/model/gpt-4.js.map +1 -1
  219. package/esm/model/text-ada-001.d.ts +1 -0
  220. package/esm/model/text-ada-001.js +2 -0
  221. package/esm/model/text-ada-001.js.map +1 -1
  222. package/esm/model/text-babbage-001.d.ts +1 -0
  223. package/esm/model/text-babbage-001.js +2 -0
  224. package/esm/model/text-babbage-001.js.map +1 -1
  225. package/esm/model/text-curie-001.d.ts +1 -0
  226. package/esm/model/text-curie-001.js +2 -0
  227. package/esm/model/text-curie-001.js.map +1 -1
  228. package/esm/model/text-davinci-001.d.ts +1 -0
  229. package/esm/model/text-davinci-001.js +2 -0
  230. package/esm/model/text-davinci-001.js.map +1 -1
  231. package/esm/model/text-davinci-002.d.ts +1 -0
  232. package/esm/model/text-davinci-002.js +2 -0
  233. package/esm/model/text-davinci-002.js.map +1 -1
  234. package/esm/model/text-davinci-003.d.ts +1 -0
  235. package/esm/model/text-davinci-003.js +2 -0
  236. package/esm/model/text-davinci-003.js.map +1 -1
  237. package/esm/model/text-davinci-edit-001.d.ts +1 -0
  238. package/esm/model/text-davinci-edit-001.js +2 -0
  239. package/esm/model/text-davinci-edit-001.js.map +1 -1
  240. package/esm/model/text-embedding-ada-002.d.ts +1 -0
  241. package/esm/model/text-embedding-ada-002.js +2 -0
  242. package/esm/model/text-embedding-ada-002.js.map +1 -1
  243. package/esm/model/text-search-ada-doc-001.d.ts +1 -0
  244. package/esm/model/text-search-ada-doc-001.js +2 -0
  245. package/esm/model/text-search-ada-doc-001.js.map +1 -1
  246. package/esm/model/text-search-babbage-doc-001.d.ts +1 -0
  247. package/esm/model/text-search-babbage-doc-001.js +2 -0
  248. package/esm/model/text-search-babbage-doc-001.js.map +1 -1
  249. package/esm/model/text-search-curie-doc-001.d.ts +1 -0
  250. package/esm/model/text-search-curie-doc-001.js +2 -0
  251. package/esm/model/text-search-curie-doc-001.js.map +1 -1
  252. package/esm/model/text-search-davinci-doc-001.d.ts +1 -0
  253. package/esm/model/text-search-davinci-doc-001.js +2 -0
  254. package/esm/model/text-search-davinci-doc-001.js.map +1 -1
  255. package/esm/model/text-similarity-ada-001.d.ts +1 -0
  256. package/esm/model/text-similarity-ada-001.js +2 -0
  257. package/esm/model/text-similarity-ada-001.js.map +1 -1
  258. package/esm/model/text-similarity-babbage-001.d.ts +1 -0
  259. package/esm/model/text-similarity-babbage-001.js +2 -0
  260. package/esm/model/text-similarity-babbage-001.js.map +1 -1
  261. package/esm/model/text-similarity-curie-001.d.ts +1 -0
  262. package/esm/model/text-similarity-curie-001.js +2 -0
  263. package/esm/model/text-similarity-curie-001.js.map +1 -1
  264. package/esm/model/text-similarity-davinci-001.d.ts +1 -0
  265. package/esm/model/text-similarity-davinci-001.js +2 -0
  266. package/esm/model/text-similarity-davinci-001.js.map +1 -1
  267. package/esm/modelParams.d.ts +5 -4
  268. package/esm/modelParams.js +6 -3
  269. package/esm/modelParams.js.map +1 -1
  270. package/esm/specialTokens.d.ts +3 -0
  271. package/esm/specialTokens.js +3 -0
  272. package/esm/specialTokens.js.map +1 -1
  273. package/esm/util.d.ts +2 -0
  274. package/esm/util.js +14 -0
  275. package/esm/util.js.map +1 -0
  276. package/package.json +8 -6
  277. package/src/GptEncoding.test.ts +78 -1
  278. package/src/GptEncoding.ts +125 -44
  279. package/src/__snapshots__/GptEncoding.test.ts.snap +811 -0
  280. package/src/codegen/generateByModel.ts +35 -0
  281. package/src/{generateJsModels.ts → codegen/generateJsEncodings.ts} +3 -3
  282. package/src/encoding/cl100k_base.ts +4 -0
  283. package/src/main.ts +2 -0
  284. package/src/mapping.ts +42 -0
  285. package/src/model/ada.ts +2 -0
  286. package/src/model/babbage.ts +2 -0
  287. package/src/model/code-cushman-001.ts +2 -0
  288. package/src/model/code-cushman-002.ts +2 -0
  289. package/src/model/code-davinci-001.ts +2 -0
  290. package/src/model/code-davinci-002.ts +2 -0
  291. package/src/model/code-davinci-edit-001.ts +2 -0
  292. package/src/model/code-search-ada-code-001.ts +2 -0
  293. package/src/model/code-search-babbage-code-001.ts +2 -0
  294. package/src/model/curie.ts +2 -0
  295. package/src/model/cushman-codex.ts +2 -0
  296. package/src/model/davinci-codex.ts +2 -0
  297. package/src/model/davinci.ts +2 -0
  298. package/src/model/gpt-3.5-turbo-0301.ts +32 -0
  299. package/src/model/gpt-3.5-turbo.ts +32 -1
  300. package/src/model/gpt-4-0314.ts +32 -0
  301. package/src/model/gpt-4-32k-0314.ts +32 -0
  302. package/src/model/gpt-4-32k.ts +32 -0
  303. package/src/model/gpt-4.ts +32 -1
  304. package/src/model/text-ada-001.ts +2 -0
  305. package/src/model/text-babbage-001.ts +2 -0
  306. package/src/model/text-curie-001.ts +2 -0
  307. package/src/model/text-davinci-001.ts +2 -0
  308. package/src/model/text-davinci-002.ts +2 -0
  309. package/src/model/text-davinci-003.ts +2 -0
  310. package/src/model/text-davinci-edit-001.ts +2 -0
  311. package/src/model/text-embedding-ada-002.ts +2 -0
  312. package/src/model/text-search-ada-doc-001.ts +2 -0
  313. package/src/model/text-search-babbage-doc-001.ts +2 -0
  314. package/src/model/text-search-curie-doc-001.ts +2 -0
  315. package/src/model/text-search-davinci-doc-001.ts +2 -0
  316. package/src/model/text-similarity-ada-001.ts +2 -0
  317. package/src/model/text-similarity-babbage-001.ts +2 -0
  318. package/src/model/text-similarity-curie-001.ts +2 -0
  319. package/src/model/text-similarity-davinci-001.ts +2 -0
  320. package/src/modelParams.ts +17 -10
  321. package/src/specialTokens.ts +3 -0
  322. package/src/util.ts +15 -0
  323. package/esm/generateByModel.js +0 -13
  324. package/esm/generateByModel.js.map +0 -1
  325. package/esm/generateJsModels.js.map +0 -1
  326. package/src/generateByModel.ts +0 -20
  327. /package/esm/{generateByModel.d.ts → codegen/generateByModel.d.ts} +0 -0
  328. /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 } = GPTTokenizer
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
  [![GPT Tokenizer Playground](./docs/gpt-tokenizer.png)](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
 
@@ -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 DISALLOW_ALL_SPECIAL_TOKENS = "all";
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
- private static getMaxValueFromMap;
19
- private static specialTokenRegex;
20
- encodeGenerator(lineToEncode: string, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>): Generator<number[], number>;
21
- encode(lineToEncode: string, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>): number[];
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(text: string, tokenLimit: number): false | number;
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;
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GptEncoding = exports.DISALLOW_ALL_SPECIAL_TOKENS = void 0;
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
- exports.DISALLOW_ALL_SPECIAL_TOKENS = 'all';
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(GptEncoding.getMaxValueFromMap(mergeableBytePairRanks), GptEncoding.getMaxValueFromMap(specialTokenMapping));
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.getModelParams)(encodingName, getMergeableRanks);
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
- return GptEncoding.getEncodingApi(encodingName, getMergeableRanks);
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
- return GptEncoding.getEncodingApiAsync(encodingName, getMergeableRanks);
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.DISALLOW_ALL_SPECIAL_TOKENS)) {
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.DISALLOW_ALL_SPECIAL_TOKENS)) {
72
+ if (allowedSpecial.has(exports.ALL_SPECIAL_TOKENS)) {
82
73
  allowedSpecial = specialTokensSet;
83
74
  }
84
75
  if (disallowedSpecial.size > 0) {
85
- const regexPattern = GptEncoding.specialTokenRegex(disallowedSpecial);
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, allowedSpecial = new Set(), disallowedSpecial = new Set([
94
- exports.DISALLOW_ALL_SPECIAL_TOKENS,
95
- ])) {
96
- return [
97
- ...this.encodeGenerator(lineToEncode, allowedSpecial, disallowedSpecial),
98
- ].flat();
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(text, tokenLimit) {
104
- const tokenGenerator = this.encodeGenerator(text);
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;
@@ -1 +1 @@
1
- {"version":3,"file":"GptEncoding.js","sourceRoot":"","sources":["../src/GptEncoding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GptEncoding.js","sourceRoot":"","sources":["../src/GptEncoding.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
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, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>) => number[], encodeGenerator: (lineToEncode: string, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>) => Generator<number[], number, unknown>, isWithinTokenLimit: (text: string, tokenLimit: number) => number | false;
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,GACnB,GAAG,GAAG,CAAA;AAEL,wBAAM;AACN,oDAAoB;AACpB,0CAAe;AACf,wBAAM;AACN,0CAAe;AACf,gDAAkB;AAEpB,oDAAoD;AACpD,kBAAe,GAAG,CAAA"}
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, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>) => number[], encodeGenerator: (lineToEncode: string, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>) => Generator<number[], number, unknown>, isWithinTokenLimit: (text: string, tokenLimit: number) => number | false;
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, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>) => number[], encodeGenerator: (lineToEncode: string, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>) => Generator<number[], number, unknown>, isWithinTokenLimit: (text: string, tokenLimit: number) => number | false;
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, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>) => number[], encodeGenerator: (lineToEncode: string, allowedSpecial?: Set<string>, disallowedSpecial?: Set<string>) => Generator<number[], number, unknown>, isWithinTokenLimit: (text: string, tokenLimit: number) => number | false;
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
@@ -1 +1,2 @@
1
+ export { default } from './encoding/cl100k_base.js';
1
2
  export * from './encoding/cl100k_base.js';
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":";;;;;;;;;;;;;;;;AAAA,4DAAyC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,2EAA2E;AAC3E,4DAAmD;AAA1C,0HAAA,OAAO,OAAA;AAChB,4DAAyC"}