@ax-llm/ax 9.0.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 (351) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +547 -0
  3. package/build/module/docs/assets/icons.d.ts +1 -0
  4. package/build/module/docs/assets/icons.js +19 -0
  5. package/build/module/docs/assets/icons.js.map +1 -0
  6. package/build/module/docs/assets/main.d.ts +1 -0
  7. package/build/module/docs/assets/main.js +629 -0
  8. package/build/module/docs/assets/main.js.map +1 -0
  9. package/build/module/docs/assets/navigation.d.ts +1 -0
  10. package/build/module/docs/assets/navigation.js +3 -0
  11. package/build/module/docs/assets/navigation.js.map +1 -0
  12. package/build/module/docs/assets/search.d.ts +1 -0
  13. package/build/module/docs/assets/search.js +3 -0
  14. package/build/module/docs/assets/search.js.map +1 -0
  15. package/build/module/src/ai/anthropic/api.d.ts +24 -0
  16. package/build/module/src/ai/anthropic/api.js +188 -0
  17. package/build/module/src/ai/anthropic/api.js.map +1 -0
  18. package/build/module/src/ai/anthropic/index.d.ts +2 -0
  19. package/build/module/src/ai/anthropic/index.js +3 -0
  20. package/build/module/src/ai/anthropic/index.js.map +1 -0
  21. package/build/module/src/ai/anthropic/info.d.ts +2 -0
  22. package/build/module/src/ai/anthropic/info.js +34 -0
  23. package/build/module/src/ai/anthropic/info.js.map +1 -0
  24. package/build/module/src/ai/anthropic/types.d.ts +140 -0
  25. package/build/module/src/ai/anthropic/types.js +13 -0
  26. package/build/module/src/ai/anthropic/types.js.map +1 -0
  27. package/build/module/src/ai/azure-openai/api.d.ts +34 -0
  28. package/build/module/src/ai/azure-openai/api.js +42 -0
  29. package/build/module/src/ai/azure-openai/api.js.map +1 -0
  30. package/build/module/src/ai/azure-openai/index.d.ts +1 -0
  31. package/build/module/src/ai/azure-openai/index.js +2 -0
  32. package/build/module/src/ai/azure-openai/index.js.map +1 -0
  33. package/build/module/src/ai/balance.d.ts +26 -0
  34. package/build/module/src/ai/balance.js +87 -0
  35. package/build/module/src/ai/balance.js.map +1 -0
  36. package/build/module/src/ai/base.d.ts +56 -0
  37. package/build/module/src/ai/base.js +328 -0
  38. package/build/module/src/ai/base.js.map +1 -0
  39. package/build/module/src/ai/cohere/api.d.ts +35 -0
  40. package/build/module/src/ai/cohere/api.js +214 -0
  41. package/build/module/src/ai/cohere/api.js.map +1 -0
  42. package/build/module/src/ai/cohere/index.d.ts +2 -0
  43. package/build/module/src/ai/cohere/index.js +3 -0
  44. package/build/module/src/ai/cohere/index.js.map +1 -0
  45. package/build/module/src/ai/cohere/info.d.ts +2 -0
  46. package/build/module/src/ai/cohere/info.js +52 -0
  47. package/build/module/src/ai/cohere/info.js.map +1 -0
  48. package/build/module/src/ai/cohere/types.d.ts +85 -0
  49. package/build/module/src/ai/cohere/types.js +23 -0
  50. package/build/module/src/ai/cohere/types.js.map +1 -0
  51. package/build/module/src/ai/deepseek/api.d.ts +27 -0
  52. package/build/module/src/ai/deepseek/api.js +38 -0
  53. package/build/module/src/ai/deepseek/api.js.map +1 -0
  54. package/build/module/src/ai/deepseek/index.d.ts +2 -0
  55. package/build/module/src/ai/deepseek/index.js +3 -0
  56. package/build/module/src/ai/deepseek/index.js.map +1 -0
  57. package/build/module/src/ai/deepseek/info.d.ts +2 -0
  58. package/build/module/src/ai/deepseek/info.js +16 -0
  59. package/build/module/src/ai/deepseek/info.js.map +1 -0
  60. package/build/module/src/ai/deepseek/types.d.ts +8 -0
  61. package/build/module/src/ai/deepseek/types.js +10 -0
  62. package/build/module/src/ai/deepseek/types.js.map +1 -0
  63. package/build/module/src/ai/google-gemini/api.d.ts +34 -0
  64. package/build/module/src/ai/google-gemini/api.js +268 -0
  65. package/build/module/src/ai/google-gemini/api.js.map +1 -0
  66. package/build/module/src/ai/google-gemini/index.d.ts +2 -0
  67. package/build/module/src/ai/google-gemini/index.js +3 -0
  68. package/build/module/src/ai/google-gemini/index.js.map +1 -0
  69. package/build/module/src/ai/google-gemini/info.d.ts +6 -0
  70. package/build/module/src/ai/google-gemini/info.js +29 -0
  71. package/build/module/src/ai/google-gemini/info.js.map +1 -0
  72. package/build/module/src/ai/google-gemini/types.d.ts +151 -0
  73. package/build/module/src/ai/google-gemini/types.js +38 -0
  74. package/build/module/src/ai/google-gemini/types.js.map +1 -0
  75. package/build/module/src/ai/groq/api.d.ts +22 -0
  76. package/build/module/src/ai/groq/api.js +29 -0
  77. package/build/module/src/ai/groq/api.js.map +1 -0
  78. package/build/module/src/ai/groq/index.d.ts +1 -0
  79. package/build/module/src/ai/groq/index.js +2 -0
  80. package/build/module/src/ai/groq/index.js.map +1 -0
  81. package/build/module/src/ai/huggingface/api.d.ts +32 -0
  82. package/build/module/src/ai/huggingface/api.js +99 -0
  83. package/build/module/src/ai/huggingface/api.js.map +1 -0
  84. package/build/module/src/ai/huggingface/index.d.ts +2 -0
  85. package/build/module/src/ai/huggingface/index.js +3 -0
  86. package/build/module/src/ai/huggingface/index.js.map +1 -0
  87. package/build/module/src/ai/huggingface/info.d.ts +6 -0
  88. package/build/module/src/ai/huggingface/info.js +6 -0
  89. package/build/module/src/ai/huggingface/info.js.map +1 -0
  90. package/build/module/src/ai/huggingface/types.d.ts +42 -0
  91. package/build/module/src/ai/huggingface/types.js +9 -0
  92. package/build/module/src/ai/huggingface/types.js.map +1 -0
  93. package/build/module/src/ai/index.d.ts +28 -0
  94. package/build/module/src/ai/index.js +54 -0
  95. package/build/module/src/ai/index.js.map +1 -0
  96. package/build/module/src/ai/mistral/api.d.ts +27 -0
  97. package/build/module/src/ai/mistral/api.js +38 -0
  98. package/build/module/src/ai/mistral/api.js.map +1 -0
  99. package/build/module/src/ai/mistral/index.d.ts +2 -0
  100. package/build/module/src/ai/mistral/index.js +3 -0
  101. package/build/module/src/ai/mistral/index.js.map +1 -0
  102. package/build/module/src/ai/mistral/info.d.ts +2 -0
  103. package/build/module/src/ai/mistral/info.js +34 -0
  104. package/build/module/src/ai/mistral/info.js.map +1 -0
  105. package/build/module/src/ai/mistral/types.d.ts +18 -0
  106. package/build/module/src/ai/mistral/types.js +21 -0
  107. package/build/module/src/ai/mistral/types.js.map +1 -0
  108. package/build/module/src/ai/ollama/api.d.ts +24 -0
  109. package/build/module/src/ai/ollama/api.js +28 -0
  110. package/build/module/src/ai/ollama/api.js.map +1 -0
  111. package/build/module/src/ai/ollama/index.d.ts +1 -0
  112. package/build/module/src/ai/ollama/index.js +2 -0
  113. package/build/module/src/ai/ollama/index.js.map +1 -0
  114. package/build/module/src/ai/openai/api.d.ts +49 -0
  115. package/build/module/src/ai/openai/api.js +333 -0
  116. package/build/module/src/ai/openai/api.js.map +1 -0
  117. package/build/module/src/ai/openai/index.d.ts +2 -0
  118. package/build/module/src/ai/openai/index.js +3 -0
  119. package/build/module/src/ai/openai/index.js.map +1 -0
  120. package/build/module/src/ai/openai/info.d.ts +6 -0
  121. package/build/module/src/ai/openai/info.js +50 -0
  122. package/build/module/src/ai/openai/info.js.map +1 -0
  123. package/build/module/src/ai/openai/types.d.ts +192 -0
  124. package/build/module/src/ai/openai/types.js +35 -0
  125. package/build/module/src/ai/openai/types.js.map +1 -0
  126. package/build/module/src/ai/together/api.d.ts +22 -0
  127. package/build/module/src/ai/together/api.js +29 -0
  128. package/build/module/src/ai/together/api.js.map +1 -0
  129. package/build/module/src/ai/together/index.d.ts +1 -0
  130. package/build/module/src/ai/together/index.js +2 -0
  131. package/build/module/src/ai/together/index.js.map +1 -0
  132. package/build/module/src/ai/together/info.d.ts +2 -0
  133. package/build/module/src/ai/together/info.js +2 -0
  134. package/build/module/src/ai/together/info.js.map +1 -0
  135. package/build/module/src/ai/types.d.ts +70 -0
  136. package/build/module/src/ai/types.js +2 -0
  137. package/build/module/src/ai/types.js.map +1 -0
  138. package/build/module/src/ai/util.d.ts +13 -0
  139. package/build/module/src/ai/util.js +112 -0
  140. package/build/module/src/ai/util.js.map +1 -0
  141. package/build/module/src/db/base.d.ts +24 -0
  142. package/build/module/src/db/base.js +90 -0
  143. package/build/module/src/db/base.js.map +1 -0
  144. package/build/module/src/db/cloudflare.d.ts +20 -0
  145. package/build/module/src/db/cloudflare.js +98 -0
  146. package/build/module/src/db/cloudflare.js.map +1 -0
  147. package/build/module/src/db/index.d.ts +12 -0
  148. package/build/module/src/db/index.js +23 -0
  149. package/build/module/src/db/index.js.map +1 -0
  150. package/build/module/src/db/memory.d.ts +23 -0
  151. package/build/module/src/db/memory.js +125 -0
  152. package/build/module/src/db/memory.js.map +1 -0
  153. package/build/module/src/db/pinecone.d.ts +20 -0
  154. package/build/module/src/db/pinecone.js +71 -0
  155. package/build/module/src/db/pinecone.js.map +1 -0
  156. package/build/module/src/db/types.d.ts +35 -0
  157. package/build/module/src/db/types.js +3 -0
  158. package/build/module/src/db/types.js.map +1 -0
  159. package/build/module/src/db/weaviate.d.ts +20 -0
  160. package/build/module/src/db/weaviate.js +127 -0
  161. package/build/module/src/db/weaviate.js.map +1 -0
  162. package/build/module/src/docs/index.d.ts +4 -0
  163. package/build/module/src/docs/index.js +5 -0
  164. package/build/module/src/docs/index.js.map +1 -0
  165. package/build/module/src/docs/manager.d.ts +45 -0
  166. package/build/module/src/docs/manager.js +159 -0
  167. package/build/module/src/docs/manager.js.map +1 -0
  168. package/build/module/src/docs/reranker.d.ts +7 -0
  169. package/build/module/src/docs/reranker.js +26 -0
  170. package/build/module/src/docs/reranker.js.map +1 -0
  171. package/build/module/src/docs/rewriter.d.ts +4 -0
  172. package/build/module/src/docs/rewriter.js +9 -0
  173. package/build/module/src/docs/rewriter.js.map +1 -0
  174. package/build/module/src/docs/tika.d.ts +21 -0
  175. package/build/module/src/docs/tika.js +46 -0
  176. package/build/module/src/docs/tika.js.map +1 -0
  177. package/build/module/src/dsp/asserts.d.ts +32 -0
  178. package/build/module/src/dsp/asserts.js +88 -0
  179. package/build/module/src/dsp/asserts.js.map +1 -0
  180. package/build/module/src/dsp/eval.d.ts +62 -0
  181. package/build/module/src/dsp/eval.js +120 -0
  182. package/build/module/src/dsp/eval.js.map +1 -0
  183. package/build/module/src/dsp/evaluate.d.ts +12 -0
  184. package/build/module/src/dsp/evaluate.js +32 -0
  185. package/build/module/src/dsp/evaluate.js.map +1 -0
  186. package/build/module/src/dsp/extract.d.ts +25 -0
  187. package/build/module/src/dsp/extract.js +152 -0
  188. package/build/module/src/dsp/extract.js.map +1 -0
  189. package/build/module/src/dsp/generate.d.ts +52 -0
  190. package/build/module/src/dsp/generate.js +335 -0
  191. package/build/module/src/dsp/generate.js.map +1 -0
  192. package/build/module/src/dsp/generate.test.d.ts +1 -0
  193. package/build/module/src/dsp/generate.test.js +41 -0
  194. package/build/module/src/dsp/generate.test.js.map +1 -0
  195. package/build/module/src/dsp/index.d.ts +14 -0
  196. package/build/module/src/dsp/index.js +10 -0
  197. package/build/module/src/dsp/index.js.map +1 -0
  198. package/build/module/src/dsp/loader.d.ts +25 -0
  199. package/build/module/src/dsp/loader.js +87 -0
  200. package/build/module/src/dsp/loader.js.map +1 -0
  201. package/build/module/src/dsp/optimize.d.ts +29 -0
  202. package/build/module/src/dsp/optimize.js +100 -0
  203. package/build/module/src/dsp/optimize.js.map +1 -0
  204. package/build/module/src/dsp/parser.d.ts +86 -0
  205. package/build/module/src/dsp/parser.js +1437 -0
  206. package/build/module/src/dsp/parser.js.map +1 -0
  207. package/build/module/src/dsp/program.d.ts +64 -0
  208. package/build/module/src/dsp/program.js +129 -0
  209. package/build/module/src/dsp/program.js.map +1 -0
  210. package/build/module/src/dsp/prompt.d.ts +25 -0
  211. package/build/module/src/dsp/prompt.js +178 -0
  212. package/build/module/src/dsp/prompt.js.map +1 -0
  213. package/build/module/src/dsp/registry.d.ts +6 -0
  214. package/build/module/src/dsp/registry.js +15 -0
  215. package/build/module/src/dsp/registry.js.map +1 -0
  216. package/build/module/src/dsp/router.d.ts +24 -0
  217. package/build/module/src/dsp/router.js +72 -0
  218. package/build/module/src/dsp/router.js.map +1 -0
  219. package/build/module/src/dsp/sig.d.ts +37 -0
  220. package/build/module/src/dsp/sig.js +160 -0
  221. package/build/module/src/dsp/sig.js.map +1 -0
  222. package/build/module/src/dsp/sig.test.d.ts +1 -0
  223. package/build/module/src/dsp/sig.test.js +25 -0
  224. package/build/module/src/dsp/sig.test.js.map +1 -0
  225. package/build/module/src/dsp/stopwords.d.ts +1 -0
  226. package/build/module/src/dsp/stopwords.js +1163 -0
  227. package/build/module/src/dsp/stopwords.js.map +1 -0
  228. package/build/module/src/dsp/strutil.d.ts +9 -0
  229. package/build/module/src/dsp/strutil.js +52 -0
  230. package/build/module/src/dsp/strutil.js.map +1 -0
  231. package/build/module/src/dsp/util.d.ts +1 -0
  232. package/build/module/src/dsp/util.js +14 -0
  233. package/build/module/src/dsp/util.js.map +1 -0
  234. package/build/module/src/examples/agent.d.ts +1 -0
  235. package/build/module/src/examples/agent.js +24 -0
  236. package/build/module/src/examples/agent.js.map +1 -0
  237. package/build/module/src/examples/chain-of-thought.d.ts +1 -0
  238. package/build/module/src/examples/chain-of-thought.js +18 -0
  239. package/build/module/src/examples/chain-of-thought.js.map +1 -0
  240. package/build/module/src/examples/customer-support.d.ts +1 -0
  241. package/build/module/src/examples/customer-support.js +22 -0
  242. package/build/module/src/examples/customer-support.js.map +1 -0
  243. package/build/module/src/examples/fibonacci.d.ts +1 -0
  244. package/build/module/src/examples/fibonacci.js +9 -0
  245. package/build/module/src/examples/fibonacci.js.map +1 -0
  246. package/build/module/src/examples/food-search.d.ts +1 -0
  247. package/build/module/src/examples/food-search.js +137 -0
  248. package/build/module/src/examples/food-search.js.map +1 -0
  249. package/build/module/src/examples/marketing.d.ts +1 -0
  250. package/build/module/src/examples/marketing.js +26 -0
  251. package/build/module/src/examples/marketing.js.map +1 -0
  252. package/build/module/src/examples/meetings.d.ts +1 -0
  253. package/build/module/src/examples/meetings.js +149 -0
  254. package/build/module/src/examples/meetings.js.map +1 -0
  255. package/build/module/src/examples/qna-tune.d.ts +1 -0
  256. package/build/module/src/examples/qna-tune.js +29 -0
  257. package/build/module/src/examples/qna-tune.js.map +1 -0
  258. package/build/module/src/examples/qna-use-tuned.d.ts +1 -0
  259. package/build/module/src/examples/qna-use-tuned.js +25 -0
  260. package/build/module/src/examples/qna-use-tuned.js.map +1 -0
  261. package/build/module/src/examples/rag-docs.d.ts +1 -0
  262. package/build/module/src/examples/rag-docs.js +14 -0
  263. package/build/module/src/examples/rag-docs.js.map +1 -0
  264. package/build/module/src/examples/rag.d.ts +1 -0
  265. package/build/module/src/examples/rag.js +14 -0
  266. package/build/module/src/examples/rag.js.map +1 -0
  267. package/build/module/src/examples/react.d.ts +1 -0
  268. package/build/module/src/examples/react.js +36 -0
  269. package/build/module/src/examples/react.js.map +1 -0
  270. package/build/module/src/examples/routing.d.ts +1 -0
  271. package/build/module/src/examples/routing.js +48 -0
  272. package/build/module/src/examples/routing.js.map +1 -0
  273. package/build/module/src/examples/streaming1.d.ts +1 -0
  274. package/build/module/src/examples/streaming1.js +15 -0
  275. package/build/module/src/examples/streaming1.js.map +1 -0
  276. package/build/module/src/examples/streaming2.d.ts +1 -0
  277. package/build/module/src/examples/streaming2.js +24 -0
  278. package/build/module/src/examples/streaming2.js.map +1 -0
  279. package/build/module/src/examples/summarize.d.ts +1 -0
  280. package/build/module/src/examples/summarize.js +27 -0
  281. package/build/module/src/examples/summarize.js.map +1 -0
  282. package/build/module/src/examples/vectordb.d.ts +1 -0
  283. package/build/module/src/examples/vectordb.js +14 -0
  284. package/build/module/src/examples/vectordb.js.map +1 -0
  285. package/build/module/src/funcs/code.d.ts +10 -0
  286. package/build/module/src/funcs/code.js +63 -0
  287. package/build/module/src/funcs/code.js.map +1 -0
  288. package/build/module/src/funcs/embed.d.ts +8 -0
  289. package/build/module/src/funcs/embed.js +29 -0
  290. package/build/module/src/funcs/embed.js.map +1 -0
  291. package/build/module/src/funcs/index.d.ts +2 -0
  292. package/build/module/src/funcs/index.js +3 -0
  293. package/build/module/src/funcs/index.js.map +1 -0
  294. package/build/module/src/index.d.ts +9 -0
  295. package/build/module/src/index.js +15 -0
  296. package/build/module/src/index.js.map +1 -0
  297. package/build/module/src/prompts/agent.d.ts +24 -0
  298. package/build/module/src/prompts/agent.js +65 -0
  299. package/build/module/src/prompts/agent.js.map +1 -0
  300. package/build/module/src/prompts/cot.d.ts +9 -0
  301. package/build/module/src/prompts/cot.js +17 -0
  302. package/build/module/src/prompts/cot.js.map +1 -0
  303. package/build/module/src/prompts/index.d.ts +4 -0
  304. package/build/module/src/prompts/index.js +5 -0
  305. package/build/module/src/prompts/index.js.map +1 -0
  306. package/build/module/src/prompts/prompts.test.d.ts +1 -0
  307. package/build/module/src/prompts/prompts.test.js +48 -0
  308. package/build/module/src/prompts/prompts.test.js.map +1 -0
  309. package/build/module/src/prompts/rag.d.ts +23 -0
  310. package/build/module/src/prompts/rag.js +30 -0
  311. package/build/module/src/prompts/rag.js.map +1 -0
  312. package/build/module/src/prompts/react.d.ts +8 -0
  313. package/build/module/src/prompts/react.js +22 -0
  314. package/build/module/src/prompts/react.js.map +1 -0
  315. package/build/module/src/text/functions.d.ts +25 -0
  316. package/build/module/src/text/functions.js +55 -0
  317. package/build/module/src/text/functions.js.map +1 -0
  318. package/build/module/src/text/index.d.ts +3 -0
  319. package/build/module/src/text/index.js +4 -0
  320. package/build/module/src/text/index.js.map +1 -0
  321. package/build/module/src/text/jsonschema.d.ts +2 -0
  322. package/build/module/src/text/jsonschema.js +96 -0
  323. package/build/module/src/text/jsonschema.js.map +1 -0
  324. package/build/module/src/text/memory.d.ts +21 -0
  325. package/build/module/src/text/memory.js +73 -0
  326. package/build/module/src/text/memory.js.map +1 -0
  327. package/build/module/src/text/types.d.ts +57 -0
  328. package/build/module/src/text/types.js +2 -0
  329. package/build/module/src/text/types.js.map +1 -0
  330. package/build/module/src/trace/index.d.ts +171 -0
  331. package/build/module/src/trace/index.js +67 -0
  332. package/build/module/src/trace/index.js.map +1 -0
  333. package/build/module/src/types/index.d.ts +81 -0
  334. package/build/module/src/types/index.js +2 -0
  335. package/build/module/src/types/index.js.map +1 -0
  336. package/build/module/src/util/apicall.d.ts +21 -0
  337. package/build/module/src/util/apicall.js +137 -0
  338. package/build/module/src/util/apicall.js.map +1 -0
  339. package/build/module/src/util/log.d.ts +14 -0
  340. package/build/module/src/util/log.js +30 -0
  341. package/build/module/src/util/log.js.map +1 -0
  342. package/build/module/src/util/other.d.ts +1 -0
  343. package/build/module/src/util/other.js +4 -0
  344. package/build/module/src/util/other.js.map +1 -0
  345. package/build/module/src/util/stream.d.ts +10 -0
  346. package/build/module/src/util/stream.js +28 -0
  347. package/build/module/src/util/stream.js.map +1 -0
  348. package/build/module/src/util/transform.d.ts +8 -0
  349. package/build/module/src/util/transform.js +57 -0
  350. package/build/module/src/util/transform.js.map +1 -0
  351. package/package.json +111 -0
@@ -0,0 +1,34 @@
1
+ import { AnthropicModel } from './types.js';
2
+ export const modelInfoAnthropic = [
3
+ {
4
+ name: AnthropicModel.Claude3Opus,
5
+ currency: 'usd',
6
+ promptTokenCostPer1M: 15.0,
7
+ completionTokenCostPer1M: 75.0
8
+ },
9
+ {
10
+ name: AnthropicModel.Claude3Sonnet,
11
+ currency: 'usd',
12
+ promptTokenCostPer1M: 3.0,
13
+ completionTokenCostPer1M: 15.0
14
+ },
15
+ {
16
+ name: AnthropicModel.Claude3Haiku,
17
+ currency: 'usd',
18
+ promptTokenCostPer1M: 0.25,
19
+ completionTokenCostPer1M: 1.25
20
+ },
21
+ {
22
+ name: AnthropicModel.Claude21,
23
+ currency: 'usd',
24
+ promptTokenCostPer1M: 8.0,
25
+ completionTokenCostPer1M: 25
26
+ },
27
+ {
28
+ name: AnthropicModel.ClaudeInstant12,
29
+ currency: 'usd',
30
+ promptTokenCostPer1M: 0.8,
31
+ completionTokenCostPer1M: 2.24
32
+ }
33
+ ];
34
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../src/ai/anthropic/info.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD;QACE,IAAI,EAAE,cAAc,CAAC,WAAW;QAChC,QAAQ,EAAE,KAAK;QACf,oBAAoB,EAAE,IAAI;QAC1B,wBAAwB,EAAE,IAAI;KAC/B;IACD;QACE,IAAI,EAAE,cAAc,CAAC,aAAa;QAClC,QAAQ,EAAE,KAAK;QACf,oBAAoB,EAAE,GAAG;QACzB,wBAAwB,EAAE,IAAI;KAC/B;IACD;QACE,IAAI,EAAE,cAAc,CAAC,YAAY;QACjC,QAAQ,EAAE,KAAK;QACf,oBAAoB,EAAE,IAAI;QAC1B,wBAAwB,EAAE,IAAI;KAC/B;IACD;QACE,IAAI,EAAE,cAAc,CAAC,QAAQ;QAC7B,QAAQ,EAAE,KAAK;QACf,oBAAoB,EAAE,GAAG;QACzB,wBAAwB,EAAE,EAAE;KAC7B;IACD;QACE,IAAI,EAAE,cAAc,CAAC,eAAe;QACpC,QAAQ,EAAE,KAAK;QACf,oBAAoB,EAAE,GAAG;QACzB,wBAAwB,EAAE,IAAI;KAC/B;CACF,CAAC"}
@@ -0,0 +1,140 @@
1
+ import type { TextModelConfig } from '../types.js';
2
+ /**
3
+ * Anthropic: Models for text generation
4
+ * @export
5
+ */
6
+ export declare enum AnthropicModel {
7
+ Claude3Opus = "claude-3-opus-20240229",
8
+ Claude3Sonnet = "claude-3-sonnet-20240229",
9
+ Claude3Haiku = "claude-3-haiku-20240307",
10
+ Claude21 = "claude-2.1",
11
+ ClaudeInstant12 = "claude-instant-1.2"
12
+ }
13
+ /**
14
+ * Anthropic: Model options for text generation
15
+ * @export
16
+ */
17
+ export type AnthropicConfig = TextModelConfig & {
18
+ model: AnthropicModel;
19
+ };
20
+ export type AnthropicChatRequest = {
21
+ model: string;
22
+ messages: {
23
+ role: 'user' | 'assistant' | 'system';
24
+ content: string | {
25
+ type: 'text' | 'image' | 'tool_result';
26
+ text?: string;
27
+ tool_use_id?: string;
28
+ content?: string;
29
+ source?: {
30
+ type: 'base64';
31
+ media_type: string;
32
+ data: string;
33
+ };
34
+ }[];
35
+ }[];
36
+ tools?: {
37
+ name: string;
38
+ description: string;
39
+ input_schema?: object;
40
+ }[];
41
+ max_tokens?: number;
42
+ stop_sequences?: string[];
43
+ stream?: boolean;
44
+ temperature?: number;
45
+ top_p?: number;
46
+ top_k?: number;
47
+ metadata?: {
48
+ user_id: string;
49
+ };
50
+ };
51
+ export type AnthropicChatResponse = {
52
+ id: string;
53
+ type: 'message';
54
+ role: 'assistant';
55
+ content: {
56
+ id?: string;
57
+ name?: string;
58
+ type: 'text' | 'tool_use';
59
+ text: string;
60
+ input?: string;
61
+ }[];
62
+ model: string;
63
+ stop_reason: 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use';
64
+ stop_sequence?: string;
65
+ usage: {
66
+ input_tokens: number;
67
+ output_tokens: number;
68
+ };
69
+ };
70
+ export type AnthropicChatError = {
71
+ type: 'error';
72
+ error: {
73
+ type: 'authentication_error';
74
+ message: string;
75
+ };
76
+ };
77
+ export interface AnthropicStreamEvent {
78
+ type: string;
79
+ }
80
+ export interface AnthropicMessageStartEvent extends AnthropicStreamEvent {
81
+ message: {
82
+ id: string;
83
+ type: 'message';
84
+ role: 'assistant';
85
+ content: [];
86
+ model: string;
87
+ stop_reason: null | string;
88
+ stop_sequence: null | string;
89
+ usage: {
90
+ input_tokens: number;
91
+ output_tokens: number;
92
+ };
93
+ };
94
+ }
95
+ export interface AnthropicContentBlockStartEvent extends AnthropicStreamEvent {
96
+ index: number;
97
+ content_block: {
98
+ type: 'text';
99
+ text: string;
100
+ };
101
+ }
102
+ export interface AnthropicContentBlockDeltaEvent extends AnthropicStreamEvent {
103
+ index: number;
104
+ delta: {
105
+ type: 'text_delta';
106
+ text: string;
107
+ };
108
+ }
109
+ export interface AnthropicContentBlockStopEvent extends AnthropicStreamEvent {
110
+ index: number;
111
+ }
112
+ export interface AnthropicMessageDeltaEvent extends AnthropicStreamEvent {
113
+ delta: {
114
+ stop_reason: 'end_turn' | 'max_tokens' | 'stop_sequence' | null;
115
+ stop_sequence: string | null;
116
+ usage: {
117
+ output_tokens: number;
118
+ };
119
+ };
120
+ }
121
+ export type AnthropicMessageStopEvent = AnthropicStreamEvent;
122
+ export type AnthropicPingEvent = AnthropicStreamEvent;
123
+ export interface AnthropicErrorEvent extends AnthropicStreamEvent {
124
+ error: {
125
+ type: 'overloaded_error' | string;
126
+ message: string;
127
+ };
128
+ }
129
+ export type AnthropicStreamEventType = AnthropicMessageStartEvent | AnthropicContentBlockStartEvent | AnthropicContentBlockDeltaEvent | AnthropicContentBlockStopEvent | AnthropicMessageDeltaEvent | AnthropicMessageStopEvent | AnthropicPingEvent | AnthropicErrorEvent;
130
+ export interface AnthropicResponseDelta<T> {
131
+ id: string;
132
+ object: 'message';
133
+ model: string;
134
+ events: T[];
135
+ usage?: {
136
+ input_tokens: number;
137
+ output_tokens: number;
138
+ };
139
+ }
140
+ export type AnthropicChatResponseDelta = AnthropicResponseDelta<AnthropicStreamEventType>;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Anthropic: Models for text generation
3
+ * @export
4
+ */
5
+ export var AnthropicModel;
6
+ (function (AnthropicModel) {
7
+ AnthropicModel["Claude3Opus"] = "claude-3-opus-20240229";
8
+ AnthropicModel["Claude3Sonnet"] = "claude-3-sonnet-20240229";
9
+ AnthropicModel["Claude3Haiku"] = "claude-3-haiku-20240307";
10
+ AnthropicModel["Claude21"] = "claude-2.1";
11
+ AnthropicModel["ClaudeInstant12"] = "claude-instant-1.2";
12
+ })(AnthropicModel || (AnthropicModel = {}));
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/ai/anthropic/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,wDAAsC,CAAA;IACtC,4DAA0C,CAAA;IAC1C,0DAAwC,CAAA;IACxC,yCAAuB,CAAA;IACvB,wDAAsC,CAAA;AACxC,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB"}
@@ -0,0 +1,34 @@
1
+ import type { AIServiceOptions } from '../../text/types.js';
2
+ import { OpenAI } from '../openai/api.js';
3
+ import type { OpenAIConfig } from '../openai/types.js';
4
+ /**
5
+ * AzureOpenAI: Default Model options for text generation
6
+ * @export
7
+ */
8
+ export declare const AzureOpenAIDefaultConfig: () => OpenAIConfig;
9
+ /**
10
+ * AzureOpenAI: Default model options for more creative text generation
11
+ * @export
12
+ */
13
+ export declare const AzureOpenAICreativeConfig: () => OpenAIConfig;
14
+ /**
15
+ * AzureOpenAI: Default model options for more fast text generation
16
+ * @export
17
+ */
18
+ export declare const AzureOpenAIFastConfig: () => OpenAIConfig;
19
+ export declare const AzureOpenAIBestConfig: () => OpenAIConfig;
20
+ export interface AzureOpenAIArgs {
21
+ apiKey: string;
22
+ resourceName: string;
23
+ deploymentName: string;
24
+ version?: string;
25
+ config: Readonly<OpenAIConfig>;
26
+ options?: Readonly<AIServiceOptions>;
27
+ }
28
+ /**
29
+ * AzureOpenAI: AI Service
30
+ * @export
31
+ */
32
+ export declare class AzureOpenAI extends OpenAI {
33
+ constructor({ apiKey, resourceName, deploymentName, version, config, options }: Readonly<AzureOpenAIArgs>);
34
+ }
@@ -0,0 +1,42 @@
1
+ import { OpenAI, OpenAIBestConfig, OpenAICreativeConfig, OpenAIDefaultConfig, OpenAIFastConfig } from '../openai/api.js';
2
+ /**
3
+ * AzureOpenAI: Default Model options for text generation
4
+ * @export
5
+ */
6
+ export const AzureOpenAIDefaultConfig = OpenAIDefaultConfig;
7
+ /**
8
+ * AzureOpenAI: Default model options for more creative text generation
9
+ * @export
10
+ */
11
+ export const AzureOpenAICreativeConfig = OpenAICreativeConfig;
12
+ /**
13
+ * AzureOpenAI: Default model options for more fast text generation
14
+ * @export
15
+ */
16
+ export const AzureOpenAIFastConfig = OpenAIFastConfig;
17
+ export const AzureOpenAIBestConfig = OpenAIBestConfig;
18
+ /**
19
+ * AzureOpenAI: AI Service
20
+ * @export
21
+ */
22
+ export class AzureOpenAI extends OpenAI {
23
+ constructor({ apiKey, resourceName, deploymentName, version = 'api-version=2024-02-15-preview', config, options }) {
24
+ if (!apiKey || apiKey === '') {
25
+ throw new Error('Azure OpenAPI API key not set');
26
+ }
27
+ if (!resourceName || resourceName === '') {
28
+ throw new Error('Azure OpenAPI resource name not set');
29
+ }
30
+ if (!deploymentName || deploymentName === '') {
31
+ throw new Error('Azure OpenAPI deployment id not set');
32
+ }
33
+ super({ apiKey, config, options });
34
+ const host = resourceName.includes('://')
35
+ ? resourceName
36
+ : `https://${resourceName}.openai.azure.com/`;
37
+ super.setName('Azure OpenAI');
38
+ super.setAPIURL(new URL(`/openai/deployments/${deploymentName}?api-version=${version}`, host).href);
39
+ super.setHeaders({ 'api-key': apiKey });
40
+ }
41
+ }
42
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../../src/ai/azure-openai/api.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAG1B;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAE9D;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAEtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAWtD;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,MAAM;IACrC,YAAY,EACV,MAAM,EACN,YAAY,EACZ,cAAc,EACd,OAAO,GAAG,gCAAgC,EAC1C,MAAM,EACN,OAAO,EACmB;QAC1B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEnC,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,WAAW,YAAY,oBAAoB,CAAC;QAEhD,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAE9B,KAAK,CAAC,SAAS,CACb,IAAI,GAAG,CACL,uBAAuB,cAAc,gBAAgB,OAAO,EAAE,EAC9D,IAAI,CACL,CAAC,IAAI,CACP,CAAC;QAEF,KAAK,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export * from './api.js';
@@ -0,0 +1,2 @@
1
+ export * from './api.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ai/azure-openai/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,26 @@
1
+ /// <reference types="node" />
2
+ import type { ReadableStream } from 'stream/web';
3
+ import type { AIPromptConfig, AIService, AIServiceActionOptions, AIServiceOptions } from '../text/index.js';
4
+ import type { AITextChatRequest, AITextEmbedRequest } from '../types/index.js';
5
+ import type { EmbedResponse, TextModelConfig, TextModelInfo, TextResponse } from './types.js';
6
+ export declare class AIBalancer implements AIService {
7
+ private services;
8
+ private currentServiceIndex;
9
+ private currentService;
10
+ constructor(services: readonly AIService[]);
11
+ private getNextService;
12
+ private reset;
13
+ getName(): string;
14
+ getModelInfo(): Readonly<TextModelInfo & {
15
+ provider: string;
16
+ }>;
17
+ getEmbedModelInfo(): Readonly<TextModelInfo> | undefined;
18
+ getModelConfig(): Readonly<TextModelConfig>;
19
+ getFeatures(): {
20
+ functions: boolean;
21
+ streaming: boolean;
22
+ };
23
+ chat(req: Readonly<AITextChatRequest>, options?: Readonly<AIPromptConfig & AIServiceActionOptions> | undefined): Promise<TextResponse | ReadableStream<TextResponse>>;
24
+ embed(req: Readonly<AITextEmbedRequest>, options?: Readonly<AIServiceActionOptions> | undefined): Promise<EmbedResponse>;
25
+ setOptions(options: Readonly<AIServiceOptions>): void;
26
+ }
@@ -0,0 +1,87 @@
1
+ export class AIBalancer {
2
+ services;
3
+ currentServiceIndex = 0;
4
+ currentService;
5
+ constructor(services) {
6
+ if (services.length === 0) {
7
+ throw new Error('No AI services provided.');
8
+ }
9
+ this.services = [...services].sort((a, b) => {
10
+ const aInfo = a.getModelInfo();
11
+ const bInfo = b.getModelInfo();
12
+ const aTotalCost = (aInfo.promptTokenCostPer1M || Infinity) +
13
+ (aInfo.completionTokenCostPer1M || Infinity);
14
+ const bTotalCost = (bInfo.promptTokenCostPer1M || Infinity) +
15
+ (bInfo.completionTokenCostPer1M || Infinity);
16
+ return aTotalCost - bTotalCost;
17
+ });
18
+ const cs = this.services[this.currentServiceIndex];
19
+ if (cs === undefined) {
20
+ throw new Error('Error initializing the AI services.'); // More specific error message
21
+ }
22
+ this.currentService = cs;
23
+ }
24
+ getNextService() {
25
+ const cs = this.services[++this.currentServiceIndex];
26
+ if (cs === undefined) {
27
+ return false;
28
+ }
29
+ this.currentService = cs;
30
+ return true;
31
+ }
32
+ reset() {
33
+ this.currentServiceIndex = 0;
34
+ const cs = this.services[this.currentServiceIndex];
35
+ if (cs === undefined) {
36
+ throw new Error('No AI services provided.');
37
+ }
38
+ this.currentService = cs;
39
+ }
40
+ getName() {
41
+ return this.currentService.getName();
42
+ }
43
+ getModelInfo() {
44
+ return this.currentService.getModelInfo();
45
+ }
46
+ getEmbedModelInfo() {
47
+ return this.currentService.getEmbedModelInfo();
48
+ }
49
+ getModelConfig() {
50
+ return this.currentService.getModelConfig();
51
+ }
52
+ getFeatures() {
53
+ return this.currentService.getFeatures();
54
+ }
55
+ async chat(req, options) {
56
+ this.reset();
57
+ // eslint-disable-next-line no-constant-condition
58
+ while (true) {
59
+ try {
60
+ return await this.currentService.chat(req, options);
61
+ }
62
+ catch (e) {
63
+ if (!this.getNextService()) {
64
+ throw e;
65
+ }
66
+ }
67
+ }
68
+ }
69
+ async embed(req, options) {
70
+ this.reset();
71
+ // eslint-disable-next-line no-constant-condition
72
+ while (true) {
73
+ try {
74
+ return await this.currentService.embed(req, options);
75
+ }
76
+ catch (e) {
77
+ if (!this.getNextService()) {
78
+ throw e;
79
+ }
80
+ }
81
+ }
82
+ }
83
+ setOptions(options) {
84
+ this.currentService.setOptions(options);
85
+ }
86
+ }
87
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../../src/ai/balance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /// <reference types="node" />
2
+ import type { ReadableStream } from 'stream/web';
3
+ import type { AIPromptConfig, AIService, AIServiceActionOptions, AIServiceOptions } from '../text/types.js';
4
+ import { type Span } from '../trace/index.js';
5
+ import type { AITextChatRequest, AITextEmbedRequest, TextModelInfoWithProvider } from '../types/index.js';
6
+ import { type API } from '../util/apicall.js';
7
+ import type { EmbedResponse, TextModelConfig, TextModelInfo, TextResponse } from './types.js';
8
+ export interface BaseAIArgs {
9
+ name: string;
10
+ apiURL: string;
11
+ headers: Record<string, string>;
12
+ modelInfo: Readonly<TextModelInfo[]>;
13
+ models: Readonly<{
14
+ model: string;
15
+ embedModel?: string;
16
+ }>;
17
+ options?: Readonly<AIServiceOptions>;
18
+ supportFor: {
19
+ functions: boolean;
20
+ streaming: boolean;
21
+ };
22
+ }
23
+ export declare const BaseAIDefaultConfig: () => TextModelConfig;
24
+ export declare const BaseAIDefaultCreativeConfig: () => TextModelConfig;
25
+ export declare class BaseAI<TChatRequest, TEmbedRequest, TChatResponse, TChatResponseDelta, TEmbedResponse> implements AIService {
26
+ generateChatReq?: (req: Readonly<AITextChatRequest>, config: Readonly<AIPromptConfig>) => [API, TChatRequest];
27
+ generateEmbedReq?: (req: Readonly<AITextEmbedRequest>) => [API, TEmbedRequest];
28
+ generateChatResp?: (resp: Readonly<TChatResponse>) => TextResponse;
29
+ generateChatStreamResp?: (resp: Readonly<TChatResponseDelta>, state: object) => TextResponse;
30
+ generateEmbedResp?: (resp: Readonly<TEmbedResponse>) => EmbedResponse;
31
+ private debug;
32
+ private rt?;
33
+ private fetch?;
34
+ private tracer?;
35
+ protected apiURL: string;
36
+ protected name: string;
37
+ protected headers: Record<string, string>;
38
+ protected modelInfo: TextModelInfo;
39
+ protected embedModelInfo?: TextModelInfo;
40
+ protected supportFor: BaseAIArgs['supportFor'];
41
+ constructor({ name, apiURL, headers, modelInfo, models, options, supportFor }: Readonly<BaseAIArgs>);
42
+ setName(name: string): void;
43
+ setAPIURL(apiURL: string): void;
44
+ setHeaders(headers: Record<string, string>): void;
45
+ setOptions(options: Readonly<AIServiceOptions>): void;
46
+ getModelInfo(): Readonly<TextModelInfoWithProvider>;
47
+ getEmbedModelInfo(): TextModelInfoWithProvider | undefined;
48
+ getName(): string;
49
+ getFeatures(): BaseAIArgs['supportFor'];
50
+ getModelConfig(): TextModelConfig;
51
+ chat(_req: Readonly<AITextChatRequest>, options?: Readonly<AIPromptConfig & AIServiceActionOptions>): Promise<TextResponse | ReadableStream<TextResponse>>;
52
+ _chat(_req: Readonly<AITextChatRequest>, options?: Readonly<AIPromptConfig & AIServiceActionOptions>, span?: Span): Promise<TextResponse | ReadableStream<TextResponse>>;
53
+ embed(req: Readonly<AITextEmbedRequest>, options?: Readonly<AIServiceActionOptions>): Promise<EmbedResponse>;
54
+ _embed(req: Readonly<AITextEmbedRequest>, options?: Readonly<AIServiceActionOptions>, span?: Span): Promise<EmbedResponse>;
55
+ private buildHeaders;
56
+ }