gpt-tokenizer 2.8.1 → 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 (402) hide show
  1. package/cjs/GptEncoding.d.ts +11 -2
  2. package/cjs/GptEncoding.js +39 -0
  3. package/cjs/GptEncoding.js.map +1 -1
  4. package/cjs/GptEncoding.test.js +121 -64
  5. package/cjs/GptEncoding.test.js.map +1 -1
  6. package/cjs/encoding/cl100k_base.d.ts +2 -2
  7. package/cjs/encoding/cl100k_base.js +3 -2
  8. package/cjs/encoding/cl100k_base.js.map +1 -1
  9. package/cjs/encoding/o200k_base.d.ts +2 -2
  10. package/cjs/encoding/o200k_base.js +3 -2
  11. package/cjs/encoding/o200k_base.js.map +1 -1
  12. package/cjs/encoding/p50k_base.d.ts +2 -2
  13. package/cjs/encoding/p50k_base.js +3 -2
  14. package/cjs/encoding/p50k_base.js.map +1 -1
  15. package/cjs/encoding/p50k_edit.d.ts +2 -2
  16. package/cjs/encoding/p50k_edit.js +5 -2
  17. package/cjs/encoding/p50k_edit.js.map +1 -1
  18. package/cjs/encoding/r50k_base.d.ts +2 -2
  19. package/cjs/encoding/r50k_base.js +3 -2
  20. package/cjs/encoding/r50k_base.js.map +1 -1
  21. package/cjs/extraApis.test.js +19 -17
  22. package/cjs/extraApis.test.js.map +1 -1
  23. package/cjs/model/babbage-002-finetune.d.ts +2 -0
  24. package/cjs/model/babbage-002-finetune.js +25 -0
  25. package/cjs/model/babbage-002-finetune.js.map +1 -0
  26. package/cjs/model/davinci-002-finetune.d.ts +2 -0
  27. package/cjs/model/davinci-002-finetune.js +25 -0
  28. package/cjs/model/davinci-002-finetune.js.map +1 -0
  29. package/cjs/model/gpt-3.5-turbo-0125.d.ts +2 -2
  30. package/cjs/model/gpt-3.5-turbo-0125.js +4 -2
  31. package/cjs/model/gpt-3.5-turbo-0125.js.map +1 -1
  32. package/cjs/model/gpt-3.5-turbo-0301.d.ts +2 -2
  33. package/cjs/model/gpt-3.5-turbo-0301.js +4 -2
  34. package/cjs/model/gpt-3.5-turbo-0301.js.map +1 -1
  35. package/cjs/model/gpt-3.5-turbo-0613.d.ts +2 -2
  36. package/cjs/model/gpt-3.5-turbo-0613.js +4 -2
  37. package/cjs/model/gpt-3.5-turbo-0613.js.map +1 -1
  38. package/cjs/model/gpt-3.5-turbo-1106.d.ts +2 -2
  39. package/cjs/model/gpt-3.5-turbo-1106.js +4 -2
  40. package/cjs/model/gpt-3.5-turbo-1106.js.map +1 -1
  41. package/cjs/model/gpt-3.5-turbo-16k-0613.d.ts +2 -2
  42. package/cjs/model/gpt-3.5-turbo-16k-0613.js +4 -2
  43. package/cjs/model/gpt-3.5-turbo-16k-0613.js.map +1 -1
  44. package/cjs/model/gpt-3.5-turbo-16k.d.ts +2 -2
  45. package/cjs/model/gpt-3.5-turbo-16k.js +4 -2
  46. package/cjs/model/gpt-3.5-turbo-16k.js.map +1 -1
  47. package/cjs/model/gpt-3.5-turbo-finetune.d.ts +2 -2
  48. package/cjs/model/gpt-3.5-turbo-finetune.js +4 -2
  49. package/cjs/model/gpt-3.5-turbo-finetune.js.map +1 -1
  50. package/cjs/model/gpt-3.5-turbo.d.ts +2 -2
  51. package/cjs/model/gpt-3.5-turbo.js +4 -2
  52. package/cjs/model/gpt-3.5-turbo.js.map +1 -1
  53. package/cjs/model/gpt-4-0125-preview.d.ts +2 -2
  54. package/cjs/model/gpt-4-0125-preview.js +4 -2
  55. package/cjs/model/gpt-4-0125-preview.js.map +1 -1
  56. package/cjs/model/gpt-4-0314.d.ts +2 -2
  57. package/cjs/model/gpt-4-0314.js +4 -2
  58. package/cjs/model/gpt-4-0314.js.map +1 -1
  59. package/cjs/model/gpt-4-0613.d.ts +2 -2
  60. package/cjs/model/gpt-4-0613.js +4 -2
  61. package/cjs/model/gpt-4-0613.js.map +1 -1
  62. package/cjs/model/gpt-4-1106-preview.d.ts +2 -2
  63. package/cjs/model/gpt-4-1106-preview.js +4 -2
  64. package/cjs/model/gpt-4-1106-preview.js.map +1 -1
  65. package/cjs/model/gpt-4-1106-vision-preview.d.ts +2 -2
  66. package/cjs/model/gpt-4-1106-vision-preview.js +4 -2
  67. package/cjs/model/gpt-4-1106-vision-preview.js.map +1 -1
  68. package/cjs/model/gpt-4-32k-0314.d.ts +2 -2
  69. package/cjs/model/gpt-4-32k-0314.js +4 -2
  70. package/cjs/model/gpt-4-32k-0314.js.map +1 -1
  71. package/cjs/model/gpt-4-32k-0613.d.ts +2 -2
  72. package/cjs/model/gpt-4-32k-0613.js +4 -2
  73. package/cjs/model/gpt-4-32k-0613.js.map +1 -1
  74. package/cjs/model/gpt-4-32k.d.ts +2 -2
  75. package/cjs/model/gpt-4-32k.js +4 -2
  76. package/cjs/model/gpt-4-32k.js.map +1 -1
  77. package/cjs/model/gpt-4-turbo-2024-04-09.d.ts +2 -2
  78. package/cjs/model/gpt-4-turbo-2024-04-09.js +4 -2
  79. package/cjs/model/gpt-4-turbo-2024-04-09.js.map +1 -1
  80. package/cjs/model/gpt-4-turbo-preview.d.ts +2 -2
  81. package/cjs/model/gpt-4-turbo-preview.js +4 -2
  82. package/cjs/model/gpt-4-turbo-preview.js.map +1 -1
  83. package/cjs/model/gpt-4-turbo.d.ts +2 -2
  84. package/cjs/model/gpt-4-turbo.js +4 -2
  85. package/cjs/model/gpt-4-turbo.js.map +1 -1
  86. package/cjs/model/gpt-4-vision-preview.d.ts +2 -2
  87. package/cjs/model/gpt-4-vision-preview.js +4 -2
  88. package/cjs/model/gpt-4-vision-preview.js.map +1 -1
  89. package/cjs/model/gpt-4.d.ts +2 -2
  90. package/cjs/model/gpt-4.js +4 -2
  91. package/cjs/model/gpt-4.js.map +1 -1
  92. package/cjs/model/gpt-4o-2024-05-13.d.ts +2 -2
  93. package/cjs/model/gpt-4o-2024-05-13.js +4 -2
  94. package/cjs/model/gpt-4o-2024-05-13.js.map +1 -1
  95. package/cjs/model/gpt-4o-2024-08-06-finetune.d.ts +2 -2
  96. package/cjs/model/gpt-4o-2024-08-06-finetune.js +4 -2
  97. package/cjs/model/gpt-4o-2024-08-06-finetune.js.map +1 -1
  98. package/cjs/model/gpt-4o-2024-08-06.d.ts +2 -2
  99. package/cjs/model/gpt-4o-2024-08-06.js +4 -2
  100. package/cjs/model/gpt-4o-2024-08-06.js.map +1 -1
  101. package/cjs/model/gpt-4o-2024-11-20.d.ts +7 -0
  102. package/cjs/model/gpt-4o-2024-11-20.js +44 -0
  103. package/cjs/model/gpt-4o-2024-11-20.js.map +1 -0
  104. package/cjs/model/gpt-4o-audio-preview-2024-10-01.d.ts +2 -2
  105. package/cjs/model/gpt-4o-audio-preview-2024-10-01.js +4 -2
  106. package/cjs/model/gpt-4o-audio-preview-2024-10-01.js.map +1 -1
  107. package/cjs/model/gpt-4o-audio-preview-2024-12-17.d.ts +7 -0
  108. package/cjs/model/gpt-4o-audio-preview-2024-12-17.js +44 -0
  109. package/cjs/model/gpt-4o-audio-preview-2024-12-17.js.map +1 -0
  110. package/cjs/model/gpt-4o-audio-preview.d.ts +2 -2
  111. package/cjs/model/gpt-4o-audio-preview.js +4 -2
  112. package/cjs/model/gpt-4o-audio-preview.js.map +1 -1
  113. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.d.ts +2 -2
  114. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.js +4 -2
  115. package/cjs/model/gpt-4o-mini-2024-07-18-finetune.js.map +1 -1
  116. package/cjs/model/gpt-4o-mini-2024-07-18.d.ts +2 -2
  117. package/cjs/model/gpt-4o-mini-2024-07-18.js +4 -2
  118. package/cjs/model/gpt-4o-mini-2024-07-18.js.map +1 -1
  119. package/cjs/model/gpt-4o-mini-audio-preview-2024-12-17.d.ts +7 -0
  120. package/cjs/model/gpt-4o-mini-audio-preview-2024-12-17.js +44 -0
  121. package/cjs/model/gpt-4o-mini-audio-preview-2024-12-17.js.map +1 -0
  122. package/cjs/model/gpt-4o-mini-audio-preview.d.ts +7 -0
  123. package/cjs/model/gpt-4o-mini-audio-preview.js +44 -0
  124. package/cjs/model/gpt-4o-mini-audio-preview.js.map +1 -0
  125. package/cjs/model/gpt-4o-mini-realtime-preview-2024-12-17.d.ts +7 -0
  126. package/cjs/model/gpt-4o-mini-realtime-preview-2024-12-17.js +44 -0
  127. package/cjs/model/gpt-4o-mini-realtime-preview-2024-12-17.js.map +1 -0
  128. package/cjs/model/gpt-4o-mini-realtime-preview.d.ts +7 -0
  129. package/cjs/model/gpt-4o-mini-realtime-preview.js +44 -0
  130. package/cjs/model/gpt-4o-mini-realtime-preview.js.map +1 -0
  131. package/cjs/model/gpt-4o-mini-training-2024-07-18.d.ts +2 -2
  132. package/cjs/model/gpt-4o-mini-training-2024-07-18.js +4 -2
  133. package/cjs/model/gpt-4o-mini-training-2024-07-18.js.map +1 -1
  134. package/cjs/model/gpt-4o-mini-training.d.ts +2 -2
  135. package/cjs/model/gpt-4o-mini-training.js +4 -2
  136. package/cjs/model/gpt-4o-mini-training.js.map +1 -1
  137. package/cjs/model/gpt-4o-mini.d.ts +2 -2
  138. package/cjs/model/gpt-4o-mini.js +4 -2
  139. package/cjs/model/gpt-4o-mini.js.map +1 -1
  140. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.d.ts +2 -2
  141. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.js +4 -2
  142. package/cjs/model/gpt-4o-realtime-preview-2024-10-01.js.map +1 -1
  143. package/cjs/model/gpt-4o-realtime-preview-2024-12-17.d.ts +7 -0
  144. package/cjs/model/gpt-4o-realtime-preview-2024-12-17.js +44 -0
  145. package/cjs/model/gpt-4o-realtime-preview-2024-12-17.js.map +1 -0
  146. package/cjs/model/gpt-4o-realtime-preview.d.ts +2 -2
  147. package/cjs/model/gpt-4o-realtime-preview.js +4 -2
  148. package/cjs/model/gpt-4o-realtime-preview.js.map +1 -1
  149. package/cjs/model/gpt-4o.d.ts +2 -2
  150. package/cjs/model/gpt-4o.js +4 -2
  151. package/cjs/model/gpt-4o.js.map +1 -1
  152. package/cjs/model/o1-2024-12-17.d.ts +2 -0
  153. package/cjs/model/o1-2024-12-17.js +25 -0
  154. package/cjs/model/o1-2024-12-17.js.map +1 -0
  155. package/cjs/model/o1.d.ts +2 -0
  156. package/cjs/model/o1.js +25 -0
  157. package/cjs/model/o1.js.map +1 -0
  158. package/cjs/model/o3-mini.d.ts +2 -0
  159. package/cjs/model/o3-mini.js +25 -0
  160. package/cjs/model/o3-mini.js.map +1 -0
  161. package/cjs/models.d.ts +38 -10
  162. package/cjs/models.js +201 -8
  163. package/cjs/models.js.map +1 -1
  164. package/cjs/otherRuntimes.test.d.ts +4 -0
  165. package/cjs/otherRuntimes.test.js +22 -0
  166. package/cjs/otherRuntimes.test.js.map +1 -0
  167. package/cjs/resolveEncodingAsync.js +17 -7
  168. package/cjs/resolveEncodingAsync.js.map +1 -1
  169. package/dist/cl100k_base.js +1 -1
  170. package/dist/cl100k_base.js.map +1 -1
  171. package/dist/o200k_base.js +1 -1
  172. package/dist/o200k_base.js.map +1 -1
  173. package/dist/p50k_base.js +1 -1
  174. package/dist/p50k_base.js.map +1 -1
  175. package/dist/p50k_edit.js +1 -1
  176. package/dist/p50k_edit.js.map +1 -1
  177. package/dist/r50k_base.js +1 -1
  178. package/dist/r50k_base.js.map +1 -1
  179. package/esm/GptEncoding.d.ts +11 -2
  180. package/esm/GptEncoding.js +39 -0
  181. package/esm/GptEncoding.js.map +1 -1
  182. package/esm/GptEncoding.test.js +77 -20
  183. package/esm/GptEncoding.test.js.map +1 -1
  184. package/esm/encoding/cl100k_base.d.ts +2 -2
  185. package/esm/encoding/cl100k_base.js +2 -2
  186. package/esm/encoding/cl100k_base.js.map +1 -1
  187. package/esm/encoding/o200k_base.d.ts +2 -2
  188. package/esm/encoding/o200k_base.js +2 -2
  189. package/esm/encoding/o200k_base.js.map +1 -1
  190. package/esm/encoding/p50k_base.d.ts +2 -2
  191. package/esm/encoding/p50k_base.js +2 -2
  192. package/esm/encoding/p50k_base.js.map +1 -1
  193. package/esm/encoding/p50k_edit.d.ts +2 -2
  194. package/esm/encoding/p50k_edit.js +2 -2
  195. package/esm/encoding/p50k_edit.js.map +1 -1
  196. package/esm/encoding/r50k_base.d.ts +2 -2
  197. package/esm/encoding/r50k_base.js +2 -2
  198. package/esm/encoding/r50k_base.js.map +1 -1
  199. package/esm/extraApis.test.js +2 -0
  200. package/esm/extraApis.test.js.map +1 -1
  201. package/esm/model/babbage-002-finetune.d.ts +2 -0
  202. package/esm/model/babbage-002-finetune.js +4 -0
  203. package/esm/model/babbage-002-finetune.js.map +1 -0
  204. package/esm/model/davinci-002-finetune.d.ts +2 -0
  205. package/esm/model/davinci-002-finetune.js +4 -0
  206. package/esm/model/davinci-002-finetune.js.map +1 -0
  207. package/esm/model/gpt-3.5-turbo-0125.d.ts +2 -2
  208. package/esm/model/gpt-3.5-turbo-0125.js +2 -2
  209. package/esm/model/gpt-3.5-turbo-0125.js.map +1 -1
  210. package/esm/model/gpt-3.5-turbo-0301.d.ts +2 -2
  211. package/esm/model/gpt-3.5-turbo-0301.js +2 -2
  212. package/esm/model/gpt-3.5-turbo-0301.js.map +1 -1
  213. package/esm/model/gpt-3.5-turbo-0613.d.ts +2 -2
  214. package/esm/model/gpt-3.5-turbo-0613.js +2 -2
  215. package/esm/model/gpt-3.5-turbo-0613.js.map +1 -1
  216. package/esm/model/gpt-3.5-turbo-1106.d.ts +2 -2
  217. package/esm/model/gpt-3.5-turbo-1106.js +2 -2
  218. package/esm/model/gpt-3.5-turbo-1106.js.map +1 -1
  219. package/esm/model/gpt-3.5-turbo-16k-0613.d.ts +2 -2
  220. package/esm/model/gpt-3.5-turbo-16k-0613.js +2 -2
  221. package/esm/model/gpt-3.5-turbo-16k-0613.js.map +1 -1
  222. package/esm/model/gpt-3.5-turbo-16k.d.ts +2 -2
  223. package/esm/model/gpt-3.5-turbo-16k.js +2 -2
  224. package/esm/model/gpt-3.5-turbo-16k.js.map +1 -1
  225. package/esm/model/gpt-3.5-turbo-finetune.d.ts +2 -2
  226. package/esm/model/gpt-3.5-turbo-finetune.js +2 -2
  227. package/esm/model/gpt-3.5-turbo-finetune.js.map +1 -1
  228. package/esm/model/gpt-3.5-turbo.d.ts +2 -2
  229. package/esm/model/gpt-3.5-turbo.js +2 -2
  230. package/esm/model/gpt-3.5-turbo.js.map +1 -1
  231. package/esm/model/gpt-4-0125-preview.d.ts +2 -2
  232. package/esm/model/gpt-4-0125-preview.js +2 -2
  233. package/esm/model/gpt-4-0125-preview.js.map +1 -1
  234. package/esm/model/gpt-4-0314.d.ts +2 -2
  235. package/esm/model/gpt-4-0314.js +2 -2
  236. package/esm/model/gpt-4-0314.js.map +1 -1
  237. package/esm/model/gpt-4-0613.d.ts +2 -2
  238. package/esm/model/gpt-4-0613.js +2 -2
  239. package/esm/model/gpt-4-0613.js.map +1 -1
  240. package/esm/model/gpt-4-1106-preview.d.ts +2 -2
  241. package/esm/model/gpt-4-1106-preview.js +2 -2
  242. package/esm/model/gpt-4-1106-preview.js.map +1 -1
  243. package/esm/model/gpt-4-1106-vision-preview.d.ts +2 -2
  244. package/esm/model/gpt-4-1106-vision-preview.js +2 -2
  245. package/esm/model/gpt-4-1106-vision-preview.js.map +1 -1
  246. package/esm/model/gpt-4-32k-0314.d.ts +2 -2
  247. package/esm/model/gpt-4-32k-0314.js +2 -2
  248. package/esm/model/gpt-4-32k-0314.js.map +1 -1
  249. package/esm/model/gpt-4-32k-0613.d.ts +2 -2
  250. package/esm/model/gpt-4-32k-0613.js +2 -2
  251. package/esm/model/gpt-4-32k-0613.js.map +1 -1
  252. package/esm/model/gpt-4-32k.d.ts +2 -2
  253. package/esm/model/gpt-4-32k.js +2 -2
  254. package/esm/model/gpt-4-32k.js.map +1 -1
  255. package/esm/model/gpt-4-turbo-2024-04-09.d.ts +2 -2
  256. package/esm/model/gpt-4-turbo-2024-04-09.js +2 -2
  257. package/esm/model/gpt-4-turbo-2024-04-09.js.map +1 -1
  258. package/esm/model/gpt-4-turbo-preview.d.ts +2 -2
  259. package/esm/model/gpt-4-turbo-preview.js +2 -2
  260. package/esm/model/gpt-4-turbo-preview.js.map +1 -1
  261. package/esm/model/gpt-4-turbo.d.ts +2 -2
  262. package/esm/model/gpt-4-turbo.js +2 -2
  263. package/esm/model/gpt-4-turbo.js.map +1 -1
  264. package/esm/model/gpt-4-vision-preview.d.ts +2 -2
  265. package/esm/model/gpt-4-vision-preview.js +2 -2
  266. package/esm/model/gpt-4-vision-preview.js.map +1 -1
  267. package/esm/model/gpt-4.d.ts +2 -2
  268. package/esm/model/gpt-4.js +2 -2
  269. package/esm/model/gpt-4.js.map +1 -1
  270. package/esm/model/gpt-4o-2024-05-13.d.ts +2 -2
  271. package/esm/model/gpt-4o-2024-05-13.js +2 -2
  272. package/esm/model/gpt-4o-2024-05-13.js.map +1 -1
  273. package/esm/model/gpt-4o-2024-08-06-finetune.d.ts +2 -2
  274. package/esm/model/gpt-4o-2024-08-06-finetune.js +2 -2
  275. package/esm/model/gpt-4o-2024-08-06-finetune.js.map +1 -1
  276. package/esm/model/gpt-4o-2024-08-06.d.ts +2 -2
  277. package/esm/model/gpt-4o-2024-08-06.js +2 -2
  278. package/esm/model/gpt-4o-2024-08-06.js.map +1 -1
  279. package/esm/model/gpt-4o-2024-11-20.d.ts +7 -0
  280. package/esm/model/gpt-4o-2024-11-20.js +12 -0
  281. package/esm/model/gpt-4o-2024-11-20.js.map +1 -0
  282. package/esm/model/gpt-4o-audio-preview-2024-10-01.d.ts +2 -2
  283. package/esm/model/gpt-4o-audio-preview-2024-10-01.js +2 -2
  284. package/esm/model/gpt-4o-audio-preview-2024-10-01.js.map +1 -1
  285. package/esm/model/gpt-4o-audio-preview-2024-12-17.d.ts +7 -0
  286. package/esm/model/gpt-4o-audio-preview-2024-12-17.js +12 -0
  287. package/esm/model/gpt-4o-audio-preview-2024-12-17.js.map +1 -0
  288. package/esm/model/gpt-4o-audio-preview.d.ts +2 -2
  289. package/esm/model/gpt-4o-audio-preview.js +2 -2
  290. package/esm/model/gpt-4o-audio-preview.js.map +1 -1
  291. package/esm/model/gpt-4o-mini-2024-07-18-finetune.d.ts +2 -2
  292. package/esm/model/gpt-4o-mini-2024-07-18-finetune.js +2 -2
  293. package/esm/model/gpt-4o-mini-2024-07-18-finetune.js.map +1 -1
  294. package/esm/model/gpt-4o-mini-2024-07-18.d.ts +2 -2
  295. package/esm/model/gpt-4o-mini-2024-07-18.js +2 -2
  296. package/esm/model/gpt-4o-mini-2024-07-18.js.map +1 -1
  297. package/esm/model/gpt-4o-mini-audio-preview-2024-12-17.d.ts +7 -0
  298. package/esm/model/gpt-4o-mini-audio-preview-2024-12-17.js +12 -0
  299. package/esm/model/gpt-4o-mini-audio-preview-2024-12-17.js.map +1 -0
  300. package/esm/model/gpt-4o-mini-audio-preview.d.ts +7 -0
  301. package/esm/model/gpt-4o-mini-audio-preview.js +12 -0
  302. package/esm/model/gpt-4o-mini-audio-preview.js.map +1 -0
  303. package/esm/model/gpt-4o-mini-realtime-preview-2024-12-17.d.ts +7 -0
  304. package/esm/model/gpt-4o-mini-realtime-preview-2024-12-17.js +12 -0
  305. package/esm/model/gpt-4o-mini-realtime-preview-2024-12-17.js.map +1 -0
  306. package/esm/model/gpt-4o-mini-realtime-preview.d.ts +7 -0
  307. package/esm/model/gpt-4o-mini-realtime-preview.js +12 -0
  308. package/esm/model/gpt-4o-mini-realtime-preview.js.map +1 -0
  309. package/esm/model/gpt-4o-mini-training-2024-07-18.d.ts +2 -2
  310. package/esm/model/gpt-4o-mini-training-2024-07-18.js +2 -2
  311. package/esm/model/gpt-4o-mini-training-2024-07-18.js.map +1 -1
  312. package/esm/model/gpt-4o-mini-training.d.ts +2 -2
  313. package/esm/model/gpt-4o-mini-training.js +2 -2
  314. package/esm/model/gpt-4o-mini-training.js.map +1 -1
  315. package/esm/model/gpt-4o-mini.d.ts +2 -2
  316. package/esm/model/gpt-4o-mini.js +2 -2
  317. package/esm/model/gpt-4o-mini.js.map +1 -1
  318. package/esm/model/gpt-4o-realtime-preview-2024-10-01.d.ts +2 -2
  319. package/esm/model/gpt-4o-realtime-preview-2024-10-01.js +2 -2
  320. package/esm/model/gpt-4o-realtime-preview-2024-10-01.js.map +1 -1
  321. package/esm/model/gpt-4o-realtime-preview-2024-12-17.d.ts +7 -0
  322. package/esm/model/gpt-4o-realtime-preview-2024-12-17.js +12 -0
  323. package/esm/model/gpt-4o-realtime-preview-2024-12-17.js.map +1 -0
  324. package/esm/model/gpt-4o-realtime-preview.d.ts +2 -2
  325. package/esm/model/gpt-4o-realtime-preview.js +2 -2
  326. package/esm/model/gpt-4o-realtime-preview.js.map +1 -1
  327. package/esm/model/gpt-4o.d.ts +2 -2
  328. package/esm/model/gpt-4o.js +2 -2
  329. package/esm/model/gpt-4o.js.map +1 -1
  330. package/esm/model/o1-2024-12-17.d.ts +2 -0
  331. package/esm/model/o1-2024-12-17.js +4 -0
  332. package/esm/model/o1-2024-12-17.js.map +1 -0
  333. package/esm/model/o1.d.ts +2 -0
  334. package/esm/model/o1.js +4 -0
  335. package/esm/model/o1.js.map +1 -0
  336. package/esm/model/o3-mini.d.ts +2 -0
  337. package/esm/model/o3-mini.js +4 -0
  338. package/esm/model/o3-mini.js.map +1 -0
  339. package/esm/models.d.ts +38 -10
  340. package/esm/models.js +201 -8
  341. package/esm/models.js.map +1 -1
  342. package/esm/otherRuntimes.test.d.ts +4 -0
  343. package/esm/otherRuntimes.test.js +20 -0
  344. package/esm/otherRuntimes.test.js.map +1 -0
  345. package/package.json +9 -5
  346. package/src/GptEncoding.test.ts +102 -20
  347. package/src/GptEncoding.ts +51 -0
  348. package/src/__snapshots__/GptEncoding.test.ts.snap +958 -69
  349. package/src/encoding/cl100k_base.ts +2 -0
  350. package/src/encoding/o200k_base.ts +2 -0
  351. package/src/encoding/p50k_base.ts +2 -0
  352. package/src/encoding/p50k_edit.ts +6 -0
  353. package/src/encoding/r50k_base.ts +2 -0
  354. package/src/extraApis.test.ts +2 -0
  355. package/src/model/babbage-002-finetune.ts +3 -0
  356. package/src/model/davinci-002-finetune.ts +3 -0
  357. package/src/model/gpt-3.5-turbo-0125.ts +4 -0
  358. package/src/model/gpt-3.5-turbo-0301.ts +4 -0
  359. package/src/model/gpt-3.5-turbo-0613.ts +4 -0
  360. package/src/model/gpt-3.5-turbo-1106.ts +4 -0
  361. package/src/model/gpt-3.5-turbo-16k-0613.ts +4 -0
  362. package/src/model/gpt-3.5-turbo-16k.ts +4 -0
  363. package/src/model/gpt-3.5-turbo-finetune.ts +4 -0
  364. package/src/model/gpt-3.5-turbo.ts +4 -0
  365. package/src/model/gpt-4-0125-preview.ts +4 -0
  366. package/src/model/gpt-4-0314.ts +4 -0
  367. package/src/model/gpt-4-0613.ts +4 -0
  368. package/src/model/gpt-4-1106-preview.ts +4 -0
  369. package/src/model/gpt-4-1106-vision-preview.ts +4 -0
  370. package/src/model/gpt-4-32k-0314.ts +4 -0
  371. package/src/model/gpt-4-32k-0613.ts +4 -0
  372. package/src/model/gpt-4-32k.ts +4 -0
  373. package/src/model/gpt-4-turbo-2024-04-09.ts +4 -0
  374. package/src/model/gpt-4-turbo-preview.ts +4 -0
  375. package/src/model/gpt-4-turbo.ts +4 -0
  376. package/src/model/gpt-4-vision-preview.ts +4 -0
  377. package/src/model/gpt-4.ts +4 -0
  378. package/src/model/gpt-4o-2024-05-13.ts +4 -0
  379. package/src/model/gpt-4o-2024-08-06-finetune.ts +4 -0
  380. package/src/model/gpt-4o-2024-08-06.ts +4 -0
  381. package/src/model/gpt-4o-2024-11-20.ts +40 -0
  382. package/src/model/gpt-4o-audio-preview-2024-10-01.ts +4 -0
  383. package/src/model/gpt-4o-audio-preview-2024-12-17.ts +40 -0
  384. package/src/model/gpt-4o-audio-preview.ts +4 -0
  385. package/src/model/gpt-4o-mini-2024-07-18-finetune.ts +4 -0
  386. package/src/model/gpt-4o-mini-2024-07-18.ts +4 -0
  387. package/src/model/gpt-4o-mini-audio-preview-2024-12-17.ts +40 -0
  388. package/src/model/gpt-4o-mini-audio-preview.ts +40 -0
  389. package/src/model/gpt-4o-mini-realtime-preview-2024-12-17.ts +40 -0
  390. package/src/model/gpt-4o-mini-realtime-preview.ts +40 -0
  391. package/src/model/gpt-4o-mini-training-2024-07-18.ts +4 -0
  392. package/src/model/gpt-4o-mini-training.ts +4 -0
  393. package/src/model/gpt-4o-mini.ts +4 -0
  394. package/src/model/gpt-4o-realtime-preview-2024-10-01.ts +4 -0
  395. package/src/model/gpt-4o-realtime-preview-2024-12-17.ts +40 -0
  396. package/src/model/gpt-4o-realtime-preview.ts +4 -0
  397. package/src/model/gpt-4o.ts +4 -0
  398. package/src/model/o1-2024-12-17.ts +3 -0
  399. package/src/model/o1.ts +3 -0
  400. package/src/model/o3-mini.ts +3 -0
  401. package/src/models.ts +229 -19
  402. package/src/otherRuntimes.test.ts +23 -0
@@ -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
  */
@@ -73,4 +74,12 @@ export declare class GptEncoding {
73
74
  decodeGenerator(inputTokensToDecode: Iterable<number>): Generator<string, void, void>;
74
75
  decodeAsyncGenerator(inputTokensToDecode: AsyncIterable<number>): AsyncGenerator<string, void>;
75
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;
76
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");
@@ -57,6 +58,7 @@ class GptEncoding {
57
58
  this.countTokens = this.countTokens.bind(this);
58
59
  this.setMergeCacheSize = this.setMergeCacheSize.bind(this);
59
60
  this.clearMergeCache = this.clearMergeCache.bind(this);
61
+ this.estimateCost = this.estimateCost.bind(this);
60
62
  this.modelName = modelName;
61
63
  }
62
64
  static getEncodingApi(encodingName, getMergeableRanks) {
@@ -294,6 +296,43 @@ class GptEncoding {
294
296
  }
295
297
  return buffer;
296
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
+ }
297
336
  }
298
337
  exports.GptEncoding = GptEncoding;
299
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');
@@ -1 +1 @@
1
- {"version":3,"file":"GptEncoding.test.js","sourceRoot":"","sources":["../src/GptEncoding.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,iDAAmD;AACnD,qDAAgE;AAChE,6CAKqB;AACrB,6DAAsD;AAEtD,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,CAAC,GAAG,CAAC;IACZ,GAAG,EAAE,CAAC,GAAG,CAAC;IACV,mBAAmB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;IAC7C,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;IACjE,uBAAuB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;IAClE,6CAA6C,EAAE;QAC7C,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK;KACzD;IACD,8CAA8C,EAAE;QAC9C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;QAC1E,EAAE,EAAE,EAAE,EAAE,EAAE;KACX;CACF,CAAA;AAED,MAAM,OAAO,GAAG;IACd,UAAU,EAAE;QACV,KAAK,EAAE,CAAC,GAAG,CAAC;QACZ,GAAG,EAAE,CAAC,GAAG,CAAC;QACV,mBAAmB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;QAC/C,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC;QAChC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;QAC/D,uBAAuB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;QAClE,6CAA6C,EAAE;YAC7C,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;SAClD;QACD,8CAA8C,EAAE;YAC9C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG;YACrE,MAAM,EAAE,MAAM;SACf;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,CAAC,GAAG,CAAC;QACZ,GAAG,EAAE,CAAC,GAAG,CAAC;QACV,mBAAmB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;QAC/C,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC;QAC/B,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;QACnE,uBAAuB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;QAClE,6CAA6C,EAAE;YAC7C,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;SACtC;QACD,8CAA8C,EAAE;YAC9C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG;YACtE,KAAK,EAAE,MAAM;SACd;KACF;IACD,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,aAAa;CACe,CAAA;AAEzC,MAAM,aAAa,GAAG;IACpB,kCAAkC;IAClC,aAAa;IAEb,kDAAkD;IAClD,oCAAoC;IAEpC,iCAAiC;IACjC,gBAAgB;IAEhB,sFAAsF;IACtF,yDAAyD;IACzD,eAAe;IAEf,qDAAqD;IACrD,yFAAyF;IACzF,KAAK;CACN,CAAA;AAED,mEAAmE;AACnE,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;AAEjC,QAAQ,CAAC,IAAI,CAAC,0BAAa,CAAC,CAAC,IAAI,EAAE,CAAC,YAA0B,EAAE,EAAE;IAChE,MAAM,QAAQ,GAAG,4BAAW,CAAC,cAAc,CAAC,YAAY,EAAE,oCAAe,CAAC,CAAA;IAE1E,MAAM,EACJ,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,MAAM,EACN,kBAAkB,GACnB,GAAG,QAAQ,CAAA;IAEZ,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;YAClD,MAAM,CACJ,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,iCAAkB,EAAE,CAAC,CAAC,CAC5D,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;QACpC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YACtB,MAAM,GAAG,GAAG,EAAE,CAAA;YACd,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC/B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACf,MAAM,GAAG,GAAG,GAAG,CAAA;YACf,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACb,MAAM,GAAG,GAAG,IAAI,CAAA;YAChB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACvC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YACrB,MAAM,GAAG,GAAG,mBAAmB,CAAA;YAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,GAAG,GAAG,aAAa,CAAA;YACzB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAC/C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YAChB,MAAM,GAAG,GAAG,mBAAmB,CAAA;YAC/B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,GAAG,GAAG,mBAAmB,CAAA;YAC/B,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE;gBACvD,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,GAAG,GAAG,2BAA2B,CAAA;YACvC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;gBAC1B,cAAc,EAAE,iCAAkB;aACnC,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;QAEF,KAAK,SAAS,CAAC,CAAC,wBAAwB;YACtC,MAAM,GAAG,GAAG,mBAAmB,CAAA;YAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,4CAA4C;gBAC5C,MAAM,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAED,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,SAAS,GAAG,oBAAoB,CAAC,wBAAwB,EAAE,CAAC,CAAA;YAClE,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAA;YACnD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;YACxC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,GAAG,GAAG,6CAA6C,CAAA;YAEzD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,GAAG,GAAG,8CAA8C,CAAA;YAC1D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACnE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;YACtD,EAAE,CAAC,WAAW,MAAM,EAAE,EAAE,GAAG,EAAE;gBAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACzC,CAAC,CAAC,CAAA;YACF,EAAE,CAAC,WAAW,MAAM,EAAE,EAAE,GAAG,EAAE;gBAC3B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACzC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,4BAAe,CAA6B,CAAA;AAE/E,MAAM,eAAe,GAAkB;IACrC;QACE,IAAI,EAAE,QAAQ;QACd,OAAO,EACL,qGAAqG;KACxG;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,gDAAgD;KAC1D;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,qDAAqD;KAC/D;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,cAAc;QACpB,OAAO,EACL,sGAAsG;KACzG;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,+DAA+D;KACzE;IACD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EACL,wFAAwF;KAC3F;CACO,CAAA;AAEV,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE;IAChD,MAAM,QAAQ,GAAG,4BAAW,CAAC,sBAAsB,CACjD,SAAS,EACT,oCAAe,CAChB,CAAA;IACD,MAAM,qBAAqB,GAAG,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC;QACjE,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;YAChC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,GAAG,CAAA;IAEP,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAA;YACjC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;YAEnD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CACpD,eAAe,EACf,EAAE,CACH,CAAA;YACD,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QACF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CACpD,eAAe,EACf,GAAG,CACJ,CAAA;YACD,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,SAAS,aAAa;IACpB,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAA;IAClE,MAAM,YAAY,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAC1D,MAAM,KAAK,GAGP;QACF,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;KACf,CAAA;IACD,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9C,MAAM,CAAC,gBAAgB,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxE,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW;YAAE,OAAM;QAC5D,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAiB,CAAA;QACpE,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACxD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;SACxD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"GptEncoding.test.js","sourceRoot":"","sources":["../src/GptEncoding.test.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,6 @@ import { GptEncoding } from '../GptEncoding.js';
2
2
  export * from '../constants.js';
3
3
  export * from '../specialTokens.js';
4
4
  declare const api: GptEncoding;
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, countTokens: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => 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, setMergeCacheSize: (size: number) => void, clearMergeCache: () => void;
6
- export { clearMergeCache, countTokens, decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, isWithinTokenLimit, setMergeCacheSize, vocabularySize, };
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, countTokens: (input: string | Iterable<import("../GptEncoding.js").ChatMessage>, encodeOptions?: import("../GptEncoding.js").EncodeOptions) => 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" | "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[], 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" | "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>, vocabularySize: number, setMergeCacheSize: (size: number) => void, clearMergeCache: () => void, 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) => import("../models.js").CostEstimate;
6
+ export { clearMergeCache, countTokens, decode, decodeAsyncGenerator, decodeGenerator, encode, encodeChat, encodeChatGenerator, encodeGenerator, estimateCost, isWithinTokenLimit, setMergeCacheSize, vocabularySize, };
7
7
  export default api;
@@ -17,14 +17,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.vocabularySize = exports.setMergeCacheSize = exports.isWithinTokenLimit = exports.encodeGenerator = exports.encodeChatGenerator = exports.encodeChat = exports.encode = exports.decodeGenerator = exports.decodeAsyncGenerator = exports.decode = exports.countTokens = exports.clearMergeCache = void 0;
20
+ exports.vocabularySize = exports.setMergeCacheSize = exports.isWithinTokenLimit = exports.estimateCost = exports.encodeGenerator = exports.encodeChatGenerator = exports.encodeChat = exports.encode = exports.decodeGenerator = exports.decodeAsyncGenerator = exports.decode = exports.countTokens = exports.clearMergeCache = void 0;
21
21
  /* eslint-disable import/extensions */
22
22
  const cl100k_base_js_1 = __importDefault(require("../bpeRanks/cl100k_base.js"));
23
23
  const GptEncoding_js_1 = require("../GptEncoding.js");
24
24
  __exportStar(require("../constants.js"), exports);
25
25
  __exportStar(require("../specialTokens.js"), exports);
26
26
  const api = GptEncoding_js_1.GptEncoding.getEncodingApi('cl100k_base', () => cl100k_base_js_1.default);
27
- const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, countTokens, encodeChat, encodeChatGenerator, vocabularySize, setMergeCacheSize, clearMergeCache, } = api;
27
+ const { decode, decodeAsyncGenerator, decodeGenerator, encode, encodeGenerator, isWithinTokenLimit, countTokens, encodeChat, encodeChatGenerator, vocabularySize, setMergeCacheSize, clearMergeCache, estimateCost, } = api;
28
28
  exports.decode = decode;
29
29
  exports.decodeAsyncGenerator = decodeAsyncGenerator;
30
30
  exports.decodeGenerator = decodeGenerator;
@@ -37,6 +37,7 @@ exports.encodeChatGenerator = encodeChatGenerator;
37
37
  exports.vocabularySize = vocabularySize;
38
38
  exports.setMergeCacheSize = setMergeCacheSize;
39
39
  exports.clearMergeCache = clearMergeCache;
40
+ exports.estimateCost = estimateCost;
40
41
  // eslint-disable-next-line import/no-default-export
41
42
  exports.default = api;
42
43
  //# sourceMappingURL=cl100k_base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cl100k_base.js","sourceRoot":"","sources":["../../src/encoding/cl100k_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,gFAAiD;AACjD,sDAA+C;AAE/C,kDAA+B;AAC/B,sDAAmC;AAEnC,MAAM,GAAG,GAAG,4BAAW,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,wBAAQ,CAAC,CAAA;AACrE,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,eAAe,GAChB,GAAG,GAAG,CAAA;AAIL,wBAAM;AACN,oDAAoB;AACpB,0CAAe;AACf,wBAAM;AAGN,0CAAe;AACf,gDAAkB;AARlB,kCAAW;AAKX,gCAAU;AACV,kDAAmB;AAInB,wCAAc;AADd,8CAAiB;AAVjB,0CAAe;AAajB,oDAAoD;AACpD,kBAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"cl100k_base.js","sourceRoot":"","sources":["../../src/encoding/cl100k_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,gFAAiD;AACjD,sDAA+C;AAE/C,kDAA+B;AAC/B,sDAAmC;AAEnC,MAAM,GAAG,GAAG,4BAAW,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,wBAAQ,CAAC,CAAA;AACrE,MAAM,EACJ,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,GAAG,GAAG,CAAA;AAIL,wBAAM;AACN,oDAAoB;AACpB,0CAAe;AACf,wBAAM;AAGN,0CAAe;AAEf,gDAAkB;AATlB,kCAAW;AAKX,gCAAU;AACV,kDAAmB;AAKnB,wCAAc;AADd,8CAAiB;AAXjB,0CAAe;AASf,oCAAY;AAKd,oDAAoD;AACpD,kBAAe,GAAG,CAAA"}