gpt-tokenizer 2.6.0 → 2.6.2

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 (358) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +22 -11
  3. package/cjs/BytePairEncodingCore.d.ts +4 -4
  4. package/cjs/BytePairEncodingCore.js +24 -24
  5. package/cjs/BytePairEncodingCore.js.map +1 -1
  6. package/cjs/GptEncoding.d.ts +15 -4
  7. package/cjs/GptEncoding.js +37 -18
  8. package/cjs/GptEncoding.js.map +1 -1
  9. package/cjs/GptEncoding.test.js +28 -1
  10. package/cjs/GptEncoding.test.js.map +1 -1
  11. package/cjs/constants.d.ts +1 -0
  12. package/cjs/constants.js +5 -0
  13. package/cjs/constants.js.map +1 -0
  14. package/cjs/encoding/cl100k_base.d.ts +3 -2
  15. package/cjs/encoding/cl100k_base.js +4 -2
  16. package/cjs/encoding/cl100k_base.js.map +1 -1
  17. package/cjs/encoding/o200k_base.d.ts +3 -2
  18. package/cjs/encoding/o200k_base.js +4 -2
  19. package/cjs/encoding/o200k_base.js.map +1 -1
  20. package/cjs/encoding/p50k_base.d.ts +3 -2
  21. package/cjs/encoding/p50k_base.js +4 -2
  22. package/cjs/encoding/p50k_base.js.map +1 -1
  23. package/cjs/encoding/p50k_edit.d.ts +3 -2
  24. package/cjs/encoding/p50k_edit.js +4 -2
  25. package/cjs/encoding/p50k_edit.js.map +1 -1
  26. package/cjs/encoding/r50k_base.d.ts +3 -2
  27. package/cjs/encoding/r50k_base.js +4 -2
  28. package/cjs/encoding/r50k_base.js.map +1 -1
  29. package/cjs/encodingParams/Cl100KBase.d.ts +1 -1
  30. package/cjs/encodingParams/Cl100KBase.js +3 -3
  31. package/cjs/encodingParams/Cl100KBase.js.map +1 -1
  32. package/cjs/encodingParams/O200KBase.d.ts +1 -1
  33. package/cjs/encodingParams/O200KBase.js +3 -3
  34. package/cjs/encodingParams/O200KBase.js.map +1 -1
  35. package/cjs/encodingParams/P50KBase.d.ts +1 -1
  36. package/cjs/encodingParams/P50KBase.js +3 -3
  37. package/cjs/encodingParams/P50KBase.js.map +1 -1
  38. package/cjs/encodingParams/P50KEdit.d.ts +1 -1
  39. package/cjs/encodingParams/P50KEdit.js +3 -3
  40. package/cjs/encodingParams/P50KEdit.js.map +1 -1
  41. package/cjs/encodingParams/R50KBase.d.ts +1 -1
  42. package/cjs/encodingParams/R50KBase.js +3 -3
  43. package/cjs/encodingParams/R50KBase.js.map +1 -1
  44. package/cjs/model/gpt-3.5-turbo-0125.d.ts +3 -2
  45. package/cjs/model/gpt-3.5-turbo-0125.js +4 -2
  46. package/cjs/model/gpt-3.5-turbo-0125.js.map +1 -1
  47. package/cjs/model/gpt-3.5-turbo-0301.d.ts +3 -2
  48. package/cjs/model/gpt-3.5-turbo-0301.js +4 -2
  49. package/cjs/model/gpt-3.5-turbo-0301.js.map +1 -1
  50. package/cjs/model/gpt-3.5-turbo-0613.d.ts +3 -2
  51. package/cjs/model/gpt-3.5-turbo-0613.js +4 -2
  52. package/cjs/model/gpt-3.5-turbo-0613.js.map +1 -1
  53. package/cjs/model/gpt-3.5-turbo-1106.d.ts +3 -2
  54. package/cjs/model/gpt-3.5-turbo-1106.js +4 -2
  55. package/cjs/model/gpt-3.5-turbo-1106.js.map +1 -1
  56. package/cjs/model/gpt-3.5-turbo-16k-0613.d.ts +3 -2
  57. package/cjs/model/gpt-3.5-turbo-16k-0613.js +4 -2
  58. package/cjs/model/gpt-3.5-turbo-16k-0613.js.map +1 -1
  59. package/cjs/model/gpt-3.5-turbo-16k.d.ts +3 -2
  60. package/cjs/model/gpt-3.5-turbo-16k.js +4 -2
  61. package/cjs/model/gpt-3.5-turbo-16k.js.map +1 -1
  62. package/cjs/model/gpt-3.5-turbo-finetune.d.ts +3 -2
  63. package/cjs/model/gpt-3.5-turbo-finetune.js +4 -2
  64. package/cjs/model/gpt-3.5-turbo-finetune.js.map +1 -1
  65. package/cjs/model/gpt-3.5-turbo.d.ts +3 -2
  66. package/cjs/model/gpt-3.5-turbo.js +4 -2
  67. package/cjs/model/gpt-3.5-turbo.js.map +1 -1
  68. package/cjs/model/gpt-4-0125-preview.d.ts +3 -2
  69. package/cjs/model/gpt-4-0125-preview.js +4 -2
  70. package/cjs/model/gpt-4-0125-preview.js.map +1 -1
  71. package/cjs/model/gpt-4-0314.d.ts +3 -2
  72. package/cjs/model/gpt-4-0314.js +4 -2
  73. package/cjs/model/gpt-4-0314.js.map +1 -1
  74. package/cjs/model/gpt-4-0613.d.ts +3 -2
  75. package/cjs/model/gpt-4-0613.js +4 -2
  76. package/cjs/model/gpt-4-0613.js.map +1 -1
  77. package/cjs/model/gpt-4-1106-preview.d.ts +3 -2
  78. package/cjs/model/gpt-4-1106-preview.js +4 -2
  79. package/cjs/model/gpt-4-1106-preview.js.map +1 -1
  80. package/cjs/model/gpt-4-1106-vision-preview.d.ts +3 -2
  81. package/cjs/model/gpt-4-1106-vision-preview.js +4 -2
  82. package/cjs/model/gpt-4-1106-vision-preview.js.map +1 -1
  83. package/cjs/model/gpt-4-32k-0314.d.ts +3 -2
  84. package/cjs/model/gpt-4-32k-0314.js +4 -2
  85. package/cjs/model/gpt-4-32k-0314.js.map +1 -1
  86. package/cjs/model/gpt-4-32k-0613.d.ts +3 -2
  87. package/cjs/model/gpt-4-32k-0613.js +4 -2
  88. package/cjs/model/gpt-4-32k-0613.js.map +1 -1
  89. package/cjs/model/gpt-4-32k.d.ts +3 -2
  90. package/cjs/model/gpt-4-32k.js +4 -2
  91. package/cjs/model/gpt-4-32k.js.map +1 -1
  92. package/cjs/model/gpt-4-turbo-2024-04-09.d.ts +3 -2
  93. package/cjs/model/gpt-4-turbo-2024-04-09.js +4 -2
  94. package/cjs/model/gpt-4-turbo-2024-04-09.js.map +1 -1
  95. package/cjs/model/gpt-4-turbo-preview.d.ts +3 -2
  96. package/cjs/model/gpt-4-turbo-preview.js +4 -2
  97. package/cjs/model/gpt-4-turbo-preview.js.map +1 -1
  98. package/cjs/model/gpt-4-turbo.d.ts +3 -2
  99. package/cjs/model/gpt-4-turbo.js +4 -2
  100. package/cjs/model/gpt-4-turbo.js.map +1 -1
  101. package/cjs/model/gpt-4-vision-preview.d.ts +3 -2
  102. package/cjs/model/gpt-4-vision-preview.js +4 -2
  103. package/cjs/model/gpt-4-vision-preview.js.map +1 -1
  104. package/cjs/model/gpt-4.d.ts +3 -2
  105. package/cjs/model/gpt-4.js +4 -2
  106. package/cjs/model/gpt-4.js.map +1 -1
  107. package/cjs/model/gpt-4o-2024-05-13.d.ts +3 -2
  108. package/cjs/model/gpt-4o-2024-05-13.js +4 -2
  109. package/cjs/model/gpt-4o-2024-05-13.js.map +1 -1
  110. package/cjs/model/gpt-4o-2024-08-06-finetune.d.ts +3 -2
  111. package/cjs/model/gpt-4o-2024-08-06-finetune.js +4 -2
  112. package/cjs/model/gpt-4o-2024-08-06-finetune.js.map +1 -1
  113. package/cjs/model/gpt-4o-2024-08-06.d.ts +3 -2
  114. package/cjs/model/gpt-4o-2024-08-06.js +4 -2
  115. package/cjs/model/gpt-4o-2024-08-06.js.map +1 -1
  116. package/cjs/model/gpt-4o-audio-preview-2024-10-01.d.ts +3 -2
  117. package/cjs/model/gpt-4o-audio-preview-2024-10-01.js +4 -2
  118. package/cjs/model/gpt-4o-audio-preview-2024-10-01.js.map +1 -1
  119. package/cjs/model/gpt-4o-audio-preview.d.ts +3 -2
  120. package/cjs/model/gpt-4o-audio-preview.js +4 -2
  121. package/cjs/model/gpt-4o-audio-preview.js.map +1 -1
  122. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.d.ts +3 -2
  123. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.js +4 -2
  124. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.js.map +1 -1
  125. package/cjs/model/gpt-4o-mini-2024-07-18.d.ts +3 -2
  126. package/cjs/model/gpt-4o-mini-2024-07-18.js +4 -2
  127. package/cjs/model/gpt-4o-mini-2024-07-18.js.map +1 -1
  128. package/cjs/model/gpt-4o-mini-training-2024-07-18.d.ts +3 -2
  129. package/cjs/model/gpt-4o-mini-training-2024-07-18.js +4 -2
  130. package/cjs/model/gpt-4o-mini-training-2024-07-18.js.map +1 -1
  131. package/cjs/model/gpt-4o-mini-training.d.ts +3 -2
  132. package/cjs/model/gpt-4o-mini-training.js +4 -2
  133. package/cjs/model/gpt-4o-mini-training.js.map +1 -1
  134. package/cjs/model/gpt-4o-mini.d.ts +3 -2
  135. package/cjs/model/gpt-4o-mini.js +4 -2
  136. package/cjs/model/gpt-4o-mini.js.map +1 -1
  137. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.d.ts +3 -2
  138. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.js +4 -2
  139. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.js.map +1 -1
  140. package/cjs/model/gpt-4o-realtime-preview.d.ts +3 -2
  141. package/cjs/model/gpt-4o-realtime-preview.js +4 -2
  142. package/cjs/model/gpt-4o-realtime-preview.js.map +1 -1
  143. package/cjs/model/gpt-4o.d.ts +3 -2
  144. package/cjs/model/gpt-4o.js +4 -2
  145. package/cjs/model/gpt-4o.js.map +1 -1
  146. package/cjs/modelParams.d.ts +1 -3
  147. package/cjs/modelParams.js.map +1 -1
  148. package/cjs/models.d.ts +1 -1
  149. package/dist/cl100k_base.js +1 -1
  150. package/dist/cl100k_base.js.map +1 -1
  151. package/dist/o200k_base.js +1 -1
  152. package/dist/o200k_base.js.map +1 -1
  153. package/dist/p50k_base.js +1 -1
  154. package/dist/p50k_base.js.map +1 -1
  155. package/dist/p50k_edit.js +1 -1
  156. package/dist/p50k_edit.js.map +1 -1
  157. package/dist/r50k_base.js +1 -1
  158. package/dist/r50k_base.js.map +1 -1
  159. package/esm/BytePairEncodingCore.d.ts +4 -4
  160. package/esm/BytePairEncodingCore.js +24 -24
  161. package/esm/BytePairEncodingCore.js.map +1 -1
  162. package/esm/GptEncoding.d.ts +15 -4
  163. package/esm/GptEncoding.js +36 -17
  164. package/esm/GptEncoding.js.map +1 -1
  165. package/esm/GptEncoding.test.js +28 -1
  166. package/esm/GptEncoding.test.js.map +1 -1
  167. package/esm/codegen/generateJsBpe.js +1 -1
  168. package/esm/codegen/generateJsBpe.js.map +1 -1
  169. package/esm/constants.d.ts +1 -0
  170. package/esm/constants.js +2 -0
  171. package/esm/constants.js.map +1 -0
  172. package/esm/encoding/cl100k_base.d.ts +3 -2
  173. package/esm/encoding/cl100k_base.js +3 -2
  174. package/esm/encoding/cl100k_base.js.map +1 -1
  175. package/esm/encoding/o200k_base.d.ts +3 -2
  176. package/esm/encoding/o200k_base.js +3 -2
  177. package/esm/encoding/o200k_base.js.map +1 -1
  178. package/esm/encoding/p50k_base.d.ts +3 -2
  179. package/esm/encoding/p50k_base.js +3 -2
  180. package/esm/encoding/p50k_base.js.map +1 -1
  181. package/esm/encoding/p50k_edit.d.ts +3 -2
  182. package/esm/encoding/p50k_edit.js +3 -2
  183. package/esm/encoding/p50k_edit.js.map +1 -1
  184. package/esm/encoding/r50k_base.d.ts +3 -2
  185. package/esm/encoding/r50k_base.js +3 -2
  186. package/esm/encoding/r50k_base.js.map +1 -1
  187. package/esm/encodingParams/Cl100KBase.d.ts +1 -1
  188. package/esm/encodingParams/Cl100KBase.js +3 -3
  189. package/esm/encodingParams/Cl100KBase.js.map +1 -1
  190. package/esm/encodingParams/O200KBase.d.ts +1 -1
  191. package/esm/encodingParams/O200KBase.js +3 -3
  192. package/esm/encodingParams/O200KBase.js.map +1 -1
  193. package/esm/encodingParams/P50KBase.d.ts +1 -1
  194. package/esm/encodingParams/P50KBase.js +3 -3
  195. package/esm/encodingParams/P50KBase.js.map +1 -1
  196. package/esm/encodingParams/P50KEdit.d.ts +1 -1
  197. package/esm/encodingParams/P50KEdit.js +3 -3
  198. package/esm/encodingParams/P50KEdit.js.map +1 -1
  199. package/esm/encodingParams/R50KBase.d.ts +1 -1
  200. package/esm/encodingParams/R50KBase.js +3 -3
  201. package/esm/encodingParams/R50KBase.js.map +1 -1
  202. package/esm/model/gpt-3.5-turbo-0125.d.ts +3 -2
  203. package/esm/model/gpt-3.5-turbo-0125.js +3 -2
  204. package/esm/model/gpt-3.5-turbo-0125.js.map +1 -1
  205. package/esm/model/gpt-3.5-turbo-0301.d.ts +3 -2
  206. package/esm/model/gpt-3.5-turbo-0301.js +3 -2
  207. package/esm/model/gpt-3.5-turbo-0301.js.map +1 -1
  208. package/esm/model/gpt-3.5-turbo-0613.d.ts +3 -2
  209. package/esm/model/gpt-3.5-turbo-0613.js +3 -2
  210. package/esm/model/gpt-3.5-turbo-0613.js.map +1 -1
  211. package/esm/model/gpt-3.5-turbo-1106.d.ts +3 -2
  212. package/esm/model/gpt-3.5-turbo-1106.js +3 -2
  213. package/esm/model/gpt-3.5-turbo-1106.js.map +1 -1
  214. package/esm/model/gpt-3.5-turbo-16k-0613.d.ts +3 -2
  215. package/esm/model/gpt-3.5-turbo-16k-0613.js +3 -2
  216. package/esm/model/gpt-3.5-turbo-16k-0613.js.map +1 -1
  217. package/esm/model/gpt-3.5-turbo-16k.d.ts +3 -2
  218. package/esm/model/gpt-3.5-turbo-16k.js +3 -2
  219. package/esm/model/gpt-3.5-turbo-16k.js.map +1 -1
  220. package/esm/model/gpt-3.5-turbo-finetune.d.ts +3 -2
  221. package/esm/model/gpt-3.5-turbo-finetune.js +3 -2
  222. package/esm/model/gpt-3.5-turbo-finetune.js.map +1 -1
  223. package/esm/model/gpt-3.5-turbo.d.ts +3 -2
  224. package/esm/model/gpt-3.5-turbo.js +3 -2
  225. package/esm/model/gpt-3.5-turbo.js.map +1 -1
  226. package/esm/model/gpt-4-0125-preview.d.ts +3 -2
  227. package/esm/model/gpt-4-0125-preview.js +3 -2
  228. package/esm/model/gpt-4-0125-preview.js.map +1 -1
  229. package/esm/model/gpt-4-0314.d.ts +3 -2
  230. package/esm/model/gpt-4-0314.js +3 -2
  231. package/esm/model/gpt-4-0314.js.map +1 -1
  232. package/esm/model/gpt-4-0613.d.ts +3 -2
  233. package/esm/model/gpt-4-0613.js +3 -2
  234. package/esm/model/gpt-4-0613.js.map +1 -1
  235. package/esm/model/gpt-4-1106-preview.d.ts +3 -2
  236. package/esm/model/gpt-4-1106-preview.js +3 -2
  237. package/esm/model/gpt-4-1106-preview.js.map +1 -1
  238. package/esm/model/gpt-4-1106-vision-preview.d.ts +3 -2
  239. package/esm/model/gpt-4-1106-vision-preview.js +3 -2
  240. package/esm/model/gpt-4-1106-vision-preview.js.map +1 -1
  241. package/esm/model/gpt-4-32k-0314.d.ts +3 -2
  242. package/esm/model/gpt-4-32k-0314.js +3 -2
  243. package/esm/model/gpt-4-32k-0314.js.map +1 -1
  244. package/esm/model/gpt-4-32k-0613.d.ts +3 -2
  245. package/esm/model/gpt-4-32k-0613.js +3 -2
  246. package/esm/model/gpt-4-32k-0613.js.map +1 -1
  247. package/esm/model/gpt-4-32k.d.ts +3 -2
  248. package/esm/model/gpt-4-32k.js +3 -2
  249. package/esm/model/gpt-4-32k.js.map +1 -1
  250. package/esm/model/gpt-4-turbo-2024-04-09.d.ts +3 -2
  251. package/esm/model/gpt-4-turbo-2024-04-09.js +3 -2
  252. package/esm/model/gpt-4-turbo-2024-04-09.js.map +1 -1
  253. package/esm/model/gpt-4-turbo-preview.d.ts +3 -2
  254. package/esm/model/gpt-4-turbo-preview.js +3 -2
  255. package/esm/model/gpt-4-turbo-preview.js.map +1 -1
  256. package/esm/model/gpt-4-turbo.d.ts +3 -2
  257. package/esm/model/gpt-4-turbo.js +3 -2
  258. package/esm/model/gpt-4-turbo.js.map +1 -1
  259. package/esm/model/gpt-4-vision-preview.d.ts +3 -2
  260. package/esm/model/gpt-4-vision-preview.js +3 -2
  261. package/esm/model/gpt-4-vision-preview.js.map +1 -1
  262. package/esm/model/gpt-4.d.ts +3 -2
  263. package/esm/model/gpt-4.js +3 -2
  264. package/esm/model/gpt-4.js.map +1 -1
  265. package/esm/model/gpt-4o-2024-05-13.d.ts +3 -2
  266. package/esm/model/gpt-4o-2024-05-13.js +3 -2
  267. package/esm/model/gpt-4o-2024-05-13.js.map +1 -1
  268. package/esm/model/gpt-4o-2024-08-06-finetune.d.ts +3 -2
  269. package/esm/model/gpt-4o-2024-08-06-finetune.js +3 -2
  270. package/esm/model/gpt-4o-2024-08-06-finetune.js.map +1 -1
  271. package/esm/model/gpt-4o-2024-08-06.d.ts +3 -2
  272. package/esm/model/gpt-4o-2024-08-06.js +3 -2
  273. package/esm/model/gpt-4o-2024-08-06.js.map +1 -1
  274. package/esm/model/gpt-4o-audio-preview-2024-10-01.d.ts +3 -2
  275. package/esm/model/gpt-4o-audio-preview-2024-10-01.js +3 -2
  276. package/esm/model/gpt-4o-audio-preview-2024-10-01.js.map +1 -1
  277. package/esm/model/gpt-4o-audio-preview.d.ts +3 -2
  278. package/esm/model/gpt-4o-audio-preview.js +3 -2
  279. package/esm/model/gpt-4o-audio-preview.js.map +1 -1
  280. package/esm/model/gpt-4o-mini-2024-07-18-finetune.d.ts +3 -2
  281. package/esm/model/gpt-4o-mini-2024-07-18-finetune.js +3 -2
  282. package/esm/model/gpt-4o-mini-2024-07-18-finetune.js.map +1 -1
  283. package/esm/model/gpt-4o-mini-2024-07-18.d.ts +3 -2
  284. package/esm/model/gpt-4o-mini-2024-07-18.js +3 -2
  285. package/esm/model/gpt-4o-mini-2024-07-18.js.map +1 -1
  286. package/esm/model/gpt-4o-mini-training-2024-07-18.d.ts +3 -2
  287. package/esm/model/gpt-4o-mini-training-2024-07-18.js +3 -2
  288. package/esm/model/gpt-4o-mini-training-2024-07-18.js.map +1 -1
  289. package/esm/model/gpt-4o-mini-training.d.ts +3 -2
  290. package/esm/model/gpt-4o-mini-training.js +3 -2
  291. package/esm/model/gpt-4o-mini-training.js.map +1 -1
  292. package/esm/model/gpt-4o-mini.d.ts +3 -2
  293. package/esm/model/gpt-4o-mini.js +3 -2
  294. package/esm/model/gpt-4o-mini.js.map +1 -1
  295. package/esm/model/gpt-4o-realtime-preview-2024-10-01.d.ts +3 -2
  296. package/esm/model/gpt-4o-realtime-preview-2024-10-01.js +3 -2
  297. package/esm/model/gpt-4o-realtime-preview-2024-10-01.js.map +1 -1
  298. package/esm/model/gpt-4o-realtime-preview.d.ts +3 -2
  299. package/esm/model/gpt-4o-realtime-preview.js +3 -2
  300. package/esm/model/gpt-4o-realtime-preview.js.map +1 -1
  301. package/esm/model/gpt-4o.d.ts +3 -2
  302. package/esm/model/gpt-4o.js +3 -2
  303. package/esm/model/gpt-4o.js.map +1 -1
  304. package/esm/modelParams.d.ts +1 -3
  305. package/esm/modelParams.js.map +1 -1
  306. package/esm/models.d.ts +1 -1
  307. package/package.json +5 -5
  308. package/src/BytePairEncodingCore.ts +28 -30
  309. package/src/GptEncoding.test.ts +36 -1
  310. package/src/GptEncoding.ts +57 -23
  311. package/src/codegen/generateJsBpe.ts +1 -1
  312. package/src/constants.ts +1 -0
  313. package/src/encoding/cl100k_base.ts +3 -0
  314. package/src/encoding/o200k_base.ts +3 -0
  315. package/src/encoding/p50k_base.ts +3 -0
  316. package/src/encoding/p50k_edit.ts +3 -0
  317. package/src/encoding/r50k_base.ts +3 -0
  318. package/src/encodingParams/Cl100KBase.ts +3 -3
  319. package/src/encodingParams/O200KBase.ts +3 -3
  320. package/src/encodingParams/P50KBase.ts +3 -3
  321. package/src/encodingParams/P50KEdit.ts +3 -3
  322. package/src/encodingParams/R50KBase.ts +3 -3
  323. package/src/model/gpt-3.5-turbo-0125.ts +3 -0
  324. package/src/model/gpt-3.5-turbo-0301.ts +3 -0
  325. package/src/model/gpt-3.5-turbo-0613.ts +3 -0
  326. package/src/model/gpt-3.5-turbo-1106.ts +3 -0
  327. package/src/model/gpt-3.5-turbo-16k-0613.ts +3 -0
  328. package/src/model/gpt-3.5-turbo-16k.ts +3 -0
  329. package/src/model/gpt-3.5-turbo-finetune.ts +3 -0
  330. package/src/model/gpt-3.5-turbo.ts +3 -0
  331. package/src/model/gpt-4-0125-preview.ts +3 -0
  332. package/src/model/gpt-4-0314.ts +3 -0
  333. package/src/model/gpt-4-0613.ts +3 -0
  334. package/src/model/gpt-4-1106-preview.ts +3 -0
  335. package/src/model/gpt-4-1106-vision-preview.ts +3 -0
  336. package/src/model/gpt-4-32k-0314.ts +3 -0
  337. package/src/model/gpt-4-32k-0613.ts +3 -0
  338. package/src/model/gpt-4-32k.ts +3 -0
  339. package/src/model/gpt-4-turbo-2024-04-09.ts +3 -0
  340. package/src/model/gpt-4-turbo-preview.ts +3 -0
  341. package/src/model/gpt-4-turbo.ts +3 -0
  342. package/src/model/gpt-4-vision-preview.ts +3 -0
  343. package/src/model/gpt-4.ts +3 -0
  344. package/src/model/gpt-4o-2024-05-13.ts +3 -0
  345. package/src/model/gpt-4o-2024-08-06-finetune.ts +3 -0
  346. package/src/model/gpt-4o-2024-08-06.ts +3 -0
  347. package/src/model/gpt-4o-audio-preview-2024-10-01.ts +3 -0
  348. package/src/model/gpt-4o-audio-preview.ts +3 -0
  349. package/src/model/gpt-4o-mini-2024-07-18-finetune.ts +3 -0
  350. package/src/model/gpt-4o-mini-2024-07-18.ts +3 -0
  351. package/src/model/gpt-4o-mini-training-2024-07-18.ts +3 -0
  352. package/src/model/gpt-4o-mini-training.ts +3 -0
  353. package/src/model/gpt-4o-mini.ts +3 -0
  354. package/src/model/gpt-4o-realtime-preview-2024-10-01.ts +3 -0
  355. package/src/model/gpt-4o-realtime-preview.ts +3 -0
  356. package/src/model/gpt-4o.ts +3 -0
  357. package/src/modelParams.ts +1 -4
  358. package/src/models.ts +1 -1
@@ -1,6 +1,7 @@
1
1
  import { GptEncoding } from '../GptEncoding.js';
2
+ export * from '../constants.js';
2
3
  export * from '../specialTokens.js';
3
4
  declare const api: GptEncoding;
4
- declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, void>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => false | number, encodeChat: (chat: readonly import("../GptEncoding.js").ChatMessage[], model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => number[], encodeChatGenerator: (chat: Iterable<import("../GptEncoding.js").ChatMessage>, model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => Generator<number[], void, undefined>;
5
- export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, };
5
+ declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, void>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => false | number, encodeChat: (chat: readonly import("../GptEncoding.js").ChatMessage[], model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => number[], encodeChatGenerator: (chat: Iterable<import("../GptEncoding.js").ChatMessage>, model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => Generator<number[], void, undefined>, vocabularySize: number;
6
+ export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, vocabularySize, };
6
7
  export default api;
@@ -1,11 +1,12 @@
1
1
  /* eslint-disable import/extensions */
2
2
  import bpeRanks from '../bpeRanks/o200k_base.js';
3
3
  import { GptEncoding } from '../GptEncoding.js';
4
+ export * from '../constants.js';
4
5
  export * from '../specialTokens.js';
5
6
  // prettier-ignore
6
7
  const api = GptEncoding.getEncodingApiForModel('gpt-4o-realtime-preview-2024-10-01', () => bpeRanks);
7
- const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, encodeChat, encodeChatGenerator, } = api;
8
- export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, };
8
+ const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, encodeChat, encodeChatGenerator, vocabularySize, } = api;
9
+ export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, vocabularySize, };
9
10
  // eslint-disable-next-line import/no-default-export
10
11
  export default api;
11
12
  //# sourceMappingURL=gpt-4o-realtime-preview-2024-10-01.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-4o-realtime-preview-2024-10-01.js","sourceRoot":"","sources":["../../src/model/gpt-4o-realtime-preview-2024-10-01.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,cAAc,qBAAqB,CAAA;AACnC,kBAAkB;AAClB,MAAM,GAAG,GAAG,WAAW,CAAC,sBAAsB,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;AACpG,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,mBAAmB,GACpB,GAAG,GAAG,CAAA;AACP,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,CAAA;AACD,oDAAoD;AACpD,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"gpt-4o-realtime-preview-2024-10-01.js","sourceRoot":"","sources":["../../src/model/gpt-4o-realtime-preview-2024-10-01.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,kBAAkB;AAClB,MAAM,GAAG,GAAG,WAAW,CAAC,sBAAsB,CAAC,oCAAoC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;AACpG,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,cAAc,GACf,GAAG,GAAG,CAAA;AACP,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,CAAA;AACD,oDAAoD;AACpD,eAAe,GAAG,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { GptEncoding } from '../GptEncoding.js';
2
+ export * from '../constants.js';
2
3
  export * from '../specialTokens.js';
3
4
  declare const api: GptEncoding;
4
- declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, void>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => false | number, encodeChat: (chat: readonly import("../GptEncoding.js").ChatMessage[], model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => number[], encodeChatGenerator: (chat: Iterable<import("../GptEncoding.js").ChatMessage>, model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => Generator<number[], void, undefined>;
5
- export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, };
5
+ declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, void>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => false | number, encodeChat: (chat: readonly import("../GptEncoding.js").ChatMessage[], model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => number[], encodeChatGenerator: (chat: Iterable<import("../GptEncoding.js").ChatMessage>, model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => Generator<number[], void, undefined>, vocabularySize: number;
6
+ export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, vocabularySize, };
6
7
  export default api;
@@ -1,11 +1,12 @@
1
1
  /* eslint-disable import/extensions */
2
2
  import bpeRanks from '../bpeRanks/o200k_base.js';
3
3
  import { GptEncoding } from '../GptEncoding.js';
4
+ export * from '../constants.js';
4
5
  export * from '../specialTokens.js';
5
6
  // prettier-ignore
6
7
  const api = GptEncoding.getEncodingApiForModel('gpt-4o-realtime-preview', () => bpeRanks);
7
- const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, encodeChat, encodeChatGenerator, } = api;
8
- export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, };
8
+ const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, encodeChat, encodeChatGenerator, vocabularySize, } = api;
9
+ export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, vocabularySize, };
9
10
  // eslint-disable-next-line import/no-default-export
10
11
  export default api;
11
12
  //# sourceMappingURL=gpt-4o-realtime-preview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-4o-realtime-preview.js","sourceRoot":"","sources":["../../src/model/gpt-4o-realtime-preview.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,cAAc,qBAAqB,CAAA;AACnC,kBAAkB;AAClB,MAAM,GAAG,GAAG,WAAW,CAAC,sBAAsB,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;AACzF,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,mBAAmB,GACpB,GAAG,GAAG,CAAA;AACP,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,CAAA;AACD,oDAAoD;AACpD,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"gpt-4o-realtime-preview.js","sourceRoot":"","sources":["../../src/model/gpt-4o-realtime-preview.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,kBAAkB;AAClB,MAAM,GAAG,GAAG,WAAW,CAAC,sBAAsB,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;AACzF,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,cAAc,GACf,GAAG,GAAG,CAAA;AACP,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,CAAA;AACD,oDAAoD;AACpD,eAAe,GAAG,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { GptEncoding } from '../GptEncoding.js';
2
+ export * from '../constants.js';
2
3
  export * from '../specialTokens.js';
3
4
  declare const api: GptEncoding;
4
- declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, void>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => false | number, encodeChat: (chat: readonly import("../GptEncoding.js").ChatMessage[], model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => number[], encodeChatGenerator: (chat: Iterable<import("../GptEncoding.js").ChatMessage>, model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => Generator<number[], void, undefined>;
5
- export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, };
5
+ declare const decode: (inputTokensToDecode: Iterable<number>) => string, decodeAsyncGenerator: (inputTokensToDecode: AsyncIterable<number>) => AsyncGenerator<string, void>, decodeGenerator: (inputTokensToDecode: Iterable<number>) => Generator<string, void, void>, encode: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => number[], encodeGenerator: (lineToEncode: string, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => Generator<number[], number, undefined>, isWithinTokenLimit: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, tokenLimit: number) => false | number, encodeChat: (chat: readonly import("../GptEncoding.js").ChatMessage[], model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => number[], encodeChatGenerator: (chat: Iterable<import("../GptEncoding.js").ChatMessage>, model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "chatgpt-4o-latest" | "gpt-4o-2024-08-06" | "gpt-4o-2024-05-13" | "gpt-4o-mini" | "gpt-4o-mini-2024-07-18" | "gpt-4o-realtime-preview" | "gpt-4o-realtime-preview-2024-10-01" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "gpt-4-turbo" | "gpt-4-turbo-2024-04-09" | "gpt-4-turbo-preview" | "gpt-4-0125-preview" | "gpt-4-1106-preview" | "gpt-4" | "gpt-4-0613" | "gpt-3.5-turbo-0125" | "gpt-3.5-turbo-1106" | "gpt-3.5-turbo-finetune" | "gpt-3.5-turbo-16k" | "gpt-4-32k" | "gpt-4-32k-0613" | "gpt-4-vision-preview" | "gpt-4-1106-vision-preview" | "gpt-4-0314" | "gpt-4-32k-0314" | "gpt-3.5-turbo-0613" | "gpt-3.5-turbo-16k-0613" | "gpt-3.5-turbo-0301" | "text-embedding-3-large" | "text-embedding-ada-002" | "gpt-3.5-turbo-instruct-0914" | "text-ada-001" | "text-babbage-001" | "text-curie-001" | "text-davinci-001" | "text-davinci-002" | "text-davinci-003" | "ada" | "babbage" | "curie" | "davinci" | "code-davinci-002" | "code-davinci-001" | "davinci-codex" | "code-davinci-edit-001" | "code-cushman-002" | "code-cushman-001" | "cushman-codex" | "code-search-ada-code-001" | "code-search-ada-text-001" | "text-davinci-edit-001" | "text-similarity-ada-001" | "text-search-ada-doc-001" | "text-search-ada-query-001" | "text-similarity-babbage-001" | "text-search-babbage-doc-001" | "text-search-babbage-query-001" | "code-search-babbage-code-001" | "code-search-babbage-text-001" | "text-similarity-curie-001" | "text-search-curie-doc-001" | "text-search-curie-query-001" | "text-similarity-davinci-001" | "text-search-davinci-doc-001" | "text-search-davinci-query-001" | undefined) => Generator<number[], void, undefined>, vocabularySize: number;
6
+ export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, vocabularySize, };
6
7
  export default api;
@@ -1,11 +1,12 @@
1
1
  /* eslint-disable import/extensions */
2
2
  import bpeRanks from '../bpeRanks/o200k_base.js';
3
3
  import { GptEncoding } from '../GptEncoding.js';
4
+ export * from '../constants.js';
4
5
  export * from '../specialTokens.js';
5
6
  // prettier-ignore
6
7
  const api = GptEncoding.getEncodingApiForModel('gpt-4o', () => bpeRanks);
7
- const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, encodeChat, encodeChatGenerator, } = api;
8
- export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, };
8
+ const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, encodeChat, encodeChatGenerator, vocabularySize, } = api;
9
+ export { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, vocabularySize, };
9
10
  // eslint-disable-next-line import/no-default-export
10
11
  export default api;
11
12
  //# sourceMappingURL=gpt-4o.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-4o.js","sourceRoot":"","sources":["../../src/model/gpt-4o.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,cAAc,qBAAqB,CAAA;AACnC,kBAAkB;AAClB,MAAM,GAAG,GAAG,WAAW,CAAC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;AACxE,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,mBAAmB,GACpB,GAAG,GAAG,CAAA;AACP,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,CAAA;AACD,oDAAoD;AACpD,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"gpt-4o.js","sourceRoot":"","sources":["../../src/model/gpt-4o.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,QAAQ,MAAM,2BAA2B,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,kBAAkB;AAClB,MAAM,GAAG,GAAG,WAAW,CAAC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;AACxE,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,cAAc,GACf,GAAG,GAAG,CAAA;AACP,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,CAAA;AACD,oDAAoD;AACpD,eAAe,GAAG,CAAA"}
@@ -13,10 +13,8 @@ export interface EncodingParams extends BytePairEncodingConfig {
13
13
  * It's complex due to its need to deal with a wide variety of cases in text processing.
14
14
  */
15
15
  tokenSplitRegex: RegExp;
16
- specialTokenMapping: Map<string, number>;
16
+ specialTokensEncoder: Map<string, number>;
17
17
  modelName?: ModelName;
18
- /** increases memory consumption, but speeds up subsequent decoding */
19
- enableCache?: boolean;
20
18
  }
21
19
  export declare const tokenSplitRegex: RegExp;
22
20
  export type GetMergeableRanksFn = (encodingName: EncodingName) => RawBytePairRanks;
@@ -1 +1 @@
1
- {"version":3,"file":"modelParams.js","sourceRoot":"","sources":["../src/modelParams.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAuBvD,MAAM,CAAC,MAAM,eAAe,GAC1B,8EAA8E,CAAA;AAShF,MAAM,UAAU,iBAAiB,CAC/B,YAA0B,EAC1B,iBAAsC;IAEtC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAC9D,QAAQ,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QACnC,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,sBAAsB,CAAC,CAAA;QAEzC,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,sBAAsB,CAAC,CAAA;QAEzC,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,sBAAsB,CAAC,CAAA;QAEzC,KAAK,aAAa;YAChB,OAAO,UAAU,CAAC,sBAAsB,CAAC,CAAA;QAE3C,KAAK,YAAY;YACf,OAAO,SAAS,CAAC,sBAAsB,CAAC,CAAA;QAE1C;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAA0B,EAC1B,iBAA2C;IAE3C,MAAM,sBAAsB,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAA;IACpE,OAAO,iBAAiB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAA;AACtE,CAAC"}
1
+ {"version":3,"file":"modelParams.js","sourceRoot":"","sources":["../src/modelParams.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAoBvD,MAAM,CAAC,MAAM,eAAe,GAC1B,8EAA8E,CAAA;AAShF,MAAM,UAAU,iBAAiB,CAC/B,YAA0B,EAC1B,iBAAsC;IAEtC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAC9D,QAAQ,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QACnC,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,sBAAsB,CAAC,CAAA;QAEzC,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,sBAAsB,CAAC,CAAA;QAEzC,KAAK,WAAW;YACd,OAAO,QAAQ,CAAC,sBAAsB,CAAC,CAAA;QAEzC,KAAK,aAAa;YAChB,OAAO,UAAU,CAAC,sBAAsB,CAAC,CAAA;QAE3C,KAAK,YAAY;YACf,OAAO,SAAS,CAAC,sBAAsB,CAAC,CAAA;QAE1C;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAA0B,EAC1B,iBAA2C;IAE3C,MAAM,sBAAsB,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAA;IACpE,OAAO,iBAAiB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAA;AACtE,CAAC"}
package/esm/models.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { EncodingName } from './mapping';
1
+ import type { EncodingName } from './mapping.js';
2
2
  export interface Model {
3
3
  humanName: string;
4
4
  encoding: EncodingName;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gpt-tokenizer",
3
- "version": "2.6.0",
3
+ "version": "2.6.2",
4
4
  "description": "A pure JavaScript implementation of a BPE tokenizer (Encoder/Decoder) for GPT-2 / GPT-3 / GPT-4 and other OpenAI models",
5
5
  "keywords": [
6
6
  "BPE",
@@ -77,7 +77,7 @@
77
77
  "codegen:bpe": "rm -rf src/bpeRanks && yarn tsx src/codegen/generateJsBpe.ts",
78
78
  "build": "yarn build:cjs && yarn build:esm && yarn build:umd",
79
79
  "build:cjs": "yarn rrun tsc --outDir cjs --module commonjs --target es2022 --project tsconfig-cjs.json",
80
- "build:esm": "mkdir -p esm && echo '{\"name\": \"gpt-tokenizer\", \"type\": \"module\"}' > ./esm/package.json && yarn rrun tsc --outDir esm --module esnext --target es2022",
80
+ "build:esm": "mkdir -p esm && echo '{\"name\": \"gpt-tokenizer\", \"type\": \"module\"}' > ./esm/package.json && yarn rrun tsc --outDir esm --target es2022",
81
81
  "build:umd": "yarn build:umd:cl100k_base && yarn build:umd:p50k_base && yarn build:umd:p50k_edit && yarn build:umd:r50k_base && yarn build:umd:o200k_base",
82
82
  "build:umd:cl100k_base": "beemo webpack --entry='./src/main.ts' --env 'outDir=dist' --env 'moduleTarget=umd' --env 'engineTarget=web' --env 'codeTarget=es2022' --env 'name=GPTTokenizer_cl100k_base' --env 'filename=cl100k_base.js'",
83
83
  "build:umd:p50k_base": "beemo webpack --entry='./src/encoding/p50k_base.ts' --env 'outDir=dist' --env 'moduleTarget=umd' --env 'engineTarget=web' --env 'codeTarget=es2022' --env 'name=GPTTokenizer_p50k_base' --env 'filename=p50k_base.js'",
@@ -116,9 +116,9 @@
116
116
  "tagFormat": "${version}"
117
117
  },
118
118
  "devDependencies": {
119
- "@niieani/scaffold": "^1.7.32",
120
- "tsx": "^4.19.1",
121
- "typescript": "^5.6.2"
119
+ "@niieani/scaffold": "^1.7.37",
120
+ "tsx": "^4.19.2",
121
+ "typescript": "^5.6.3"
122
122
  },
123
123
  "resolutions": {
124
124
  "typescript": "5.6.2"
@@ -6,8 +6,8 @@ import { escapeRegExp } from './util.js'
6
6
  export type RawBytePairRanks = readonly (string | readonly number[])[]
7
7
 
8
8
  export interface BytePairEncodingConfig {
9
- mergeableBytePairRanks: RawBytePairRanks
10
- specialTokenMapping?: Map<string, number>
9
+ bytePairRankDecoder: RawBytePairRanks
10
+ specialTokensEncoder?: Map<string, number>
11
11
  tokenSplitRegex: RegExp
12
12
  }
13
13
 
@@ -38,18 +38,18 @@ export class BytePairEncodingCore {
38
38
  private textEncoder = new TextEncoder()
39
39
 
40
40
  constructor({
41
- mergeableBytePairRanks: bytePairEncoder,
42
- specialTokenMapping: specialTokenEncoder,
41
+ bytePairRankDecoder,
42
+ specialTokensEncoder,
43
43
  tokenSplitRegex,
44
44
  }: BytePairEncodingConfig) {
45
- this.bytePairRankDecoder = bytePairEncoder
45
+ this.bytePairRankDecoder = bytePairRankDecoder
46
46
  this.bytePairStringRankEncoder = new Map<string, number>()
47
47
 
48
48
  // size without array holes (which may be present in the encoder)
49
- this.mergeableBytePairRankCount = Object.keys(bytePairEncoder).length
49
+ this.mergeableBytePairRankCount = Object.keys(bytePairRankDecoder).length
50
50
  const binaryLookup: [Uint8Array, number][] = []
51
51
  // forEach skips array holes:
52
- bytePairEncoder.forEach((value, rank) => {
52
+ bytePairRankDecoder.forEach((value, rank) => {
53
53
  if (typeof value === 'string') {
54
54
  this.bytePairStringRankEncoder.set(value, rank)
55
55
  return
@@ -61,9 +61,10 @@ export class BytePairEncodingCore {
61
61
  this.bytePairNonUtfSortedEncoder = binaryLookup.sort((a, b) =>
62
62
  compareUint8Arrays(a[0], b[0]),
63
63
  )
64
- this.specialTokensEncoder = specialTokenEncoder ?? new Map<string, number>()
65
- this.specialTokensDecoder = specialTokenEncoder
66
- ? new Map([...specialTokenEncoder].map(([key, value]) => [value, key]))
64
+ this.specialTokensEncoder =
65
+ specialTokensEncoder ?? new Map<string, number>()
66
+ this.specialTokensDecoder = specialTokensEncoder
67
+ ? new Map([...specialTokensEncoder].map(([key, value]) => [value, key]))
67
68
  : new Map<number, string>()
68
69
  this.tokenSplitRegex = tokenSplitRegex
69
70
 
@@ -86,20 +87,18 @@ export class BytePairEncodingCore {
86
87
  let lastTokenLength = 0
87
88
 
88
89
  while (true) {
89
- const nextSpecialStartIndex = this.findNextSpecialStartIndex(
90
+ const nextSpecialMatch = this.findNextSpecialToken(
90
91
  text,
91
92
  allowedSpecial,
92
93
  startIndex,
93
94
  )
95
+ const nextSpecialStartIndex = nextSpecialMatch?.[0]
94
96
 
95
- const endIndex =
96
- nextSpecialStartIndex !== undefined
97
- ? nextSpecialStartIndex
98
- : text.length
97
+ const endIndex = nextSpecialStartIndex ?? text.length
99
98
 
100
- const textSegment = text.slice(startIndex, endIndex - startIndex)
99
+ const textBeforeSpecial = text.slice(startIndex, endIndex)
101
100
 
102
- for (const [match] of textSegment.matchAll(this.tokenSplitRegex)) {
101
+ for (const [match] of textBeforeSpecial.matchAll(this.tokenSplitRegex)) {
103
102
  const token = this.getBpeRankFromString(match)
104
103
  if (token !== undefined) {
105
104
  lastTokenLength = 1
@@ -114,7 +113,7 @@ export class BytePairEncodingCore {
114
113
  }
115
114
 
116
115
  if (nextSpecialStartIndex !== undefined) {
117
- const specialToken = text.slice(Math.max(0, nextSpecialStartIndex))
116
+ const specialToken = nextSpecialMatch![1]
118
117
  const specialTokenValue = this.specialTokensEncoder.get(specialToken)
119
118
  if (specialTokenValue === undefined) {
120
119
  throw new Error(
@@ -123,7 +122,7 @@ export class BytePairEncodingCore {
123
122
  }
124
123
  yield [specialTokenValue]
125
124
  startIndex = nextSpecialStartIndex + specialToken.length
126
- lastTokenLength = 0
125
+ lastTokenLength = 1
127
126
  } else {
128
127
  break
129
128
  }
@@ -138,20 +137,18 @@ export class BytePairEncodingCore {
138
137
 
139
138
  // eslint-disable-next-line no-constant-condition
140
139
  while (true) {
141
- const nextSpecialStartIndex = this.findNextSpecialStartIndex(
140
+ const nextSpecialMatch = this.findNextSpecialToken(
142
141
  text,
143
142
  allowedSpecial,
144
143
  startIndex,
145
144
  )
145
+ const nextSpecialStartIndex = nextSpecialMatch?.[0]
146
146
 
147
- const endIndex =
148
- nextSpecialStartIndex !== undefined
149
- ? nextSpecialStartIndex
150
- : text.length
147
+ const endIndex = nextSpecialStartIndex ?? text.length
151
148
 
152
- const textSegment = text.slice(startIndex, endIndex - startIndex)
149
+ const textBeforeSpecial = text.slice(startIndex, endIndex)
153
150
 
154
- for (const [match] of textSegment.matchAll(this.tokenSplitRegex)) {
151
+ for (const [match] of textBeforeSpecial.matchAll(this.tokenSplitRegex)) {
155
152
  const token = this.getBpeRankFromString(match)
156
153
  if (token !== undefined) {
157
154
  tokensArray.push(token)
@@ -164,7 +161,7 @@ export class BytePairEncodingCore {
164
161
  }
165
162
 
166
163
  if (nextSpecialStartIndex !== undefined) {
167
- const specialToken = text.slice(Math.max(0, nextSpecialStartIndex))
164
+ const specialToken = nextSpecialMatch![1]
168
165
  const specialTokenValue = this.specialTokensEncoder.get(specialToken)
169
166
  if (specialTokenValue === undefined) {
170
167
  throw new Error(
@@ -302,11 +299,11 @@ export class BytePairEncodingCore {
302
299
  return -1
303
300
  }
304
301
 
305
- private findNextSpecialStartIndex(
302
+ private findNextSpecialToken(
306
303
  text: string,
307
304
  allowedSpecial: Set<string> | undefined,
308
305
  startIndex: number,
309
- ): number | undefined {
306
+ ): [startIndex: number, token: string] | undefined {
310
307
  let searchIndex = startIndex
311
308
 
312
309
  // eslint-disable-next-line no-constant-condition
@@ -322,7 +319,8 @@ export class BytePairEncodingCore {
322
319
  const specialToken = nextSpecialMatch[0]
323
320
 
324
321
  if (allowedSpecial?.has(specialToken)) {
325
- return nextSpecialMatch.index + searchIndex
322
+ const specialTokenStartIndex = nextSpecialMatch.index + searchIndex
323
+ return [specialTokenStartIndex, specialToken]
326
324
  }
327
325
 
328
326
  searchIndex = nextSpecialMatch.index + searchIndex + 1
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs'
2
2
  import path from 'path'
3
+ import { ALL_SPECIAL_TOKENS } from './constants.js'
3
4
  import { type ChatMessage, GptEncoding } from './GptEncoding.js'
4
5
  import {
5
6
  type ChatModelName,
@@ -61,6 +62,25 @@ const results = {
61
62
  r50k_base: sharedResults,
62
63
  } satisfies Record<EncodingName, unknown>
63
64
 
65
+ const offsetPrompts = [
66
+ // Basic prompt with "hello world"
67
+ 'hello world',
68
+
69
+ // Basic prompt with special token "<|endoftext|>"
70
+ 'hello world<|endoftext|> green cow',
71
+
72
+ // Chinese text: "我非常渴望与人工智能一起工作"
73
+ '我非常渴望与人工智能一起工作',
74
+
75
+ // Contains the interesting tokens b'\xe0\xae\xbf\xe0\xae' and b'\xe0\xaf\x8d\xe0\xae'
76
+ // in which \xe0 is the start of a 3-byte UTF-8 character
77
+ 'நடிகர் சூர்யா',
78
+
79
+ // Contains the interesting token b'\xa0\xe9\x99\xa4'
80
+ // in which \xe9 is the start of a 3-byte UTF-8 character and \xa0 is a continuation byte
81
+ ' Ġ除',
82
+ ]
83
+
64
84
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
65
85
  const testPlans = loadTestPlans()
66
86
 
@@ -75,9 +95,16 @@ describe.each(encodingNames)('%s', (encodingName: EncodingName) => {
75
95
  isWithinTokenLimit,
76
96
  } = encoding
77
97
 
78
- const result = results[encodingName]
98
+ describe('encode and decode', () => {
99
+ it.each(offsetPrompts)('offset prompt: %s', (str) => {
100
+ expect(
101
+ decode(encode(str, { allowedSpecial: ALL_SPECIAL_TOKENS })),
102
+ ).toEqual(str)
103
+ })
104
+ })
79
105
 
80
106
  describe('basic functionality', () => {
107
+ const result = results[encodingName]
81
108
  it('empty string', () => {
82
109
  const str = ''
83
110
  expect(encode(str)).toEqual([])
@@ -131,6 +158,14 @@ describe.each(encodingNames)('%s', (encodingName: EncodingName) => {
131
158
  })
132
159
  })
133
160
 
161
+ it('encodes and decodes special tokens', () => {
162
+ const str = 'hello <|endoftext|> world'
163
+ const encoded = encode(str, {
164
+ allowedSpecial: ALL_SPECIAL_TOKENS,
165
+ })
166
+ expect(decode(encoded)).toEqual(str)
167
+ })
168
+
134
169
  async function* getHelloWorldTokensAsync() {
135
170
  const str = 'hello 👋 world 🌍'
136
171
  for (const token of result[str]) {
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/member-ordering */
2
2
  /* eslint-disable no-param-reassign */
3
3
  import { BytePairEncodingCore, decoder } from './BytePairEncodingCore.js'
4
+ import { ALL_SPECIAL_TOKENS } from './constants.js'
4
5
  import {
5
6
  type ChatModelName,
6
7
  type ChatParameters,
@@ -29,11 +30,19 @@ import {
29
30
  import { endsWithIncompleteUtfPairSurrogate } from './utfUtil.js'
30
31
  import { getMaxValueFromMap, getSpecialTokenRegex } from './util.js'
31
32
 
32
- export const ALL_SPECIAL_TOKENS = 'all'
33
-
34
33
  export interface EncodeOptions {
35
- allowedSpecial?: Set<string>
36
- disallowedSpecial?: Set<string>
34
+ /**
35
+ * A list of special tokens that are allowed in the input.
36
+ * If set to 'all', all special tokens are allowed except those in disallowedSpecial.
37
+ * @default undefined
38
+ */
39
+ allowedSpecial?: Set<string> | typeof ALL_SPECIAL_TOKENS
40
+ /**
41
+ * A list of special tokens that are disallowed in the input.
42
+ * If set to 'all', all special tokens are disallowed except those in allowedSpecial.
43
+ * @default 'all'
44
+ */
45
+ disallowedSpecial?: Set<string> | typeof ALL_SPECIAL_TOKENS
37
46
  }
38
47
 
39
48
  export interface ChatMessage {
@@ -60,41 +69,44 @@ export class GptEncoding {
60
69
 
61
70
  modelName?: ModelName
62
71
  private bytePairEncodingCoreProcessor: BytePairEncodingCore
63
- private specialTokenMapping: Map<string, number>
72
+ private specialTokensEncoder: Map<string, number>
64
73
  private specialTokensSet: Set<string>
65
74
  private allSpecialTokenRegex: RegExp
66
75
  private defaultSpecialTokenConfig: SpecialTokenConfig
67
76
 
77
+ readonly vocabularySize: number
78
+
68
79
  private constructor({
69
- mergeableBytePairRanks,
70
- specialTokenMapping,
80
+ bytePairRankDecoder: mergeableBytePairRanks,
81
+ specialTokensEncoder,
71
82
  expectedVocabularySize,
72
83
  modelName,
73
84
  ...rest
74
85
  }: EncodingParams) {
75
- this.specialTokenMapping = specialTokenMapping
76
- this.specialTokensSet = new Set<string>(this.specialTokenMapping.keys())
86
+ this.specialTokensEncoder = specialTokensEncoder
87
+ this.specialTokensSet = new Set<string>(this.specialTokensEncoder.keys())
77
88
  this.allSpecialTokenRegex = getSpecialTokenRegex(this.specialTokensSet)
78
89
 
79
90
  this.bytePairEncodingCoreProcessor = new BytePairEncodingCore({
80
- mergeableBytePairRanks,
81
- specialTokenMapping,
91
+ bytePairRankDecoder: mergeableBytePairRanks,
92
+ specialTokensEncoder,
82
93
  ...rest,
83
94
  })
84
95
  this.defaultSpecialTokenConfig = this.processSpecialTokens()
85
96
 
86
97
  const maxTokenValue = Math.max(
87
98
  mergeableBytePairRanks.length - 1,
88
- getMaxValueFromMap(specialTokenMapping),
99
+ getMaxValueFromMap(specialTokensEncoder),
89
100
  )
101
+
102
+ this.vocabularySize =
103
+ this.bytePairEncodingCoreProcessor.mergeableBytePairRankCount +
104
+ specialTokensEncoder.size
105
+
90
106
  if (expectedVocabularySize !== undefined) {
91
- if (
92
- this.bytePairEncodingCoreProcessor.mergeableBytePairRankCount +
93
- specialTokenMapping.size !==
94
- expectedVocabularySize
95
- ) {
107
+ if (this.vocabularySize !== expectedVocabularySize) {
96
108
  throw new Error(
97
- 'The number of mergeable tokens and special tokens must be equal to explicit_n_vocab.',
109
+ 'The number of mergeable tokens and special tokens must be equal to expectedVocabularySize.',
98
110
  )
99
111
  }
100
112
 
@@ -165,15 +177,37 @@ export class GptEncoding {
165
177
  }: EncodeOptions = {}): SpecialTokenConfig {
166
178
  let regexPattern: RegExp | undefined
167
179
 
168
- if (allowedSpecial?.has(ALL_SPECIAL_TOKENS)) {
180
+ if (
181
+ allowedSpecial === ALL_SPECIAL_TOKENS ||
182
+ allowedSpecial?.has(ALL_SPECIAL_TOKENS)
183
+ ) {
169
184
  allowedSpecial = new Set(this.specialTokensSet)
185
+ const allowedSpecialSet = allowedSpecial
186
+ if (disallowedSpecial === ALL_SPECIAL_TOKENS) {
187
+ throw new Error(
188
+ 'allowedSpecial and disallowedSpecial cannot both be set to "all".',
189
+ )
190
+ }
191
+ if (typeof disallowedSpecial === 'object') {
192
+ // remove any special tokens that are disallowed
193
+ disallowedSpecial.forEach((val) => allowedSpecialSet.delete(val))
194
+ } else {
195
+ // all special tokens are allowed, and no 'disallowedSpecial' is provided
196
+ disallowedSpecial = new Set()
197
+ }
170
198
  }
171
199
 
172
- if (!disallowedSpecial || disallowedSpecial.has(ALL_SPECIAL_TOKENS)) {
200
+ if (
201
+ !disallowedSpecial ||
202
+ disallowedSpecial === ALL_SPECIAL_TOKENS ||
203
+ disallowedSpecial.has(ALL_SPECIAL_TOKENS)
204
+ ) {
173
205
  // by default, all special tokens are disallowed
174
206
  disallowedSpecial = new Set(this.specialTokensSet)
207
+ const disallowedSpecialSet = disallowedSpecial
175
208
  if (allowedSpecial?.size) {
176
- allowedSpecial.forEach((val) => disallowedSpecial!.delete(val))
209
+ allowedSpecial.forEach((val) => disallowedSpecialSet.delete(val))
210
+ // disallowed takes precedence over allowed
177
211
  disallowedSpecial.forEach((val) => allowedSpecial.delete(val))
178
212
  regexPattern = getSpecialTokenRegex(disallowedSpecial)
179
213
  } else {
@@ -242,8 +276,8 @@ export class GptEncoding {
242
276
 
243
277
  const params: ChatParameters | undefined =
244
278
  chatModelParams[model as ChatModelName]
245
- const chatStartToken = this.specialTokenMapping.get(ImStart)
246
- const chatEndToken = this.specialTokenMapping.get(ImEnd)
279
+ const chatStartToken = this.specialTokensEncoder.get(ImStart)
280
+ const chatEndToken = this.specialTokensEncoder.get(ImEnd)
247
281
 
248
282
  if (!params || chatStartToken === undefined || chatEndToken === undefined) {
249
283
  throw new Error(`Model '${model}' does not support chat.`)
@@ -119,8 +119,8 @@ await processFilesInDirectory(
119
119
  await fs.writeFile(
120
120
  path.join(__dirname, `../bpeRanks/${modelName}.js`),
121
121
  `/* eslint-disable */\n// @ts-nocheck\n// prettier-ignore
122
- /** @type {(string | number[])[]} */
123
122
  ${jsCodeConstsForEachChunk.join('\n')}
123
+ /** @type {(string | number[])[]} */
124
124
  const bpe = ${jsCodeBpeArray};
125
125
  ${jsCodeToResetHelperArrays.join('\n')}
126
126
  export default bpe;`,
@@ -0,0 +1 @@
1
+ export const ALL_SPECIAL_TOKENS = 'all'
@@ -2,6 +2,7 @@
2
2
  import bpeRanks from '../bpeRanks/cl100k_base.js'
3
3
  import { GptEncoding } from '../GptEncoding.js'
4
4
 
5
+ export * from '../constants.js'
5
6
  export * from '../specialTokens.js'
6
7
 
7
8
  const api = GptEncoding.getEncodingApi('cl100k_base', () => bpeRanks)
@@ -14,6 +15,7 @@ const {
14
15
  isWithinTokenLimit,
15
16
  encodeChat,
16
17
  encodeChatGenerator,
18
+ vocabularySize,
17
19
  } = api
18
20
  export {
19
21
  decode,
@@ -24,6 +26,7 @@ export {
24
26
  encodeChatGenerator,
25
27
  encodeGenerator,
26
28
  isWithinTokenLimit,
29
+ vocabularySize,
27
30
  }
28
31
  // eslint-disable-next-line import/no-default-export
29
32
  export default api