gpt-tokenizer 2.8.0 → 2.9.0

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 (410) hide show
  1. package/README.md +22 -4
  2. package/cjs/BytePairEncodingCore.d.ts +1 -0
  3. package/cjs/BytePairEncodingCore.js +3 -0
  4. package/cjs/BytePairEncodingCore.js.map +1 -1
  5. package/cjs/GptEncoding.d.ts +12 -2
  6. package/cjs/GptEncoding.js +43 -0
  7. package/cjs/GptEncoding.js.map +1 -1
  8. package/cjs/GptEncoding.test.js +121 -64
  9. package/cjs/GptEncoding.test.js.map +1 -1
  10. package/cjs/encoding/cl100k_base.d.ts +2 -2
  11. package/cjs/encoding/cl100k_base.js +4 -2
  12. package/cjs/encoding/cl100k_base.js.map +1 -1
  13. package/cjs/encoding/o200k_base.d.ts +2 -2
  14. package/cjs/encoding/o200k_base.js +4 -2
  15. package/cjs/encoding/o200k_base.js.map +1 -1
  16. package/cjs/encoding/p50k_base.d.ts +2 -2
  17. package/cjs/encoding/p50k_base.js +4 -2
  18. package/cjs/encoding/p50k_base.js.map +1 -1
  19. package/cjs/encoding/p50k_edit.d.ts +2 -2
  20. package/cjs/encoding/p50k_edit.js +6 -2
  21. package/cjs/encoding/p50k_edit.js.map +1 -1
  22. package/cjs/encoding/r50k_base.d.ts +2 -2
  23. package/cjs/encoding/r50k_base.js +4 -2
  24. package/cjs/encoding/r50k_base.js.map +1 -1
  25. package/cjs/extraApis.test.js +19 -17
  26. package/cjs/extraApis.test.js.map +1 -1
  27. package/cjs/model/babbage-002-finetune.d.ts +2 -0
  28. package/cjs/model/babbage-002-finetune.js +25 -0
  29. package/cjs/model/babbage-002-finetune.js.map +1 -0
  30. package/cjs/model/davinci-002-finetune.d.ts +2 -0
  31. package/cjs/model/davinci-002-finetune.js +25 -0
  32. package/cjs/model/davinci-002-finetune.js.map +1 -0
  33. package/cjs/model/gpt-3.5-turbo-0125.d.ts +2 -2
  34. package/cjs/model/gpt-3.5-turbo-0125.js +4 -2
  35. package/cjs/model/gpt-3.5-turbo-0125.js.map +1 -1
  36. package/cjs/model/gpt-3.5-turbo-0301.d.ts +2 -2
  37. package/cjs/model/gpt-3.5-turbo-0301.js +4 -2
  38. package/cjs/model/gpt-3.5-turbo-0301.js.map +1 -1
  39. package/cjs/model/gpt-3.5-turbo-0613.d.ts +2 -2
  40. package/cjs/model/gpt-3.5-turbo-0613.js +4 -2
  41. package/cjs/model/gpt-3.5-turbo-0613.js.map +1 -1
  42. package/cjs/model/gpt-3.5-turbo-1106.d.ts +2 -2
  43. package/cjs/model/gpt-3.5-turbo-1106.js +4 -2
  44. package/cjs/model/gpt-3.5-turbo-1106.js.map +1 -1
  45. package/cjs/model/gpt-3.5-turbo-16k-0613.d.ts +2 -2
  46. package/cjs/model/gpt-3.5-turbo-16k-0613.js +4 -2
  47. package/cjs/model/gpt-3.5-turbo-16k-0613.js.map +1 -1
  48. package/cjs/model/gpt-3.5-turbo-16k.d.ts +2 -2
  49. package/cjs/model/gpt-3.5-turbo-16k.js +4 -2
  50. package/cjs/model/gpt-3.5-turbo-16k.js.map +1 -1
  51. package/cjs/model/gpt-3.5-turbo-finetune.d.ts +2 -2
  52. package/cjs/model/gpt-3.5-turbo-finetune.js +4 -2
  53. package/cjs/model/gpt-3.5-turbo-finetune.js.map +1 -1
  54. package/cjs/model/gpt-3.5-turbo.d.ts +2 -2
  55. package/cjs/model/gpt-3.5-turbo.js +4 -2
  56. package/cjs/model/gpt-3.5-turbo.js.map +1 -1
  57. package/cjs/model/gpt-4-0125-preview.d.ts +2 -2
  58. package/cjs/model/gpt-4-0125-preview.js +4 -2
  59. package/cjs/model/gpt-4-0125-preview.js.map +1 -1
  60. package/cjs/model/gpt-4-0314.d.ts +2 -2
  61. package/cjs/model/gpt-4-0314.js +4 -2
  62. package/cjs/model/gpt-4-0314.js.map +1 -1
  63. package/cjs/model/gpt-4-0613.d.ts +2 -2
  64. package/cjs/model/gpt-4-0613.js +4 -2
  65. package/cjs/model/gpt-4-0613.js.map +1 -1
  66. package/cjs/model/gpt-4-1106-preview.d.ts +2 -2
  67. package/cjs/model/gpt-4-1106-preview.js +4 -2
  68. package/cjs/model/gpt-4-1106-preview.js.map +1 -1
  69. package/cjs/model/gpt-4-1106-vision-preview.d.ts +2 -2
  70. package/cjs/model/gpt-4-1106-vision-preview.js +4 -2
  71. package/cjs/model/gpt-4-1106-vision-preview.js.map +1 -1
  72. package/cjs/model/gpt-4-32k-0314.d.ts +2 -2
  73. package/cjs/model/gpt-4-32k-0314.js +4 -2
  74. package/cjs/model/gpt-4-32k-0314.js.map +1 -1
  75. package/cjs/model/gpt-4-32k-0613.d.ts +2 -2
  76. package/cjs/model/gpt-4-32k-0613.js +4 -2
  77. package/cjs/model/gpt-4-32k-0613.js.map +1 -1
  78. package/cjs/model/gpt-4-32k.d.ts +2 -2
  79. package/cjs/model/gpt-4-32k.js +4 -2
  80. package/cjs/model/gpt-4-32k.js.map +1 -1
  81. package/cjs/model/gpt-4-turbo-2024-04-09.d.ts +2 -2
  82. package/cjs/model/gpt-4-turbo-2024-04-09.js +4 -2
  83. package/cjs/model/gpt-4-turbo-2024-04-09.js.map +1 -1
  84. package/cjs/model/gpt-4-turbo-preview.d.ts +2 -2
  85. package/cjs/model/gpt-4-turbo-preview.js +4 -2
  86. package/cjs/model/gpt-4-turbo-preview.js.map +1 -1
  87. package/cjs/model/gpt-4-turbo.d.ts +2 -2
  88. package/cjs/model/gpt-4-turbo.js +4 -2
  89. package/cjs/model/gpt-4-turbo.js.map +1 -1
  90. package/cjs/model/gpt-4-vision-preview.d.ts +2 -2
  91. package/cjs/model/gpt-4-vision-preview.js +4 -2
  92. package/cjs/model/gpt-4-vision-preview.js.map +1 -1
  93. package/cjs/model/gpt-4.d.ts +2 -2
  94. package/cjs/model/gpt-4.js +4 -2
  95. package/cjs/model/gpt-4.js.map +1 -1
  96. package/cjs/model/gpt-4o-2024-05-13.d.ts +2 -2
  97. package/cjs/model/gpt-4o-2024-05-13.js +4 -2
  98. package/cjs/model/gpt-4o-2024-05-13.js.map +1 -1
  99. package/cjs/model/gpt-4o-2024-08-06-finetune.d.ts +2 -2
  100. package/cjs/model/gpt-4o-2024-08-06-finetune.js +4 -2
  101. package/cjs/model/gpt-4o-2024-08-06-finetune.js.map +1 -1
  102. package/cjs/model/gpt-4o-2024-08-06.d.ts +2 -2
  103. package/cjs/model/gpt-4o-2024-08-06.js +4 -2
  104. package/cjs/model/gpt-4o-2024-08-06.js.map +1 -1
  105. package/cjs/model/gpt-4o-2024-11-20.d.ts +7 -0
  106. package/cjs/model/gpt-4o-2024-11-20.js +44 -0
  107. package/cjs/model/gpt-4o-2024-11-20.js.map +1 -0
  108. package/cjs/model/gpt-4o-audio-preview-2024-10-01.d.ts +2 -2
  109. package/cjs/model/gpt-4o-audio-preview-2024-10-01.js +4 -2
  110. package/cjs/model/gpt-4o-audio-preview-2024-10-01.js.map +1 -1
  111. package/cjs/model/gpt-4o-audio-preview-2024-12-17.d.ts +7 -0
  112. package/cjs/model/gpt-4o-audio-preview-2024-12-17.js +44 -0
  113. package/cjs/model/gpt-4o-audio-preview-2024-12-17.js.map +1 -0
  114. package/cjs/model/gpt-4o-audio-preview.d.ts +2 -2
  115. package/cjs/model/gpt-4o-audio-preview.js +4 -2
  116. package/cjs/model/gpt-4o-audio-preview.js.map +1 -1
  117. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.d.ts +2 -2
  118. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.js +4 -2
  119. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.js.map +1 -1
  120. package/cjs/model/gpt-4o-mini-2024-07-18.d.ts +2 -2
  121. package/cjs/model/gpt-4o-mini-2024-07-18.js +4 -2
  122. package/cjs/model/gpt-4o-mini-2024-07-18.js.map +1 -1
  123. package/cjs/model/gpt-4o-mini-audio-preview-2024-12-17.d.ts +7 -0
  124. package/cjs/model/gpt-4o-mini-audio-preview-2024-12-17.js +44 -0
  125. package/cjs/model/gpt-4o-mini-audio-preview-2024-12-17.js.map +1 -0
  126. package/cjs/model/gpt-4o-mini-audio-preview.d.ts +7 -0
  127. package/cjs/model/gpt-4o-mini-audio-preview.js +44 -0
  128. package/cjs/model/gpt-4o-mini-audio-preview.js.map +1 -0
  129. package/cjs/model/gpt-4o-mini-realtime-preview-2024-12-17.d.ts +7 -0
  130. package/cjs/model/gpt-4o-mini-realtime-preview-2024-12-17.js +44 -0
  131. package/cjs/model/gpt-4o-mini-realtime-preview-2024-12-17.js.map +1 -0
  132. package/cjs/model/gpt-4o-mini-realtime-preview.d.ts +7 -0
  133. package/cjs/model/gpt-4o-mini-realtime-preview.js +44 -0
  134. package/cjs/model/gpt-4o-mini-realtime-preview.js.map +1 -0
  135. package/cjs/model/gpt-4o-mini-training-2024-07-18.d.ts +2 -2
  136. package/cjs/model/gpt-4o-mini-training-2024-07-18.js +4 -2
  137. package/cjs/model/gpt-4o-mini-training-2024-07-18.js.map +1 -1
  138. package/cjs/model/gpt-4o-mini-training.d.ts +2 -2
  139. package/cjs/model/gpt-4o-mini-training.js +4 -2
  140. package/cjs/model/gpt-4o-mini-training.js.map +1 -1
  141. package/cjs/model/gpt-4o-mini.d.ts +2 -2
  142. package/cjs/model/gpt-4o-mini.js +4 -2
  143. package/cjs/model/gpt-4o-mini.js.map +1 -1
  144. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.d.ts +2 -2
  145. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.js +4 -2
  146. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.js.map +1 -1
  147. package/cjs/model/gpt-4o-realtime-preview-2024-12-17.d.ts +7 -0
  148. package/cjs/model/gpt-4o-realtime-preview-2024-12-17.js +44 -0
  149. package/cjs/model/gpt-4o-realtime-preview-2024-12-17.js.map +1 -0
  150. package/cjs/model/gpt-4o-realtime-preview.d.ts +2 -2
  151. package/cjs/model/gpt-4o-realtime-preview.js +4 -2
  152. package/cjs/model/gpt-4o-realtime-preview.js.map +1 -1
  153. package/cjs/model/gpt-4o.d.ts +2 -2
  154. package/cjs/model/gpt-4o.js +4 -2
  155. package/cjs/model/gpt-4o.js.map +1 -1
  156. package/cjs/model/o1-2024-12-17.d.ts +2 -0
  157. package/cjs/model/o1-2024-12-17.js +25 -0
  158. package/cjs/model/o1-2024-12-17.js.map +1 -0
  159. package/cjs/model/o1.d.ts +2 -0
  160. package/cjs/model/o1.js +25 -0
  161. package/cjs/model/o1.js.map +1 -0
  162. package/cjs/model/o3-mini.d.ts +2 -0
  163. package/cjs/model/o3-mini.js +25 -0
  164. package/cjs/model/o3-mini.js.map +1 -0
  165. package/cjs/models.d.ts +38 -10
  166. package/cjs/models.js +201 -8
  167. package/cjs/models.js.map +1 -1
  168. package/cjs/otherRuntimes.test.d.ts +4 -0
  169. package/cjs/otherRuntimes.test.js +22 -0
  170. package/cjs/otherRuntimes.test.js.map +1 -0
  171. package/cjs/resolveEncodingAsync.js +17 -7
  172. package/cjs/resolveEncodingAsync.js.map +1 -1
  173. package/dist/cl100k_base.js +1 -1
  174. package/dist/cl100k_base.js.map +1 -1
  175. package/dist/o200k_base.js +1 -1
  176. package/dist/o200k_base.js.map +1 -1
  177. package/dist/p50k_base.js +1 -1
  178. package/dist/p50k_base.js.map +1 -1
  179. package/dist/p50k_edit.js +1 -1
  180. package/dist/p50k_edit.js.map +1 -1
  181. package/dist/r50k_base.js +1 -1
  182. package/dist/r50k_base.js.map +1 -1
  183. package/esm/BytePairEncodingCore.d.ts +1 -0
  184. package/esm/BytePairEncodingCore.js +3 -0
  185. package/esm/BytePairEncodingCore.js.map +1 -1
  186. package/esm/GptEncoding.d.ts +12 -2
  187. package/esm/GptEncoding.js +43 -0
  188. package/esm/GptEncoding.js.map +1 -1
  189. package/esm/GptEncoding.test.js +77 -20
  190. package/esm/GptEncoding.test.js.map +1 -1
  191. package/esm/encoding/cl100k_base.d.ts +2 -2
  192. package/esm/encoding/cl100k_base.js +2 -2
  193. package/esm/encoding/cl100k_base.js.map +1 -1
  194. package/esm/encoding/o200k_base.d.ts +2 -2
  195. package/esm/encoding/o200k_base.js +2 -2
  196. package/esm/encoding/o200k_base.js.map +1 -1
  197. package/esm/encoding/p50k_base.d.ts +2 -2
  198. package/esm/encoding/p50k_base.js +2 -2
  199. package/esm/encoding/p50k_base.js.map +1 -1
  200. package/esm/encoding/p50k_edit.d.ts +2 -2
  201. package/esm/encoding/p50k_edit.js +2 -2
  202. package/esm/encoding/p50k_edit.js.map +1 -1
  203. package/esm/encoding/r50k_base.d.ts +2 -2
  204. package/esm/encoding/r50k_base.js +2 -2
  205. package/esm/encoding/r50k_base.js.map +1 -1
  206. package/esm/extraApis.test.js +2 -0
  207. package/esm/extraApis.test.js.map +1 -1
  208. package/esm/model/babbage-002-finetune.d.ts +2 -0
  209. package/esm/model/babbage-002-finetune.js +4 -0
  210. package/esm/model/babbage-002-finetune.js.map +1 -0
  211. package/esm/model/davinci-002-finetune.d.ts +2 -0
  212. package/esm/model/davinci-002-finetune.js +4 -0
  213. package/esm/model/davinci-002-finetune.js.map +1 -0
  214. package/esm/model/gpt-3.5-turbo-0125.d.ts +2 -2
  215. package/esm/model/gpt-3.5-turbo-0125.js +2 -2
  216. package/esm/model/gpt-3.5-turbo-0125.js.map +1 -1
  217. package/esm/model/gpt-3.5-turbo-0301.d.ts +2 -2
  218. package/esm/model/gpt-3.5-turbo-0301.js +2 -2
  219. package/esm/model/gpt-3.5-turbo-0301.js.map +1 -1
  220. package/esm/model/gpt-3.5-turbo-0613.d.ts +2 -2
  221. package/esm/model/gpt-3.5-turbo-0613.js +2 -2
  222. package/esm/model/gpt-3.5-turbo-0613.js.map +1 -1
  223. package/esm/model/gpt-3.5-turbo-1106.d.ts +2 -2
  224. package/esm/model/gpt-3.5-turbo-1106.js +2 -2
  225. package/esm/model/gpt-3.5-turbo-1106.js.map +1 -1
  226. package/esm/model/gpt-3.5-turbo-16k-0613.d.ts +2 -2
  227. package/esm/model/gpt-3.5-turbo-16k-0613.js +2 -2
  228. package/esm/model/gpt-3.5-turbo-16k-0613.js.map +1 -1
  229. package/esm/model/gpt-3.5-turbo-16k.d.ts +2 -2
  230. package/esm/model/gpt-3.5-turbo-16k.js +2 -2
  231. package/esm/model/gpt-3.5-turbo-16k.js.map +1 -1
  232. package/esm/model/gpt-3.5-turbo-finetune.d.ts +2 -2
  233. package/esm/model/gpt-3.5-turbo-finetune.js +2 -2
  234. package/esm/model/gpt-3.5-turbo-finetune.js.map +1 -1
  235. package/esm/model/gpt-3.5-turbo.d.ts +2 -2
  236. package/esm/model/gpt-3.5-turbo.js +2 -2
  237. package/esm/model/gpt-3.5-turbo.js.map +1 -1
  238. package/esm/model/gpt-4-0125-preview.d.ts +2 -2
  239. package/esm/model/gpt-4-0125-preview.js +2 -2
  240. package/esm/model/gpt-4-0125-preview.js.map +1 -1
  241. package/esm/model/gpt-4-0314.d.ts +2 -2
  242. package/esm/model/gpt-4-0314.js +2 -2
  243. package/esm/model/gpt-4-0314.js.map +1 -1
  244. package/esm/model/gpt-4-0613.d.ts +2 -2
  245. package/esm/model/gpt-4-0613.js +2 -2
  246. package/esm/model/gpt-4-0613.js.map +1 -1
  247. package/esm/model/gpt-4-1106-preview.d.ts +2 -2
  248. package/esm/model/gpt-4-1106-preview.js +2 -2
  249. package/esm/model/gpt-4-1106-preview.js.map +1 -1
  250. package/esm/model/gpt-4-1106-vision-preview.d.ts +2 -2
  251. package/esm/model/gpt-4-1106-vision-preview.js +2 -2
  252. package/esm/model/gpt-4-1106-vision-preview.js.map +1 -1
  253. package/esm/model/gpt-4-32k-0314.d.ts +2 -2
  254. package/esm/model/gpt-4-32k-0314.js +2 -2
  255. package/esm/model/gpt-4-32k-0314.js.map +1 -1
  256. package/esm/model/gpt-4-32k-0613.d.ts +2 -2
  257. package/esm/model/gpt-4-32k-0613.js +2 -2
  258. package/esm/model/gpt-4-32k-0613.js.map +1 -1
  259. package/esm/model/gpt-4-32k.d.ts +2 -2
  260. package/esm/model/gpt-4-32k.js +2 -2
  261. package/esm/model/gpt-4-32k.js.map +1 -1
  262. package/esm/model/gpt-4-turbo-2024-04-09.d.ts +2 -2
  263. package/esm/model/gpt-4-turbo-2024-04-09.js +2 -2
  264. package/esm/model/gpt-4-turbo-2024-04-09.js.map +1 -1
  265. package/esm/model/gpt-4-turbo-preview.d.ts +2 -2
  266. package/esm/model/gpt-4-turbo-preview.js +2 -2
  267. package/esm/model/gpt-4-turbo-preview.js.map +1 -1
  268. package/esm/model/gpt-4-turbo.d.ts +2 -2
  269. package/esm/model/gpt-4-turbo.js +2 -2
  270. package/esm/model/gpt-4-turbo.js.map +1 -1
  271. package/esm/model/gpt-4-vision-preview.d.ts +2 -2
  272. package/esm/model/gpt-4-vision-preview.js +2 -2
  273. package/esm/model/gpt-4-vision-preview.js.map +1 -1
  274. package/esm/model/gpt-4.d.ts +2 -2
  275. package/esm/model/gpt-4.js +2 -2
  276. package/esm/model/gpt-4.js.map +1 -1
  277. package/esm/model/gpt-4o-2024-05-13.d.ts +2 -2
  278. package/esm/model/gpt-4o-2024-05-13.js +2 -2
  279. package/esm/model/gpt-4o-2024-05-13.js.map +1 -1
  280. package/esm/model/gpt-4o-2024-08-06-finetune.d.ts +2 -2
  281. package/esm/model/gpt-4o-2024-08-06-finetune.js +2 -2
  282. package/esm/model/gpt-4o-2024-08-06-finetune.js.map +1 -1
  283. package/esm/model/gpt-4o-2024-08-06.d.ts +2 -2
  284. package/esm/model/gpt-4o-2024-08-06.js +2 -2
  285. package/esm/model/gpt-4o-2024-08-06.js.map +1 -1
  286. package/esm/model/gpt-4o-2024-11-20.d.ts +7 -0
  287. package/esm/model/gpt-4o-2024-11-20.js +12 -0
  288. package/esm/model/gpt-4o-2024-11-20.js.map +1 -0
  289. package/esm/model/gpt-4o-audio-preview-2024-10-01.d.ts +2 -2
  290. package/esm/model/gpt-4o-audio-preview-2024-10-01.js +2 -2
  291. package/esm/model/gpt-4o-audio-preview-2024-10-01.js.map +1 -1
  292. package/esm/model/gpt-4o-audio-preview-2024-12-17.d.ts +7 -0
  293. package/esm/model/gpt-4o-audio-preview-2024-12-17.js +12 -0
  294. package/esm/model/gpt-4o-audio-preview-2024-12-17.js.map +1 -0
  295. package/esm/model/gpt-4o-audio-preview.d.ts +2 -2
  296. package/esm/model/gpt-4o-audio-preview.js +2 -2
  297. package/esm/model/gpt-4o-audio-preview.js.map +1 -1
  298. package/esm/model/gpt-4o-mini-2024-07-18-finetune.d.ts +2 -2
  299. package/esm/model/gpt-4o-mini-2024-07-18-finetune.js +2 -2
  300. package/esm/model/gpt-4o-mini-2024-07-18-finetune.js.map +1 -1
  301. package/esm/model/gpt-4o-mini-2024-07-18.d.ts +2 -2
  302. package/esm/model/gpt-4o-mini-2024-07-18.js +2 -2
  303. package/esm/model/gpt-4o-mini-2024-07-18.js.map +1 -1
  304. package/esm/model/gpt-4o-mini-audio-preview-2024-12-17.d.ts +7 -0
  305. package/esm/model/gpt-4o-mini-audio-preview-2024-12-17.js +12 -0
  306. package/esm/model/gpt-4o-mini-audio-preview-2024-12-17.js.map +1 -0
  307. package/esm/model/gpt-4o-mini-audio-preview.d.ts +7 -0
  308. package/esm/model/gpt-4o-mini-audio-preview.js +12 -0
  309. package/esm/model/gpt-4o-mini-audio-preview.js.map +1 -0
  310. package/esm/model/gpt-4o-mini-realtime-preview-2024-12-17.d.ts +7 -0
  311. package/esm/model/gpt-4o-mini-realtime-preview-2024-12-17.js +12 -0
  312. package/esm/model/gpt-4o-mini-realtime-preview-2024-12-17.js.map +1 -0
  313. package/esm/model/gpt-4o-mini-realtime-preview.d.ts +7 -0
  314. package/esm/model/gpt-4o-mini-realtime-preview.js +12 -0
  315. package/esm/model/gpt-4o-mini-realtime-preview.js.map +1 -0
  316. package/esm/model/gpt-4o-mini-training-2024-07-18.d.ts +2 -2
  317. package/esm/model/gpt-4o-mini-training-2024-07-18.js +2 -2
  318. package/esm/model/gpt-4o-mini-training-2024-07-18.js.map +1 -1
  319. package/esm/model/gpt-4o-mini-training.d.ts +2 -2
  320. package/esm/model/gpt-4o-mini-training.js +2 -2
  321. package/esm/model/gpt-4o-mini-training.js.map +1 -1
  322. package/esm/model/gpt-4o-mini.d.ts +2 -2
  323. package/esm/model/gpt-4o-mini.js +2 -2
  324. package/esm/model/gpt-4o-mini.js.map +1 -1
  325. package/esm/model/gpt-4o-realtime-preview-2024-10-01.d.ts +2 -2
  326. package/esm/model/gpt-4o-realtime-preview-2024-10-01.js +2 -2
  327. package/esm/model/gpt-4o-realtime-preview-2024-10-01.js.map +1 -1
  328. package/esm/model/gpt-4o-realtime-preview-2024-12-17.d.ts +7 -0
  329. package/esm/model/gpt-4o-realtime-preview-2024-12-17.js +12 -0
  330. package/esm/model/gpt-4o-realtime-preview-2024-12-17.js.map +1 -0
  331. package/esm/model/gpt-4o-realtime-preview.d.ts +2 -2
  332. package/esm/model/gpt-4o-realtime-preview.js +2 -2
  333. package/esm/model/gpt-4o-realtime-preview.js.map +1 -1
  334. package/esm/model/gpt-4o.d.ts +2 -2
  335. package/esm/model/gpt-4o.js +2 -2
  336. package/esm/model/gpt-4o.js.map +1 -1
  337. package/esm/model/o1-2024-12-17.d.ts +2 -0
  338. package/esm/model/o1-2024-12-17.js +4 -0
  339. package/esm/model/o1-2024-12-17.js.map +1 -0
  340. package/esm/model/o1.d.ts +2 -0
  341. package/esm/model/o1.js +4 -0
  342. package/esm/model/o1.js.map +1 -0
  343. package/esm/model/o3-mini.d.ts +2 -0
  344. package/esm/model/o3-mini.js +4 -0
  345. package/esm/model/o3-mini.js.map +1 -0
  346. package/esm/models.d.ts +38 -10
  347. package/esm/models.js +201 -8
  348. package/esm/models.js.map +1 -1
  349. package/esm/otherRuntimes.test.d.ts +4 -0
  350. package/esm/otherRuntimes.test.js +20 -0
  351. package/esm/otherRuntimes.test.js.map +1 -0
  352. package/package.json +9 -5
  353. package/src/BytePairEncodingCore.ts +4 -0
  354. package/src/GptEncoding.test.ts +102 -20
  355. package/src/GptEncoding.ts +56 -0
  356. package/src/__snapshots__/GptEncoding.test.ts.snap +958 -69
  357. package/src/encoding/cl100k_base.ts +4 -0
  358. package/src/encoding/o200k_base.ts +4 -0
  359. package/src/encoding/p50k_base.ts +4 -0
  360. package/src/encoding/p50k_edit.ts +8 -0
  361. package/src/encoding/r50k_base.ts +4 -0
  362. package/src/extraApis.test.ts +2 -0
  363. package/src/model/babbage-002-finetune.ts +3 -0
  364. package/src/model/davinci-002-finetune.ts +3 -0
  365. package/src/model/gpt-3.5-turbo-0125.ts +4 -0
  366. package/src/model/gpt-3.5-turbo-0301.ts +4 -0
  367. package/src/model/gpt-3.5-turbo-0613.ts +4 -0
  368. package/src/model/gpt-3.5-turbo-1106.ts +4 -0
  369. package/src/model/gpt-3.5-turbo-16k-0613.ts +4 -0
  370. package/src/model/gpt-3.5-turbo-16k.ts +4 -0
  371. package/src/model/gpt-3.5-turbo-finetune.ts +4 -0
  372. package/src/model/gpt-3.5-turbo.ts +4 -0
  373. package/src/model/gpt-4-0125-preview.ts +4 -0
  374. package/src/model/gpt-4-0314.ts +4 -0
  375. package/src/model/gpt-4-0613.ts +4 -0
  376. package/src/model/gpt-4-1106-preview.ts +4 -0
  377. package/src/model/gpt-4-1106-vision-preview.ts +4 -0
  378. package/src/model/gpt-4-32k-0314.ts +4 -0
  379. package/src/model/gpt-4-32k-0613.ts +4 -0
  380. package/src/model/gpt-4-32k.ts +4 -0
  381. package/src/model/gpt-4-turbo-2024-04-09.ts +4 -0
  382. package/src/model/gpt-4-turbo-preview.ts +4 -0
  383. package/src/model/gpt-4-turbo.ts +4 -0
  384. package/src/model/gpt-4-vision-preview.ts +4 -0
  385. package/src/model/gpt-4.ts +4 -0
  386. package/src/model/gpt-4o-2024-05-13.ts +4 -0
  387. package/src/model/gpt-4o-2024-08-06-finetune.ts +4 -0
  388. package/src/model/gpt-4o-2024-08-06.ts +4 -0
  389. package/src/model/gpt-4o-2024-11-20.ts +40 -0
  390. package/src/model/gpt-4o-audio-preview-2024-10-01.ts +4 -0
  391. package/src/model/gpt-4o-audio-preview-2024-12-17.ts +40 -0
  392. package/src/model/gpt-4o-audio-preview.ts +4 -0
  393. package/src/model/gpt-4o-mini-2024-07-18-finetune.ts +4 -0
  394. package/src/model/gpt-4o-mini-2024-07-18.ts +4 -0
  395. package/src/model/gpt-4o-mini-audio-preview-2024-12-17.ts +40 -0
  396. package/src/model/gpt-4o-mini-audio-preview.ts +40 -0
  397. package/src/model/gpt-4o-mini-realtime-preview-2024-12-17.ts +40 -0
  398. package/src/model/gpt-4o-mini-realtime-preview.ts +40 -0
  399. package/src/model/gpt-4o-mini-training-2024-07-18.ts +4 -0
  400. package/src/model/gpt-4o-mini-training.ts +4 -0
  401. package/src/model/gpt-4o-mini.ts +4 -0
  402. package/src/model/gpt-4o-realtime-preview-2024-10-01.ts +4 -0
  403. package/src/model/gpt-4o-realtime-preview-2024-12-17.ts +40 -0
  404. package/src/model/gpt-4o-realtime-preview.ts +4 -0
  405. package/src/model/gpt-4o.ts +4 -0
  406. package/src/model/o1-2024-12-17.ts +3 -0
  407. package/src/model/o1.ts +3 -0
  408. package/src/model/o3-mini.ts +3 -0
  409. package/src/models.ts +229 -19
  410. package/src/otherRuntimes.test.ts +23 -0
package/README.md CHANGED
@@ -195,10 +195,12 @@ Note: if you're using `gpt-3.5-*` or `gpt-4-*` and don't see the model you're lo
195
195
 
196
196
  ## API
197
197
 
198
- ### `encode(text: string): number[]`
198
+ ### `encode(text: string, encodeOptions?: EncodeOptions): number[]`
199
199
 
200
200
  Encodes the given text into a sequence of tokens. Use this method when you need to transform a piece of text into the token format that the GPT models can process.
201
201
 
202
+ The optional `encodeOptions` parameter allows you to specify special token handling (see [special tokens](#special-tokens)).
203
+
202
204
  Example:
203
205
 
204
206
  ```typescript
@@ -327,7 +329,11 @@ async function processTokens(asyncTokensIterator) {
327
329
  ## Special tokens
328
330
 
329
331
  There are a few special tokens that are used by the GPT models.
330
- Not all models support all of these tokens.
332
+ Note that not all models support all of these tokens.
333
+
334
+ By default, **all special tokens are disallowed**.
335
+
336
+ The `encode`, `encodeGenerator` and `countTokens` functions accept an `EncodeOptions` parameter to customize special token handling:
331
337
 
332
338
  ### Custom Allowed Sets
333
339
 
@@ -349,12 +355,14 @@ import {
349
355
 
350
356
  const inputText = `Some Text ${EndOfPrompt}`
351
357
  const allowedSpecialTokens = new Set([EndOfPrompt])
352
- const encoded = encode(inputText, allowedSpecialTokens)
358
+ const encoded = encode(inputText, { allowedSpecialTokens })
353
359
  const expectedEncoded = [8538, 2991, 220, 100276]
354
360
 
355
361
  expect(encoded).toBe(expectedEncoded)
356
362
  ```
357
363
 
364
+ You may also use a special shorthand for either disallowing or allowing all special tokens, by passing in the string `'all'`, e.g. `{ allowedSpecial: 'all' }`.
365
+
358
366
  ### Custom Disallowed Sets
359
367
 
360
368
  Similarly, you can specify custom sets of disallowed special tokens when encoding text. Pass a `Set`
@@ -366,11 +374,13 @@ import { encode, EndOfText } from 'gpt-tokenizer'
366
374
  const inputText = `Some Text ${EndOfText}`
367
375
  const disallowedSpecial = new Set([EndOfText])
368
376
  // throws an error:
369
- const encoded = encode(inputText, undefined, disallowedSpecial)
377
+ const encoded = encode(inputText, { disallowedSpecial })
370
378
  ```
371
379
 
372
380
  In this example, an Error is thrown, because the input text contains a disallowed special token.
373
381
 
382
+ If both `allowedSpecialTokens` and `disallowedSpecial` are provided, `disallowedSpecial` takes precedence.
383
+
374
384
  ## Performance Optimization
375
385
 
376
386
  ### LRU Merge Cache
@@ -393,6 +403,14 @@ setMergeCacheSize(5000)
393
403
  setMergeCacheSize(0)
394
404
  ```
395
405
 
406
+ The cache is persisted between encoding calls. To explicitly clear the cache (e.g. to free up memory), use the `clearMergeCache` function:
407
+
408
+ ```ts
409
+ import { clearMergeCache } from 'gpt-tokenizer'
410
+
411
+ clearMergeCache()
412
+ ```
413
+
396
414
  ## Testing and Validation
397
415
 
398
416
  `gpt-tokenizer` includes a set of test cases in the [TestPlans.txt](./data/TestPlans.txt) file to ensure its compatibility with OpenAI's Python `tiktoken` library. These test cases validate the functionality and behavior of `gpt-tokenizer`, providing a reliable reference for developers.
@@ -37,6 +37,7 @@ export declare class BytePairEncodingCore {
37
37
  private mergeCacheSize;
38
38
  constructor({ bytePairRankDecoder, specialTokensEncoder, tokenSplitRegex, mergeCacheSize, }: BytePairEncodingConfig);
39
39
  setMergeCacheSize(newSize: number): void;
40
+ clearMergeCache(): void;
40
41
  encodeNativeGenerator(text: string, allowedSpecial?: Set<string>): Generator<number[], number, undefined>;
41
42
  encodeNative(text: string, allowedSpecial?: Set<string>): number[];
42
43
  countNative(text: string, allowedSpecial?: Set<string>): number;
@@ -75,6 +75,9 @@ class BytePairEncodingCore {
75
75
  this.mergeCache = undefined;
76
76
  }
77
77
  }
78
+ clearMergeCache() {
79
+ this.mergeCache?.clear();
80
+ }
78
81
  *encodeNativeGenerator(text, allowedSpecial) {
79
82
  let startIndex = 0;
80
83
  let lastTokenLength = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"BytePairEncodingCore.js","sourceRoot":"","sources":["../src/BytePairEncodingCore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BytePairEncodingCore.js","sourceRoot":"","sources":["../src/BytePairEncodingCore.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { ALL_SPECIAL_TOKENS } from './constants.js';
2
2
  import { type EncodingName, type ModelName } from './mapping.js';
3
3
  import { type GetMergeableRanksFn } from './modelParams.js';
4
+ import { type CostEstimate } from './models.js';
4
5
  export interface EncodeOptions {
5
6
  /**
6
7
  * A list of special tokens that are allowed in the input.
@@ -49,7 +50,7 @@ export declare class GptEncoding {
49
50
  * Based on OpenAI's guidelines: https://github.com/openai/openai-python/blob/main/chatml.md
50
51
  * Also mentioned in section 6 of this document: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb
51
52
  */
52
- encodeChatGenerator(chat: Iterable<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>;
53
+ encodeChatGenerator(chat: Iterable<ChatMessage>, model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1" | "o1-2024-12-17" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "o3-mini" | "chatgpt-4o-latest" | "gpt-4o-2024-11-20" | "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-realtime-preview-2024-12-17" | "gpt-4o-mini-realtime-preview" | "gpt-4o-mini-realtime-preview-2024-12-17" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-audio-preview-2024-12-17" | "gpt-4o-mini-audio-preview" | "gpt-4o-mini-audio-preview-2024-12-17" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "davinci-002-finetune" | "babbage-002-finetune" | "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>;
53
54
  /**
54
55
  * Encodes a chat into a single array of tokens.
55
56
  * Warning: gpt-3.5-turbo and gpt-4 chat format may change over time.
@@ -57,7 +58,7 @@ export declare class GptEncoding {
57
58
  * Based on OpenAI's guidelines: https://github.com/openai/openai-python/blob/main/chatml.md
58
59
  * Also mentioned in section 6 of this document: https://github.com/openai/openai-cookbook/blob/main/examples/How_to_count_tokens_with_tiktoken.ipynb
59
60
  */
60
- encodeChat(chat: readonly 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[];
61
+ encodeChat(chat: readonly ChatMessage[], model?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1" | "o1-2024-12-17" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "o3-mini" | "chatgpt-4o-latest" | "gpt-4o-2024-11-20" | "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-realtime-preview-2024-12-17" | "gpt-4o-mini-realtime-preview" | "gpt-4o-mini-realtime-preview-2024-12-17" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-audio-preview-2024-12-17" | "gpt-4o-mini-audio-preview" | "gpt-4o-mini-audio-preview-2024-12-17" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "davinci-002-finetune" | "babbage-002-finetune" | "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[];
61
62
  /**
62
63
  * @returns {false | number} false if token limit is exceeded, otherwise the number of tokens
63
64
  */
@@ -68,8 +69,17 @@ export declare class GptEncoding {
68
69
  */
69
70
  countTokens(input: string | Iterable<ChatMessage>, encodeOptions?: EncodeOptions): number;
70
71
  setMergeCacheSize(size: number): void;
72
+ clearMergeCache(): void;
71
73
  decode(inputTokensToDecode: Iterable<number>): string;
72
74
  decodeGenerator(inputTokensToDecode: Iterable<number>): Generator<string, void, void>;
73
75
  decodeAsyncGenerator(inputTokensToDecode: AsyncIterable<number>): AsyncGenerator<string, void>;
74
76
  decodeAsync(inputTokensToDecode: AsyncIterable<number>): Promise<string>;
77
+ /**
78
+ * Estimates the cost of processing a given token count using the model's pricing.
79
+ *
80
+ * @param tokenCount - The number of tokens to estimate cost for
81
+ * @param modelName - Optional model name to use for cost calculation (defaults to this.modelName)
82
+ * @returns Cost estimate object with applicable price components (input, output, batchInput, batchOutput)
83
+ */
84
+ estimateCost(tokenCount: number, modelName?: "gpt-4o" | "gpt-3.5-turbo" | "gpt-3.5-turbo-instruct" | "babbage-002" | "davinci-002" | "text-embedding-3-small" | "o1" | "o1-2024-12-17" | "o1-preview" | "o1-preview-2024-09-12" | "o1-mini" | "o1-mini-2024-09-12" | "o3-mini" | "chatgpt-4o-latest" | "gpt-4o-2024-11-20" | "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-realtime-preview-2024-12-17" | "gpt-4o-mini-realtime-preview" | "gpt-4o-mini-realtime-preview-2024-12-17" | "gpt-4o-audio-preview" | "gpt-4o-audio-preview-2024-10-01" | "gpt-4o-audio-preview-2024-12-17" | "gpt-4o-mini-audio-preview" | "gpt-4o-mini-audio-preview-2024-12-17" | "gpt-4o-2024-08-06-finetune" | "gpt-4o-mini-2024-07-18-finetune" | "gpt-4o-mini-training" | "gpt-4o-mini-training-2024-07-18" | "davinci-002-finetune" | "babbage-002-finetune" | "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): CostEstimate;
75
85
  }
@@ -7,6 +7,7 @@ const BytePairEncodingCore_js_1 = require("./BytePairEncodingCore.js");
7
7
  const constants_js_1 = require("./constants.js");
8
8
  const mapping_js_1 = require("./mapping.js");
9
9
  const modelParams_js_1 = require("./modelParams.js");
10
+ const models_js_1 = require("./models.js");
10
11
  const specialTokens_js_1 = require("./specialTokens.js");
11
12
  const utfUtil_js_1 = require("./utfUtil.js");
12
13
  const util_js_1 = require("./util.js");
@@ -56,6 +57,8 @@ class GptEncoding {
56
57
  this.encodeChatGenerator = this.encodeChatGenerator.bind(this);
57
58
  this.countTokens = this.countTokens.bind(this);
58
59
  this.setMergeCacheSize = this.setMergeCacheSize.bind(this);
60
+ this.clearMergeCache = this.clearMergeCache.bind(this);
61
+ this.estimateCost = this.estimateCost.bind(this);
59
62
  this.modelName = modelName;
60
63
  }
61
64
  static getEncodingApi(encodingName, getMergeableRanks) {
@@ -228,6 +231,9 @@ class GptEncoding {
228
231
  setMergeCacheSize(size) {
229
232
  this.bytePairEncodingCoreProcessor.setMergeCacheSize(size);
230
233
  }
234
+ clearMergeCache() {
235
+ this.bytePairEncodingCoreProcessor.clearMergeCache();
236
+ }
231
237
  decode(inputTokensToDecode) {
232
238
  return this.bytePairEncodingCoreProcessor.decodeNative(inputTokensToDecode);
233
239
  }
@@ -290,6 +296,43 @@ class GptEncoding {
290
296
  }
291
297
  return buffer;
292
298
  }
299
+ /**
300
+ * Estimates the cost of processing a given token count using the model's pricing.
301
+ *
302
+ * @param tokenCount - The number of tokens to estimate cost for
303
+ * @param modelName - Optional model name to use for cost calculation (defaults to this.modelName)
304
+ * @returns Cost estimate object with applicable price components (input, output, batchInput, batchOutput)
305
+ */
306
+ estimateCost(tokenCount, modelName = this.modelName) {
307
+ if (!modelName) {
308
+ throw new Error('Model name must be provided either during initialization or passed in to the method.');
309
+ }
310
+ const model = models_js_1.models[modelName];
311
+ if (!model) {
312
+ throw new Error(`Unknown model: ${modelName}`);
313
+ }
314
+ if (!model.cost) {
315
+ throw new Error(`No cost information available for model: ${modelName}`);
316
+ }
317
+ const costPerMillion = model.cost;
318
+ const result = {};
319
+ // Calculate cost per token and multiply by token count
320
+ // eslint-disable-next-line no-magic-numbers
321
+ const millionTokens = tokenCount / 1_000_000;
322
+ if (costPerMillion.input !== undefined) {
323
+ result.input = costPerMillion.input * millionTokens;
324
+ }
325
+ if (costPerMillion.output !== undefined) {
326
+ result.output = costPerMillion.output * millionTokens;
327
+ }
328
+ if (costPerMillion.batchInput !== undefined) {
329
+ result.batchInput = costPerMillion.batchInput * millionTokens;
330
+ }
331
+ if (costPerMillion.batchOutput !== undefined) {
332
+ result.batchOutput = costPerMillion.batchOutput * millionTokens;
333
+ }
334
+ return result;
335
+ }
293
336
  }
294
337
  exports.GptEncoding = GptEncoding;
295
338
  //# sourceMappingURL=GptEncoding.js.map
@@ -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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"}
@@ -5,10 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const fs_1 = __importDefault(require("fs"));
7
7
  const path_1 = __importDefault(require("path"));
8
+ // eslint-disable-next-line import/no-extraneous-dependencies
9
+ const vitest_1 = require("vitest");
8
10
  const constants_js_1 = require("./constants.js");
9
11
  const GptEncoding_js_1 = require("./GptEncoding.js");
10
12
  const mapping_js_1 = require("./mapping.js");
13
+ const models_js_1 = require("./models.js");
11
14
  const resolveEncoding_js_1 = require("./resolveEncoding.js");
15
+ const specialTokens_js_1 = require("./specialTokens.js");
12
16
  const sharedResults = {
13
17
  space: [220],
14
18
  tab: [197],
@@ -62,8 +66,8 @@ const results = {
62
66
  const offsetPrompts = [
63
67
  // Basic prompt with "hello world"
64
68
  'hello world',
65
- // Basic prompt with special token "<|endoftext|>"
66
- 'hello world<|endoftext|> green cow',
69
+ // Basic prompt with special token end of text token
70
+ `hello world${specialTokens_js_1.EndOfText} green cow`,
67
71
  // Chinese text: "我非常渴望与人工智能一起工作"
68
72
  '我非常渴望与人工智能一起工作',
69
73
  // Contains the interesting tokens b'\xe0\xae\xbf\xe0\xae' and b'\xe0\xaf\x8d\xe0\xae'
@@ -75,68 +79,68 @@ const offsetPrompts = [
75
79
  ];
76
80
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
77
81
  const testPlans = loadTestPlans();
78
- describe.each(mapping_js_1.encodingNames)('%s', (encodingName) => {
82
+ vitest_1.describe.each(mapping_js_1.encodingNames)('%s', (encodingName) => {
79
83
  const encoding = GptEncoding_js_1.GptEncoding.getEncodingApi(encodingName, resolveEncoding_js_1.resolveEncoding);
80
84
  const { decode, decodeGenerator, decodeAsyncGenerator, encode, isWithinTokenLimit, } = encoding;
81
- describe('encode and decode', () => {
82
- it.each(offsetPrompts)('offset prompt: %s', (str) => {
83
- expect(decode(encode(str, { allowedSpecial: constants_js_1.ALL_SPECIAL_TOKENS }))).toEqual(str);
85
+ (0, vitest_1.describe)('encode and decode', () => {
86
+ vitest_1.test.each(offsetPrompts)('offset prompt: %s', (str) => {
87
+ (0, vitest_1.expect)(decode(encode(str, { allowedSpecial: constants_js_1.ALL_SPECIAL_TOKENS }))).toEqual(str);
84
88
  });
85
89
  });
86
- describe('basic functionality', () => {
90
+ (0, vitest_1.describe)('basic functionality', () => {
87
91
  const result = results[encodingName];
88
- it('empty string', () => {
92
+ (0, vitest_1.test)('empty string', () => {
89
93
  const str = '';
90
- expect(encode(str)).toEqual([]);
91
- expect(decode(encode(str))).toEqual(str);
92
- expect(isWithinTokenLimit(str, 0)).toBe(0);
93
- expect(isWithinTokenLimit(str, 3)).toBe(0);
94
+ (0, vitest_1.expect)(encode(str)).toEqual([]);
95
+ (0, vitest_1.expect)(decode(encode(str))).toEqual(str);
96
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 0)).toBe(0);
97
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 3)).toBe(0);
94
98
  });
95
- it('space', () => {
99
+ (0, vitest_1.test)('space', () => {
96
100
  const str = ' ';
97
- expect(encode(str)).toEqual(result.space);
98
- expect(decode(encode(str))).toEqual(str);
99
- expect(isWithinTokenLimit(str, 3)).toBe(1);
100
- expect(isWithinTokenLimit(str, 0)).toBe(false);
101
+ (0, vitest_1.expect)(encode(str)).toEqual(result.space);
102
+ (0, vitest_1.expect)(decode(encode(str))).toEqual(str);
103
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 3)).toBe(1);
104
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 0)).toBe(false);
101
105
  });
102
- it('tab', () => {
106
+ (0, vitest_1.test)('tab', () => {
103
107
  const str = '\t';
104
- expect(encode(str)).toEqual(result.tab);
105
- expect(decode(encode(str))).toEqual(str);
108
+ (0, vitest_1.expect)(encode(str)).toEqual(result.tab);
109
+ (0, vitest_1.expect)(decode(encode(str))).toEqual(str);
106
110
  });
107
- it('simple text', () => {
111
+ (0, vitest_1.test)('simple text', () => {
108
112
  const str = 'This is some text';
109
- expect(encode(str)).toEqual(result[str]);
110
- expect(decode(encode(str))).toEqual(str);
111
- expect(isWithinTokenLimit(str, 3)).toBe(false);
112
- expect(isWithinTokenLimit(str, 5)).toBe(result[str].length);
113
+ (0, vitest_1.expect)(encode(str)).toEqual(result[str]);
114
+ (0, vitest_1.expect)(decode(encode(str))).toEqual(str);
115
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 3)).toBe(false);
116
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 5)).toBe(result[str].length);
113
117
  });
114
- it('multi-token word', () => {
118
+ (0, vitest_1.test)('multi-token word', () => {
115
119
  const str = 'indivisible';
116
- expect(encode(str)).toEqual(result.indivisible);
117
- expect(decode(encode(str))).toEqual(str);
118
- expect(isWithinTokenLimit(str, 3)).toBe(result.indivisible.length);
120
+ (0, vitest_1.expect)(encode(str)).toEqual(result.indivisible);
121
+ (0, vitest_1.expect)(decode(encode(str))).toEqual(str);
122
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 3)).toBe(result.indivisible.length);
119
123
  });
120
- it('emojis', () => {
124
+ (0, vitest_1.test)('emojis', () => {
121
125
  const str = 'hello 👋 world 🌍';
122
- expect(encode(str)).toEqual(result[str]);
123
- expect(decode(encode(str))).toEqual(str);
124
- expect(isWithinTokenLimit(str, 4)).toBe(false);
125
- expect(isWithinTokenLimit(str, 400)).toBe(result[str].length);
126
+ (0, vitest_1.expect)(encode(str)).toEqual(result[str]);
127
+ (0, vitest_1.expect)(decode(encode(str))).toEqual(str);
128
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 4)).toBe(false);
129
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 400)).toBe(result[str].length);
126
130
  });
127
- it('decode token-by-token via generator', () => {
131
+ (0, vitest_1.test)('decode token-by-token via generator', () => {
128
132
  const str = 'hello 👋 world 🌍';
129
133
  const generator = decodeGenerator(result[str]);
130
134
  result.decodedHelloWorldTokens.forEach((token) => {
131
- expect(generator.next().value).toBe(token);
135
+ (0, vitest_1.expect)(generator.next().value).toBe(token);
132
136
  });
133
137
  });
134
- it('encodes and decodes special tokens', () => {
135
- const str = 'hello <|endoftext|> world';
138
+ (0, vitest_1.test)('encodes and decodes special tokens', () => {
139
+ const str = `hello ${specialTokens_js_1.EndOfText} world`;
136
140
  const encoded = encode(str, {
137
141
  allowedSpecial: constants_js_1.ALL_SPECIAL_TOKENS,
138
142
  });
139
- expect(decode(encoded)).toEqual(str);
143
+ (0, vitest_1.expect)(decode(encoded)).toEqual(str);
140
144
  });
141
145
  async function* getHelloWorldTokensAsync() {
142
146
  const str = 'hello 👋 world 🌍';
@@ -145,33 +149,33 @@ describe.each(mapping_js_1.encodingNames)('%s', (encodingName) => {
145
149
  yield await Promise.resolve(token);
146
150
  }
147
151
  }
148
- it('decode token-by-token via async generator', async () => {
152
+ (0, vitest_1.test)('decode token-by-token via async generator', async () => {
149
153
  const generator = decodeAsyncGenerator(getHelloWorldTokensAsync());
150
154
  const decoded = [...result.decodedHelloWorldTokens];
151
155
  for await (const value of generator) {
152
- expect(value).toEqual(decoded.shift());
156
+ (0, vitest_1.expect)(value).toEqual(decoded.shift());
153
157
  }
154
158
  });
155
- it('properties of Object', () => {
159
+ (0, vitest_1.test)('properties of Object', () => {
156
160
  const str = 'toString constructor hasOwnProperty valueOf';
157
- expect(encode(str)).toEqual(result[str]);
158
- expect(decode(encode(str))).toEqual(str);
161
+ (0, vitest_1.expect)(encode(str)).toEqual(result[str]);
162
+ (0, vitest_1.expect)(decode(encode(str))).toEqual(str);
159
163
  });
160
- it('text with commas', () => {
164
+ (0, vitest_1.test)('text with commas', () => {
161
165
  const str = 'hello, I am a text, and I have commas. a,b,c';
162
- expect(decode(encode(str))).toEqual(str);
163
- expect(encode(str)).toStrictEqual(result[str]);
164
- expect(isWithinTokenLimit(str, result[str].length - 1)).toBe(false);
165
- expect(isWithinTokenLimit(str, 300)).toBe(result[str].length);
166
+ (0, vitest_1.expect)(decode(encode(str))).toEqual(str);
167
+ (0, vitest_1.expect)(encode(str)).toStrictEqual(result[str]);
168
+ (0, vitest_1.expect)(isWithinTokenLimit(str, result[str].length - 1)).toBe(false);
169
+ (0, vitest_1.expect)(isWithinTokenLimit(str, 300)).toBe(result[str].length);
166
170
  });
167
171
  });
168
- describe('test plan', () => {
172
+ (0, vitest_1.describe)('test plan', () => {
169
173
  testPlans[encodingName].forEach(({ sample, encoded }) => {
170
- it(`encodes ${sample}`, () => {
171
- expect(encode(sample)).toEqual(encoded);
174
+ (0, vitest_1.test)(`encodes ${sample}`, () => {
175
+ (0, vitest_1.expect)(encode(sample)).toEqual(encoded);
172
176
  });
173
- it(`decodes ${sample}`, () => {
174
- expect(decode(encoded)).toEqual(sample);
177
+ (0, vitest_1.test)(`decodes ${sample}`, () => {
178
+ (0, vitest_1.expect)(decode(encoded)).toEqual(sample);
175
179
  });
176
180
  });
177
181
  });
@@ -207,31 +211,84 @@ const exampleMessages = [
207
211
  content: "This late pivot means we don't have time to boil the ocean for the client deliverable.",
208
212
  },
209
213
  ];
210
- describe.each(chatModelNames)('%s', (modelName) => {
214
+ vitest_1.describe.each(chatModelNames)('%s', (modelName) => {
211
215
  const encoding = GptEncoding_js_1.GptEncoding.getEncodingApiForModel(modelName, resolveEncoding_js_1.resolveEncoding);
212
216
  const expectedEncodedLength = modelName.startsWith('gpt-3.5-turbo')
213
217
  ? 127
214
218
  : modelName.startsWith('gpt-4o')
215
219
  ? 120
216
220
  : 121;
217
- describe('chat functionality', () => {
218
- it('encodes a chat correctly', () => {
221
+ (0, vitest_1.describe)('chat functionality', () => {
222
+ (0, vitest_1.test)('encodes a chat correctly', () => {
219
223
  const encoded = encoding.encodeChat(exampleMessages);
220
- expect(encoded).toMatchSnapshot();
221
- expect(encoded).toHaveLength(expectedEncodedLength);
224
+ (0, vitest_1.expect)(encoded).toMatchSnapshot();
225
+ (0, vitest_1.expect)(encoded).toHaveLength(expectedEncodedLength);
222
226
  const decoded = encoding.decode(encoded);
223
- expect(decoded).toMatchSnapshot();
227
+ (0, vitest_1.expect)(decoded).toMatchSnapshot();
224
228
  });
225
- it('isWithinTokenLimit: false', () => {
229
+ (0, vitest_1.test)('isWithinTokenLimit: false', () => {
226
230
  const isWithinTokenLimit = encoding.isWithinTokenLimit(exampleMessages, 50);
227
- expect(isWithinTokenLimit).toBe(false);
231
+ (0, vitest_1.expect)(isWithinTokenLimit).toBe(false);
228
232
  });
229
- it('isWithinTokenLimit: true (number)', () => {
233
+ (0, vitest_1.test)('isWithinTokenLimit: true (number)', () => {
230
234
  const isWithinTokenLimit = encoding.isWithinTokenLimit(exampleMessages, 150);
231
- expect(isWithinTokenLimit).toBe(expectedEncodedLength);
235
+ (0, vitest_1.expect)(isWithinTokenLimit).toBe(expectedEncodedLength);
232
236
  });
233
237
  });
234
238
  });
239
+ (0, vitest_1.describe)('estimateCost functionality', () => {
240
+ const gpt4oEncoding = GptEncoding_js_1.GptEncoding.getEncodingApiForModel('gpt-4o', resolveEncoding_js_1.resolveEncoding);
241
+ const gpt35Encoding = GptEncoding_js_1.GptEncoding.getEncodingApiForModel('gpt-3.5-turbo', resolveEncoding_js_1.resolveEncoding);
242
+ (0, vitest_1.test)('estimates cost correctly for gpt-4o model', () => {
243
+ const tokenCount = 1_000;
244
+ const cost = gpt4oEncoding.estimateCost(tokenCount);
245
+ // gpt-4o has $2.5 per million tokens for input and $10 per million tokens for output
246
+ (0, vitest_1.expect)(cost.input).toBeCloseTo(0.002_5, 6); // 1000/1M * $2.5
247
+ (0, vitest_1.expect)(cost.output).toBeCloseTo(0.01, 6); // 1000/1M * $10
248
+ (0, vitest_1.expect)(cost.batchInput).toBeCloseTo(0.001_25, 6); // 1000/1M * $1.25
249
+ (0, vitest_1.expect)(cost.batchOutput).toBeCloseTo(0.005, 6); // 1000/1M * $5
250
+ });
251
+ (0, vitest_1.test)('estimates cost correctly for gpt-3.5-turbo model', () => {
252
+ const tokenCount = 1_000;
253
+ const cost = gpt35Encoding.estimateCost(tokenCount);
254
+ // gpt-3.5-turbo has $0.5 per million tokens for input and $1.5 per million tokens for output
255
+ (0, vitest_1.expect)(cost.input).toBeCloseTo(0.000_5, 6); // 1000/1M * $0.5
256
+ (0, vitest_1.expect)(cost.output).toBeCloseTo(0.001_5, 6); // 1000/1M * $1.5
257
+ (0, vitest_1.expect)(cost.batchInput).toBeCloseTo(0.000_25, 6); // 1000/1M * $0.25
258
+ (0, vitest_1.expect)(cost.batchOutput).toBeCloseTo(0.000_75, 6); // 1000/1M * $0.75
259
+ });
260
+ (0, vitest_1.test)('allows overriding model name', () => {
261
+ const tokenCount = 1_000;
262
+ // Use gpt-4o encoding but override with gpt-3.5-turbo model name
263
+ const cost = gpt4oEncoding.estimateCost(tokenCount, 'gpt-3.5-turbo');
264
+ (0, vitest_1.expect)(cost.input).toBeCloseTo(0.000_5, 6); // 1000/1M * $0.5
265
+ (0, vitest_1.expect)(cost.output).toBeCloseTo(0.001_5, 6); // 1000/1M * $1.5
266
+ });
267
+ (0, vitest_1.test)('throws error when model name is not provided', () => {
268
+ const encoding = GptEncoding_js_1.GptEncoding.getEncodingApi('cl100k_base', resolveEncoding_js_1.resolveEncoding);
269
+ const tokenCount = 1_000;
270
+ // No model name was provided during initialization or function call
271
+ (0, vitest_1.expect)(() => encoding.estimateCost(tokenCount)).toThrow('Model name must be provided either during initialization or passed in to the method.');
272
+ });
273
+ (0, vitest_1.test)('throws error for unknown model', () => {
274
+ const tokenCount = 1_000;
275
+ (0, vitest_1.expect)(() => gpt4oEncoding.estimateCost(tokenCount, 'non-existent-model')).toThrow('Unknown model: non-existent-model');
276
+ });
277
+ (0, vitest_1.test)('only includes properties that exist for the model', () => {
278
+ // Find a model that only has input cost but no output cost
279
+ const modelWithInputOnly = Object.entries(models_js_1.models).find(([_, model]) => model.cost?.input !== undefined && model.cost?.output === undefined);
280
+ if (modelWithInputOnly) {
281
+ const [modelName] = modelWithInputOnly;
282
+ const cost = gpt4oEncoding.estimateCost(1_000, modelName);
283
+ (0, vitest_1.expect)(cost.input).toBeDefined();
284
+ (0, vitest_1.expect)(cost.output).toBeUndefined();
285
+ }
286
+ else {
287
+ // Skip test if we can't find an appropriate model
288
+ console.log('Skipping test: no model with input-only cost found');
289
+ }
290
+ });
291
+ });
235
292
  function loadTestPlans() {
236
293
  const testPlanPath = path_1.default.join(__dirname, '../data/TestPlans.txt');
237
294
  const testPlanData = fs_1.default.readFileSync(testPlanPath, 'utf8');