@ax-llm/ax 9.0.19 → 9.0.20

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 (310) hide show
  1. package/package.json +33 -85
  2. package/CHANGELOG.md +0 -184
  3. package/LICENSE +0 -201
  4. package/README.md +0 -569
  5. package/build/module/docs/assets/icons.d.ts +0 -1
  6. package/build/module/docs/assets/icons.js +0 -19
  7. package/build/module/docs/assets/icons.js.map +0 -1
  8. package/build/module/docs/assets/main.d.ts +0 -1
  9. package/build/module/docs/assets/main.js +0 -629
  10. package/build/module/docs/assets/main.js.map +0 -1
  11. package/build/module/docs/assets/navigation.d.ts +0 -1
  12. package/build/module/docs/assets/navigation.js +0 -3
  13. package/build/module/docs/assets/navigation.js.map +0 -1
  14. package/build/module/docs/assets/search.d.ts +0 -1
  15. package/build/module/docs/assets/search.js +0 -3
  16. package/build/module/docs/assets/search.js.map +0 -1
  17. package/build/module/src/ai/anthropic/api.d.ts +0 -19
  18. package/build/module/src/ai/anthropic/api.js +0 -326
  19. package/build/module/src/ai/anthropic/api.js.map +0 -1
  20. package/build/module/src/ai/anthropic/index.d.ts +0 -2
  21. package/build/module/src/ai/anthropic/index.js +0 -3
  22. package/build/module/src/ai/anthropic/index.js.map +0 -1
  23. package/build/module/src/ai/anthropic/info.d.ts +0 -2
  24. package/build/module/src/ai/anthropic/info.js +0 -40
  25. package/build/module/src/ai/anthropic/info.js.map +0 -1
  26. package/build/module/src/ai/anthropic/types.d.ts +0 -171
  27. package/build/module/src/ai/anthropic/types.js +0 -10
  28. package/build/module/src/ai/anthropic/types.js.map +0 -1
  29. package/build/module/src/ai/azure-openai/api.d.ts +0 -19
  30. package/build/module/src/ai/azure-openai/api.js +0 -30
  31. package/build/module/src/ai/azure-openai/api.js.map +0 -1
  32. package/build/module/src/ai/azure-openai/index.d.ts +0 -1
  33. package/build/module/src/ai/azure-openai/index.js +0 -2
  34. package/build/module/src/ai/azure-openai/index.js.map +0 -1
  35. package/build/module/src/ai/balance.d.ts +0 -23
  36. package/build/module/src/ai/balance.js +0 -87
  37. package/build/module/src/ai/balance.js.map +0 -1
  38. package/build/module/src/ai/base.d.ts +0 -55
  39. package/build/module/src/ai/base.js +0 -343
  40. package/build/module/src/ai/base.js.map +0 -1
  41. package/build/module/src/ai/cohere/api.d.ts +0 -22
  42. package/build/module/src/ai/cohere/api.js +0 -264
  43. package/build/module/src/ai/cohere/api.js.map +0 -1
  44. package/build/module/src/ai/cohere/index.d.ts +0 -2
  45. package/build/module/src/ai/cohere/index.js +0 -3
  46. package/build/module/src/ai/cohere/index.js.map +0 -1
  47. package/build/module/src/ai/cohere/info.d.ts +0 -2
  48. package/build/module/src/ai/cohere/info.js +0 -52
  49. package/build/module/src/ai/cohere/info.js.map +0 -1
  50. package/build/module/src/ai/cohere/types.d.ts +0 -102
  51. package/build/module/src/ai/cohere/types.js +0 -23
  52. package/build/module/src/ai/cohere/types.js.map +0 -1
  53. package/build/module/src/ai/deepseek/api.d.ts +0 -16
  54. package/build/module/src/ai/deepseek/api.js +0 -32
  55. package/build/module/src/ai/deepseek/api.js.map +0 -1
  56. package/build/module/src/ai/deepseek/index.d.ts +0 -2
  57. package/build/module/src/ai/deepseek/index.js +0 -3
  58. package/build/module/src/ai/deepseek/index.js.map +0 -1
  59. package/build/module/src/ai/deepseek/info.d.ts +0 -2
  60. package/build/module/src/ai/deepseek/info.js +0 -16
  61. package/build/module/src/ai/deepseek/info.js.map +0 -1
  62. package/build/module/src/ai/deepseek/types.d.ts +0 -8
  63. package/build/module/src/ai/deepseek/types.js +0 -10
  64. package/build/module/src/ai/deepseek/types.js.map +0 -1
  65. package/build/module/src/ai/google-gemini/api.d.ts +0 -36
  66. package/build/module/src/ai/google-gemini/api.js +0 -299
  67. package/build/module/src/ai/google-gemini/api.js.map +0 -1
  68. package/build/module/src/ai/google-gemini/index.d.ts +0 -2
  69. package/build/module/src/ai/google-gemini/index.js +0 -3
  70. package/build/module/src/ai/google-gemini/index.js.map +0 -1
  71. package/build/module/src/ai/google-gemini/info.d.ts +0 -6
  72. package/build/module/src/ai/google-gemini/info.js +0 -29
  73. package/build/module/src/ai/google-gemini/info.js.map +0 -1
  74. package/build/module/src/ai/google-gemini/types.d.ts +0 -146
  75. package/build/module/src/ai/google-gemini/types.js +0 -27
  76. package/build/module/src/ai/google-gemini/types.js.map +0 -1
  77. package/build/module/src/ai/groq/api.d.ts +0 -18
  78. package/build/module/src/ai/groq/api.js +0 -52
  79. package/build/module/src/ai/groq/api.js.map +0 -1
  80. package/build/module/src/ai/groq/index.d.ts +0 -1
  81. package/build/module/src/ai/groq/index.js +0 -2
  82. package/build/module/src/ai/groq/index.js.map +0 -1
  83. package/build/module/src/ai/groq/types.d.ts +0 -6
  84. package/build/module/src/ai/groq/types.js +0 -8
  85. package/build/module/src/ai/groq/types.js.map +0 -1
  86. package/build/module/src/ai/huggingface/api.d.ts +0 -19
  87. package/build/module/src/ai/huggingface/api.js +0 -115
  88. package/build/module/src/ai/huggingface/api.js.map +0 -1
  89. package/build/module/src/ai/huggingface/index.d.ts +0 -2
  90. package/build/module/src/ai/huggingface/index.js +0 -3
  91. package/build/module/src/ai/huggingface/index.js.map +0 -1
  92. package/build/module/src/ai/huggingface/info.d.ts +0 -6
  93. package/build/module/src/ai/huggingface/info.js +0 -6
  94. package/build/module/src/ai/huggingface/info.js.map +0 -1
  95. package/build/module/src/ai/huggingface/types.d.ts +0 -34
  96. package/build/module/src/ai/huggingface/types.js +0 -5
  97. package/build/module/src/ai/huggingface/types.js.map +0 -1
  98. package/build/module/src/ai/index.d.ts +0 -16
  99. package/build/module/src/ai/index.js +0 -16
  100. package/build/module/src/ai/index.js.map +0 -1
  101. package/build/module/src/ai/mistral/api.d.ts +0 -16
  102. package/build/module/src/ai/mistral/api.js +0 -32
  103. package/build/module/src/ai/mistral/api.js.map +0 -1
  104. package/build/module/src/ai/mistral/index.d.ts +0 -2
  105. package/build/module/src/ai/mistral/index.js +0 -3
  106. package/build/module/src/ai/mistral/index.js.map +0 -1
  107. package/build/module/src/ai/mistral/info.d.ts +0 -2
  108. package/build/module/src/ai/mistral/info.js +0 -34
  109. package/build/module/src/ai/mistral/info.js.map +0 -1
  110. package/build/module/src/ai/mistral/types.d.ts +0 -10
  111. package/build/module/src/ai/mistral/types.js +0 -13
  112. package/build/module/src/ai/mistral/types.js.map +0 -1
  113. package/build/module/src/ai/ollama/api.d.ts +0 -22
  114. package/build/module/src/ai/ollama/api.js +0 -32
  115. package/build/module/src/ai/ollama/api.js.map +0 -1
  116. package/build/module/src/ai/ollama/index.d.ts +0 -1
  117. package/build/module/src/ai/ollama/index.js +0 -2
  118. package/build/module/src/ai/ollama/index.js.map +0 -1
  119. package/build/module/src/ai/openai/api.d.ts +0 -29
  120. package/build/module/src/ai/openai/api.js +0 -283
  121. package/build/module/src/ai/openai/api.js.map +0 -1
  122. package/build/module/src/ai/openai/index.d.ts +0 -2
  123. package/build/module/src/ai/openai/index.js +0 -3
  124. package/build/module/src/ai/openai/index.js.map +0 -1
  125. package/build/module/src/ai/openai/info.d.ts +0 -6
  126. package/build/module/src/ai/openai/info.js +0 -50
  127. package/build/module/src/ai/openai/info.js.map +0 -1
  128. package/build/module/src/ai/openai/types.d.ts +0 -165
  129. package/build/module/src/ai/openai/types.js +0 -18
  130. package/build/module/src/ai/openai/types.js.map +0 -1
  131. package/build/module/src/ai/together/api.d.ts +0 -15
  132. package/build/module/src/ai/together/api.js +0 -28
  133. package/build/module/src/ai/together/api.js.map +0 -1
  134. package/build/module/src/ai/together/index.d.ts +0 -1
  135. package/build/module/src/ai/together/index.js +0 -2
  136. package/build/module/src/ai/together/index.js.map +0 -1
  137. package/build/module/src/ai/together/info.d.ts +0 -2
  138. package/build/module/src/ai/together/info.js +0 -2
  139. package/build/module/src/ai/together/info.js.map +0 -1
  140. package/build/module/src/ai/types.d.ts +0 -159
  141. package/build/module/src/ai/types.js +0 -2
  142. package/build/module/src/ai/types.js.map +0 -1
  143. package/build/module/src/ai/util.d.ts +0 -12
  144. package/build/module/src/ai/util.js +0 -63
  145. package/build/module/src/ai/util.js.map +0 -1
  146. package/build/module/src/ai/wrap.d.ts +0 -47
  147. package/build/module/src/ai/wrap.js +0 -95
  148. package/build/module/src/ai/wrap.js.map +0 -1
  149. package/build/module/src/db/base.d.ts +0 -23
  150. package/build/module/src/db/base.js +0 -87
  151. package/build/module/src/db/base.js.map +0 -1
  152. package/build/module/src/db/cloudflare.d.ts +0 -21
  153. package/build/module/src/db/cloudflare.js +0 -98
  154. package/build/module/src/db/cloudflare.js.map +0 -1
  155. package/build/module/src/db/index.d.ts +0 -6
  156. package/build/module/src/db/index.js +0 -7
  157. package/build/module/src/db/index.js.map +0 -1
  158. package/build/module/src/db/memory.d.ts +0 -21
  159. package/build/module/src/db/memory.js +0 -99
  160. package/build/module/src/db/memory.js.map +0 -1
  161. package/build/module/src/db/pinecone.d.ts +0 -21
  162. package/build/module/src/db/pinecone.js +0 -71
  163. package/build/module/src/db/pinecone.js.map +0 -1
  164. package/build/module/src/db/types.d.ts +0 -35
  165. package/build/module/src/db/types.js +0 -3
  166. package/build/module/src/db/types.js.map +0 -1
  167. package/build/module/src/db/weaviate.d.ts +0 -21
  168. package/build/module/src/db/weaviate.js +0 -127
  169. package/build/module/src/db/weaviate.js.map +0 -1
  170. package/build/module/src/db/wrap.d.ts +0 -13
  171. package/build/module/src/db/wrap.js +0 -35
  172. package/build/module/src/db/wrap.js.map +0 -1
  173. package/build/module/src/docs/index.d.ts +0 -4
  174. package/build/module/src/docs/index.js +0 -5
  175. package/build/module/src/docs/index.js.map +0 -1
  176. package/build/module/src/docs/manager.d.ts +0 -45
  177. package/build/module/src/docs/manager.js +0 -159
  178. package/build/module/src/docs/manager.js.map +0 -1
  179. package/build/module/src/docs/reranker.d.ts +0 -7
  180. package/build/module/src/docs/reranker.js +0 -26
  181. package/build/module/src/docs/reranker.js.map +0 -1
  182. package/build/module/src/docs/rewriter.d.ts +0 -4
  183. package/build/module/src/docs/rewriter.js +0 -9
  184. package/build/module/src/docs/rewriter.js.map +0 -1
  185. package/build/module/src/docs/tika.d.ts +0 -18
  186. package/build/module/src/docs/tika.js +0 -46
  187. package/build/module/src/docs/tika.js.map +0 -1
  188. package/build/module/src/dsp/asserts.d.ts +0 -32
  189. package/build/module/src/dsp/asserts.js +0 -91
  190. package/build/module/src/dsp/asserts.js.map +0 -1
  191. package/build/module/src/dsp/eval.d.ts +0 -43
  192. package/build/module/src/dsp/eval.js +0 -125
  193. package/build/module/src/dsp/eval.js.map +0 -1
  194. package/build/module/src/dsp/evaluate.d.ts +0 -12
  195. package/build/module/src/dsp/evaluate.js +0 -32
  196. package/build/module/src/dsp/evaluate.js.map +0 -1
  197. package/build/module/src/dsp/extract.d.ts +0 -25
  198. package/build/module/src/dsp/extract.js +0 -153
  199. package/build/module/src/dsp/extract.js.map +0 -1
  200. package/build/module/src/dsp/generate.d.ts +0 -55
  201. package/build/module/src/dsp/generate.js +0 -314
  202. package/build/module/src/dsp/generate.js.map +0 -1
  203. package/build/module/src/dsp/generate.test.d.ts +0 -1
  204. package/build/module/src/dsp/generate.test.js +0 -41
  205. package/build/module/src/dsp/generate.test.js.map +0 -1
  206. package/build/module/src/dsp/index.d.ts +0 -15
  207. package/build/module/src/dsp/index.js +0 -11
  208. package/build/module/src/dsp/index.js.map +0 -1
  209. package/build/module/src/dsp/loader.d.ts +0 -30
  210. package/build/module/src/dsp/loader.js +0 -81
  211. package/build/module/src/dsp/loader.js.map +0 -1
  212. package/build/module/src/dsp/optimize.d.ts +0 -27
  213. package/build/module/src/dsp/optimize.js +0 -95
  214. package/build/module/src/dsp/optimize.js.map +0 -1
  215. package/build/module/src/dsp/parser.d.ts +0 -87
  216. package/build/module/src/dsp/parser.js +0 -1542
  217. package/build/module/src/dsp/parser.js.map +0 -1
  218. package/build/module/src/dsp/program.d.ts +0 -73
  219. package/build/module/src/dsp/program.js +0 -116
  220. package/build/module/src/dsp/program.js.map +0 -1
  221. package/build/module/src/dsp/prompt.d.ts +0 -48
  222. package/build/module/src/dsp/prompt.js +0 -260
  223. package/build/module/src/dsp/prompt.js.map +0 -1
  224. package/build/module/src/dsp/registry.d.ts +0 -6
  225. package/build/module/src/dsp/registry.js +0 -15
  226. package/build/module/src/dsp/registry.js.map +0 -1
  227. package/build/module/src/dsp/router.d.ts +0 -26
  228. package/build/module/src/dsp/router.js +0 -71
  229. package/build/module/src/dsp/router.js.map +0 -1
  230. package/build/module/src/dsp/sig.d.ts +0 -37
  231. package/build/module/src/dsp/sig.js +0 -194
  232. package/build/module/src/dsp/sig.js.map +0 -1
  233. package/build/module/src/dsp/sig.test.d.ts +0 -1
  234. package/build/module/src/dsp/sig.test.js +0 -28
  235. package/build/module/src/dsp/sig.test.js.map +0 -1
  236. package/build/module/src/dsp/stopwords.d.ts +0 -1
  237. package/build/module/src/dsp/stopwords.js +0 -1164
  238. package/build/module/src/dsp/stopwords.js.map +0 -1
  239. package/build/module/src/dsp/strutil.d.ts +0 -11
  240. package/build/module/src/dsp/strutil.js +0 -60
  241. package/build/module/src/dsp/strutil.js.map +0 -1
  242. package/build/module/src/dsp/util.d.ts +0 -5
  243. package/build/module/src/dsp/util.js +0 -76
  244. package/build/module/src/dsp/util.js.map +0 -1
  245. package/build/module/src/funcs/code.d.ts +0 -9
  246. package/build/module/src/funcs/code.js +0 -63
  247. package/build/module/src/funcs/code.js.map +0 -1
  248. package/build/module/src/funcs/embed.d.ts +0 -6
  249. package/build/module/src/funcs/embed.js +0 -29
  250. package/build/module/src/funcs/embed.js.map +0 -1
  251. package/build/module/src/funcs/functions.d.ts +0 -16
  252. package/build/module/src/funcs/functions.js +0 -55
  253. package/build/module/src/funcs/functions.js.map +0 -1
  254. package/build/module/src/funcs/index.d.ts +0 -3
  255. package/build/module/src/funcs/index.js +0 -4
  256. package/build/module/src/funcs/index.js.map +0 -1
  257. package/build/module/src/funcs/jsonschema.d.ts +0 -2
  258. package/build/module/src/funcs/jsonschema.js +0 -97
  259. package/build/module/src/funcs/jsonschema.js.map +0 -1
  260. package/build/module/src/index.d.ts +0 -9
  261. package/build/module/src/index.js.map +0 -1
  262. package/build/module/src/mem/index.d.ts +0 -2
  263. package/build/module/src/mem/index.js +0 -3
  264. package/build/module/src/mem/index.js.map +0 -1
  265. package/build/module/src/mem/memory.d.ts +0 -16
  266. package/build/module/src/mem/memory.js +0 -77
  267. package/build/module/src/mem/memory.js.map +0 -1
  268. package/build/module/src/mem/types.d.ts +0 -10
  269. package/build/module/src/mem/types.js +0 -2
  270. package/build/module/src/mem/types.js.map +0 -1
  271. package/build/module/src/prompts/agent.d.ts +0 -34
  272. package/build/module/src/prompts/agent.js +0 -108
  273. package/build/module/src/prompts/agent.js.map +0 -1
  274. package/build/module/src/prompts/cot.d.ts +0 -9
  275. package/build/module/src/prompts/cot.js +0 -17
  276. package/build/module/src/prompts/cot.js.map +0 -1
  277. package/build/module/src/prompts/index.d.ts +0 -4
  278. package/build/module/src/prompts/index.js +0 -5
  279. package/build/module/src/prompts/index.js.map +0 -1
  280. package/build/module/src/prompts/prompts.test.d.ts +0 -1
  281. package/build/module/src/prompts/prompts.test.js +0 -54
  282. package/build/module/src/prompts/prompts.test.js.map +0 -1
  283. package/build/module/src/prompts/rag.d.ts +0 -23
  284. package/build/module/src/prompts/rag.js +0 -30
  285. package/build/module/src/prompts/rag.js.map +0 -1
  286. package/build/module/src/prompts/react.d.ts +0 -8
  287. package/build/module/src/prompts/react.js +0 -22
  288. package/build/module/src/prompts/react.js.map +0 -1
  289. package/build/module/src/trace/index.d.ts +0 -171
  290. package/build/module/src/trace/index.js +0 -67
  291. package/build/module/src/trace/index.js.map +0 -1
  292. package/build/module/src/util/apicall.d.ts +0 -18
  293. package/build/module/src/util/apicall.js +0 -50
  294. package/build/module/src/util/apicall.js.map +0 -1
  295. package/build/module/src/util/log.d.ts +0 -14
  296. package/build/module/src/util/log.js +0 -31
  297. package/build/module/src/util/log.js.map +0 -1
  298. package/build/module/src/util/other.d.ts +0 -1
  299. package/build/module/src/util/other.js +0 -5
  300. package/build/module/src/util/other.js.map +0 -1
  301. package/build/module/src/util/rate-limit.d.ts +0 -24
  302. package/build/module/src/util/rate-limit.js +0 -49
  303. package/build/module/src/util/rate-limit.js.map +0 -1
  304. package/build/module/src/util/stream.d.ts +0 -9
  305. package/build/module/src/util/stream.js +0 -29
  306. package/build/module/src/util/stream.js.map +0 -1
  307. package/build/module/src/util/transform.d.ts +0 -7
  308. package/build/module/src/util/transform.js +0 -59
  309. package/build/module/src/util/transform.js.map +0 -1
  310. /package/{build/module/src/index.js → index.js} +0 -0
@@ -1,32 +0,0 @@
1
- import { updateProgressBar } from './util.js';
2
- export class AxTestPrompt {
3
- program;
4
- examples;
5
- constructor({ program, examples = [] }) {
6
- if (examples.length == 0) {
7
- throw new Error('No examples found');
8
- }
9
- this.program = program;
10
- this.examples = examples;
11
- }
12
- async run(metricFn) {
13
- const st = new Date().getTime();
14
- const total = this.examples.length;
15
- let successCount = 0;
16
- for (let i = 0; i < total; i++) {
17
- const ex = this.examples[i];
18
- if (!ex) {
19
- throw new Error('Invalid example');
20
- }
21
- const res = await this.program.forward(ex);
22
- const success = metricFn({ prediction: res, example: ex });
23
- if (success) {
24
- successCount++;
25
- }
26
- const et = new Date().getTime() - st;
27
- updateProgressBar(i, total, successCount, et, 30, 'Testing Prompt');
28
- }
29
- console.log('\nPerformance: ', successCount, '/', total, 'Accuracy: ', successCount / total, '\n');
30
- }
31
- }
32
- //# sourceMappingURL=evaluate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../../src/dsp/evaluate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAO9C,MAAM,OAAO,YAAY;IAIf,OAAO,CAA+B;IACtC,QAAQ,CAAwB;IAExC,YAAY,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE,EAAqC;QACvE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,QAAoB;QACnC,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnC,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAQ,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;YACrC,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,CAAC,GAAG,CACT,iBAAiB,EACjB,YAAY,EACZ,GAAG,EACH,KAAK,EACL,YAAY,EACZ,YAAY,GAAG,KAAK,EACpB,IAAI,CACL,CAAC;IACJ,CAAC;CACF"}
@@ -1,25 +0,0 @@
1
- import type { AxField, AxSignature } from './sig.js';
2
- export declare const extractValues: (sig: Readonly<AxSignature>, values: Record<string, unknown>, content: string) => void;
3
- export interface extractionState {
4
- currField?: AxField;
5
- s: number;
6
- }
7
- export declare const streamingExtractValues: (sig: Readonly<AxSignature>, values: Record<string, unknown>, state: extractionState, content: string) => void;
8
- export declare const streamingExtractFinalValue: (values: Record<string, unknown>, state: extractionState, content: string) => void;
9
- export declare class ValidationError extends Error {
10
- private field;
11
- private value;
12
- constructor({ message, field, value }: Readonly<{
13
- message: string;
14
- field: AxField;
15
- value: string;
16
- }>);
17
- getField: () => AxField;
18
- getValue: () => string;
19
- getFixingInstructions: () => {
20
- name: string;
21
- title: string;
22
- description: string;
23
- }[];
24
- }
25
- export declare const extractBlock: (input: string) => string;
@@ -1,153 +0,0 @@
1
- /* eslint-disable @typescript-eslint/naming-convention */
2
- import JSON5 from 'json5';
3
- export const extractValues = (sig, values, content) => {
4
- const xstate = { s: -1 };
5
- streamingExtractValues(sig, values, xstate, content);
6
- streamingExtractFinalValue(values, xstate, content);
7
- };
8
- export const streamingExtractValues = (sig, values,
9
- // eslint-disable-next-line functional/prefer-immutable-types
10
- state, content) => {
11
- const fields = sig.getOutputFields();
12
- for (const field of fields) {
13
- if (field.name in values) {
14
- continue;
15
- }
16
- const prefix = field.title + ':';
17
- const e = content.indexOf(prefix, state.s + 1);
18
- if (e === -1) {
19
- continue;
20
- }
21
- if (state.currField) {
22
- const val = content
23
- .substring(state.s, e)
24
- .trim()
25
- .replace(/---+$/, '')
26
- .trim();
27
- if (state.currField.type) {
28
- values[state.currField.name] = validateAndParseJson(state.currField, val);
29
- }
30
- else {
31
- values[state.currField.name] = val;
32
- }
33
- }
34
- state.s = e + prefix.length + 1;
35
- state.currField = field;
36
- }
37
- };
38
- export const streamingExtractFinalValue = (values,
39
- // eslint-disable-next-line functional/prefer-immutable-types
40
- state, content) => {
41
- if (!state.currField) {
42
- return;
43
- }
44
- const val = content.substring(state.s).trim().replace(/---+$/, '').trim();
45
- if (state.currField.type) {
46
- values[state.currField.name] = validateAndParseJson(state.currField, val);
47
- }
48
- else {
49
- values[state.currField.name] = val;
50
- }
51
- };
52
- function validateAndParseJson(field, jsonString) {
53
- const typeObj = field.type;
54
- if (!typeObj) {
55
- return jsonString;
56
- }
57
- const text = extractBlock(jsonString);
58
- // Attempt to parse the JSON string based on the expected type, if not a string
59
- let value;
60
- if (typeObj.name !== 'string' || typeObj.isArray) {
61
- try {
62
- value = JSON5.parse(text);
63
- }
64
- catch (e) {
65
- const exp = typeObj.isArray ? `array of ${typeObj.name}` : typeObj.name;
66
- const message = `Error '${e.message}', expected '${exp}' got '${text}'`;
67
- throw new ValidationError({ message, field, value: text });
68
- }
69
- }
70
- else {
71
- // If the expected type is a string and not an array, use the jsonString directly
72
- value = text;
73
- }
74
- // Now, validate the parsed value or direct string
75
- const validateSingleValue = (expectedType, val) => {
76
- switch (expectedType) {
77
- case 'string':
78
- return typeof val === 'string';
79
- case 'number':
80
- return typeof val === 'number';
81
- case 'boolean':
82
- return typeof val === 'boolean';
83
- case 'json':
84
- return typeof val === 'object' || Array.isArray(val);
85
- default:
86
- return false; // Unknown type
87
- }
88
- };
89
- if (typeObj.isArray) {
90
- if (!Array.isArray(value)) {
91
- const message = `Expected an array, but got '${typeof value}'.`;
92
- throw new ValidationError({ message, field, value: jsonString });
93
- }
94
- for (const item of value) {
95
- if (!validateSingleValue(typeObj.name, item)) {
96
- const message = `Expected all items in array to be of type '${typeObj.name}', but found an item of type '${typeof item}'.`;
97
- throw new ValidationError({ message, field, value: jsonString });
98
- }
99
- }
100
- }
101
- else {
102
- if (!validateSingleValue(typeObj.name, value)) {
103
- const message = `Expected value of type '${typeObj.name}', but got '${typeof value}'.`;
104
- throw new ValidationError({ message, field, value: jsonString });
105
- }
106
- }
107
- // If validation passes, return null to indicate no error
108
- return value;
109
- }
110
- export class ValidationError extends Error {
111
- field;
112
- value;
113
- constructor({ message, field, value }) {
114
- super(message);
115
- this.field = field;
116
- this.value = value;
117
- this.name = this.constructor.name;
118
- Error.captureStackTrace(this, this.constructor);
119
- }
120
- getField = () => this.field;
121
- getValue = () => this.value;
122
- getFixingInstructions = () => {
123
- const f = this.field;
124
- const extraFields = [
125
- {
126
- name: `past_${f.name}`,
127
- title: `Past ${f.title}`,
128
- description: this.value
129
- },
130
- {
131
- name: 'instructions',
132
- title: 'Instructions',
133
- description: this.message
134
- }
135
- ];
136
- return extraFields;
137
- };
138
- }
139
- export const extractBlock = (input) => {
140
- const jsonBlockPattern = /```([A-Za-z]+)?\s*([\s\S]*?)\s*```/g;
141
- const match = jsonBlockPattern.exec(input);
142
- if (!match) {
143
- return input;
144
- }
145
- if (match.length === 3) {
146
- return match[2];
147
- }
148
- if (match.length === 2) {
149
- return match[1];
150
- }
151
- return input;
152
- };
153
- //# sourceMappingURL=extract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../src/dsp/extract.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- import type { AxAIService, AxChatRequest, AxFunction, AxRateLimiterFunction } from '../ai/types.js';
2
- import { type AxChatResponseFunctionCall } from '../funcs/functions.js';
3
- import { type AxAIMemory, AxMemory } from '../mem/index.js';
4
- import { type AxTracer } from '../trace/index.js';
5
- import { type AxAssertion, type AxStreamingAssertion } from './asserts.js';
6
- import { type AxGenIn, type AxGenOut, AxProgram, type AxProgramForwardOptions } from './program.js';
7
- import { AxPromptTemplate } from './prompt.js';
8
- import { AxSignature } from './sig.js';
9
- export interface AxGenerateOptions {
10
- maxCompletions?: number;
11
- maxRetries?: number;
12
- maxSteps?: number;
13
- mem?: AxAIMemory;
14
- tracer?: AxTracer;
15
- rateLimiter?: AxRateLimiterFunction;
16
- stream?: boolean;
17
- debug?: boolean;
18
- functions?: AxFunction[];
19
- functionCall?: AxChatRequest['functionCall'];
20
- promptTemplate?: typeof AxPromptTemplate;
21
- asserts?: AxAssertion[];
22
- streamingAsserts?: AxStreamingAssertion[];
23
- }
24
- export type AxGenerateResult<OUT extends AxGenOut> = OUT & {
25
- functions?: AxChatResponseFunctionCall[];
26
- };
27
- export interface AxResponseHandlerArgs<T> {
28
- res: T;
29
- usageInfo: {
30
- ai: string;
31
- model: string;
32
- };
33
- mem: AxAIMemory;
34
- sessionId?: string;
35
- traceId?: string;
36
- }
37
- export declare class AxGenerate<IN extends AxGenIn = AxGenIn, OUT extends AxGenerateResult<AxGenOut> = AxGenerateResult<AxGenOut>> extends AxProgram<IN, OUT> {
38
- private pt;
39
- private asserts;
40
- private streamingAsserts;
41
- private options?;
42
- private funcProc?;
43
- private functionList?;
44
- constructor(ai: AxAIService, signature: Readonly<AxSignature | string>, options?: Readonly<AxGenerateOptions>);
45
- private updateSigForFunctions;
46
- addAssert: (fn: AxAssertion["fn"], message?: string, optional?: boolean) => void;
47
- addStreamingAssert: (fieldName: string, fn: AxStreamingAssertion["fn"], message?: string, optional?: boolean) => void;
48
- private forwardSendRequest;
49
- private forwardCore;
50
- private processSteamingResponse;
51
- private processResponse;
52
- private _forward;
53
- forward(values: IN, options?: Readonly<AxProgramForwardOptions>): Promise<OUT>;
54
- processFunctions: (functionCalls: readonly AxChatResponseFunctionCall[], mem: Readonly<AxMemory>, sessionId?: string, traceId?: string) => Promise<void>;
55
- }
@@ -1,314 +0,0 @@
1
- import { ReadableStream } from 'stream/web';
2
- import { mergeFunctionCalls } from '../ai/util.js';
3
- import { AxFunctionProcessor } from '../funcs/functions.js';
4
- import { AxMemory } from '../mem/index.js';
5
- import { AxSpanKind } from '../trace/index.js';
6
- import { assertAssertions, assertRequiredFields, assertStreamingAssertions, AxAssertionError } from './asserts.js';
7
- import { extractValues, streamingExtractValues, ValidationError } from './extract.js';
8
- import { AxProgram } from './program.js';
9
- import { AxPromptTemplate } from './prompt.js';
10
- import { AxSignature } from './sig.js';
11
- export class AxGenerate extends AxProgram {
12
- pt;
13
- asserts;
14
- streamingAsserts;
15
- options;
16
- funcProc;
17
- functionList;
18
- constructor(ai, signature, options) {
19
- super(ai, signature);
20
- this.options = options;
21
- this.pt = new (options?.promptTemplate ?? AxPromptTemplate)(this.signature);
22
- this.asserts = this.options?.asserts ?? [];
23
- this.streamingAsserts = this.options?.streamingAsserts ?? [];
24
- this.functionList = this.options?.functions?.map((f) => f.name).join(', ');
25
- this.usage = [];
26
- if (this.options?.functions) {
27
- this.funcProc = new AxFunctionProcessor(this.options?.functions);
28
- this.updateSigForFunctions();
29
- }
30
- }
31
- updateSigForFunctions = () => {
32
- // AI supports function calling natively so
33
- // no need to add fields for function call
34
- if (this.ai.getFeatures().functions) {
35
- return;
36
- }
37
- // These are the fields for the function call only needed when the underlying LLM API does not support function calling natively in the API.
38
- this.signature.addOutputField({
39
- name: 'functionName',
40
- description: 'Name of function to call',
41
- isOptional: true
42
- });
43
- this.signature.addOutputField({
44
- name: 'functionArguments',
45
- description: 'Arguments of function to call',
46
- isOptional: true
47
- });
48
- };
49
- addAssert = (fn, message, optional) => {
50
- this.asserts.push({ fn, message, optional });
51
- };
52
- addStreamingAssert = (fieldName, fn, message, optional) => {
53
- this.streamingAsserts.push({ fieldName, fn, message, optional });
54
- };
55
- async forwardSendRequest({ mem, sessionId, traceId, ai, modelConfig: mc, stream, model, rateLimiter }) {
56
- const chatPrompt = mem?.history(sessionId) ?? [];
57
- if (chatPrompt.length === 0) {
58
- throw new Error('No chat prompt found');
59
- }
60
- const functions = this.options?.functions;
61
- const functionCall = this.options?.functionCall;
62
- const hasJSON = this.signature
63
- .getOutputFields()
64
- .some((f) => f?.type?.name === 'json' || f?.type?.isArray);
65
- const modelConfig = mc
66
- ? {
67
- ...mc,
68
- ...(hasJSON ? { outputFormat: 'json_object' } : {})
69
- }
70
- : undefined;
71
- const res = await ai.chat({
72
- chatPrompt,
73
- functions,
74
- functionCall,
75
- modelConfig,
76
- ...(model ? { model } : {})
77
- }, {
78
- ...(sessionId ? { sessionId } : {}),
79
- ...(traceId ? { traceId } : {}),
80
- ...(rateLimiter ? { rateLimiter } : {}),
81
- stream
82
- });
83
- return res;
84
- }
85
- async forwardCore({ mem, sessionId, traceId, ai, modelConfig, rateLimiter, stream = false }) {
86
- const usageInfo = {
87
- ai: this.ai.getName(),
88
- model: this.ai.getModelInfo().name
89
- };
90
- const res = await this.forwardSendRequest({
91
- mem,
92
- sessionId,
93
- traceId,
94
- ai,
95
- stream,
96
- modelConfig,
97
- rateLimiter
98
- });
99
- if (res instanceof ReadableStream) {
100
- return (await this.processSteamingResponse({
101
- res,
102
- usageInfo,
103
- mem,
104
- traceId,
105
- sessionId
106
- }));
107
- }
108
- return (await this.processResponse({
109
- res,
110
- usageInfo,
111
- mem,
112
- traceId,
113
- sessionId
114
- }));
115
- }
116
- async processSteamingResponse({ res, usageInfo, mem, sessionId, traceId }) {
117
- const functionCalls = [];
118
- const values = {};
119
- const xstate = { s: -1 };
120
- let content = '';
121
- for await (const v of res) {
122
- for (const result of v.results ?? []) {
123
- if (v.modelUsage) {
124
- this.usage.push({ ...usageInfo, ...v.modelUsage });
125
- }
126
- if (result.content) {
127
- content += result.content;
128
- mem.updateResult({ name: result.name, content }, sessionId);
129
- assertStreamingAssertions(this.streamingAsserts, values, xstate, content);
130
- streamingExtractValues(this.signature, values, xstate, content);
131
- assertAssertions(this.asserts, values);
132
- }
133
- if (result.functionCalls) {
134
- mergeFunctionCalls(functionCalls, result.functionCalls);
135
- mem.updateResult({ name: result.name, content, functionCalls }, sessionId);
136
- }
137
- if (result.finishReason === 'length') {
138
- throw new Error('Max tokens reached before completion');
139
- }
140
- }
141
- }
142
- const funcs = parseFunctions(this.ai, functionCalls, values);
143
- if (funcs) {
144
- await this.processFunctions(funcs, mem, sessionId, traceId);
145
- }
146
- // streamingExtractFinalValue(values, xstate, content);
147
- // assertAssertions(this.asserts, values);
148
- return { ...values };
149
- }
150
- async processResponse({ res, usageInfo, mem, sessionId, traceId }) {
151
- const values = {};
152
- for (const result of res.results ?? []) {
153
- if (res.modelUsage) {
154
- this.usage.push({ ...usageInfo, ...res.modelUsage });
155
- }
156
- mem.addResult(result, sessionId);
157
- if (result.content) {
158
- extractValues(this.signature, values, result.content);
159
- assertAssertions(this.asserts, values);
160
- }
161
- if (result.functionCalls) {
162
- const funcs = parseFunctions(this.ai, result.functionCalls, values);
163
- if (funcs) {
164
- await this.processFunctions(funcs, mem, sessionId, traceId);
165
- }
166
- }
167
- if (result.finishReason === 'length') {
168
- throw new Error('Max tokens reached before completion');
169
- }
170
- }
171
- return { ...values };
172
- }
173
- async _forward(values, options, span) {
174
- const maxRetries = this.options?.maxRetries ?? options?.maxRetries ?? 5;
175
- const maxSteps = this.options?.maxSteps ?? options?.maxSteps ?? 10;
176
- const mem = this.options?.mem ?? options?.mem ?? new AxMemory();
177
- const canStream = this.ai.getFeatures().streaming;
178
- let err;
179
- if (this.sigHash !== this.signature.hash()) {
180
- const promptTemplate = this.options?.promptTemplate ?? AxPromptTemplate;
181
- this.pt = new promptTemplate(this.signature);
182
- }
183
- const prompt = this.pt.render(values, {
184
- examples: this.examples,
185
- demos: this.demos
186
- });
187
- const userMsg = { role: 'user', content: prompt };
188
- mem.add(userMsg, options?.sessionId);
189
- for (let i = 0; i < maxRetries; i++) {
190
- try {
191
- for (let n = 0; n < maxSteps; n++) {
192
- const { sessionId, traceId, modelConfig, stream: doStream } = options ?? {};
193
- const stream = canStream && doStream;
194
- const output = await this.forwardCore({
195
- ai: options?.ai ?? this.ai,
196
- mem,
197
- sessionId,
198
- traceId,
199
- modelConfig,
200
- stream,
201
- maxSteps: options?.maxSteps,
202
- rateLimiter: options?.rateLimiter
203
- });
204
- const lastMemItem = mem.getLast(sessionId);
205
- if (lastMemItem?.role !== 'function') {
206
- assertRequiredFields(this.signature, output);
207
- this.trace = { ...output };
208
- return output;
209
- }
210
- }
211
- throw new Error('Could not complete task within maximum allowed steps');
212
- }
213
- catch (e) {
214
- let extraFields;
215
- span?.recordAxSpanException(e);
216
- if (e instanceof ValidationError) {
217
- extraFields = e.getFixingInstructions();
218
- err = e;
219
- }
220
- else if (e instanceof AxAssertionError) {
221
- const e1 = e;
222
- extraFields = e1.getFixingInstructions(this.signature);
223
- err = e;
224
- }
225
- else {
226
- throw e;
227
- }
228
- if (extraFields) {
229
- const content = this.pt.renderExtraFields(extraFields);
230
- const userMsg = {
231
- role: 'user',
232
- content
233
- };
234
- mem.add(userMsg, options?.sessionId);
235
- if (options?.debug) {
236
- console.log('Error Correction:', content);
237
- }
238
- }
239
- }
240
- }
241
- if (err instanceof AxAssertionError && err.getOptional()) {
242
- return err.getValue();
243
- }
244
- throw new Error(`Unable to fix validation error: ${err?.message}`);
245
- }
246
- async forward(values, options) {
247
- const tracer = this.options?.tracer ?? options?.tracer;
248
- if (!tracer) {
249
- return await this._forward(values, options);
250
- }
251
- const attributes = {
252
- ['generate.signature']: this.signature.toString(),
253
- ['generate.functions']: this.functionList ?? 'none'
254
- };
255
- return await tracer.startActiveSpan('Generate', {
256
- kind: AxSpanKind.SERVER,
257
- attributes
258
- }, async (span) => {
259
- const res = this._forward(values, options, span);
260
- span.end();
261
- return res;
262
- });
263
- }
264
- processFunctions = async (functionCalls, mem, sessionId, traceId) => {
265
- // Map each function call to a promise that resolves to the function result or null
266
- const promises = functionCalls.map((func) => this.funcProc?.execute(func, { sessionId, traceId }).then((fres) => {
267
- if (fres?.id) {
268
- return {
269
- role: 'function',
270
- result: fres.result ?? '',
271
- functionId: fres.id
272
- };
273
- }
274
- return null; // Returning null for function calls that don't meet the condition
275
- }));
276
- // Wait for all promises to resolve
277
- const results = await Promise.all(promises);
278
- results.forEach((result) => {
279
- if (result) {
280
- mem.add(result, sessionId);
281
- }
282
- });
283
- };
284
- }
285
- function parseFunctions(ai, functionCalls, values) {
286
- if (!functionCalls || functionCalls.length === 0) {
287
- return;
288
- }
289
- if (ai.getFeatures().functions) {
290
- const funcs = functionCalls.map((f) => ({
291
- id: f.id,
292
- name: f.function.name,
293
- args: f.function.params
294
- }));
295
- // for (const [i, f] of funcs.entries()) {
296
- // values['functionName' + i] = f.name;
297
- // values['functionArguments' + i] =
298
- // typeof f.args === 'object' ? JSON.stringify(f.args) : f.args;
299
- // }
300
- return funcs;
301
- }
302
- else if (values.functionName) {
303
- const { functionName, functionArguments } = values;
304
- delete values.functionName;
305
- delete values.functionArguments;
306
- return [
307
- {
308
- name: functionName,
309
- args: functionArguments
310
- }
311
- ];
312
- }
313
- }
314
- //# sourceMappingURL=generate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../src/dsp/generate.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,41 +0,0 @@
1
- import test from 'ava';
2
- import { extractValues } from './extract.js';
3
- import { AxSignature } from './sig.js';
4
- test('extractValues', (t) => {
5
- const sig = new AxSignature(`question -> answer`);
6
- const v1 = {};
7
- extractValues(sig, v1, `Answer: "hello world"`);
8
- t.deepEqual(v1, { answer: '"hello world"' });
9
- });
10
- /*
11
- test('extractValues with no prefix and single output', (t) => {
12
- const sig = new Signature(`question -> answer`);
13
- const v1 = {};
14
- extractValues(sig, v1, `"hello world"`);
15
-
16
- t.deepEqual(v1, { answer: '"hello world"' });
17
- });
18
- */
19
- test('extractValues with json', (t) => {
20
- const sig = new AxSignature(`question -> answer : json`);
21
- const v1 = {};
22
- extractValues(sig, v1, 'Answer: ```json\n{"hello": "world"}\n```');
23
- t.deepEqual(v1, { answer: { hello: 'world' } });
24
- });
25
- test('extractValues with text values', (t) => {
26
- const sig = new AxSignature(`someText -> title, keyPoints, description`);
27
- const v1 = {};
28
- extractValues(sig, v1, `
29
- Title: Coastal Ecosystem Restoration
30
-
31
- Key Points: Coastal regions prone to natural disasters, Selection criteria based on vulnerability indices and population density, Climate risk assessments conducted for sea-level rise and extreme weather events, Targeted ecosystems include mangrove forests, coral reefs, wetlands
32
-
33
- Description: The project focuses on coastal regions vulnerable to natural disasters like hurricanes and flooding. Selection criteria included vulnerability indices, population density, and proximity to critical infrastructure. Climate risk assessments identified risks related to sea-level rise, storm surges, and extreme weather events. Targeted ecosystems encompass mangrove forests, coral reefs, and wetlands that provide coastal protection, biodiversity support, and livelihood opportunities for local communities.
34
- `);
35
- t.deepEqual(v1, {
36
- title: 'Coastal Ecosystem Restoration',
37
- keyPoints: 'Coastal regions prone to natural disasters, Selection criteria based on vulnerability indices and population density, Climate risk assessments conducted for sea-level rise and extreme weather events, Targeted ecosystems include mangrove forests, coral reefs, wetlands',
38
- description: 'The project focuses on coastal regions vulnerable to natural disasters like hurricanes and flooding. Selection criteria included vulnerability indices, population density, and proximity to critical infrastructure. Climate risk assessments identified risks related to sea-level rise, storm surges, and extreme weather events. Targeted ecosystems encompass mangrove forests, coral reefs, and wetlands that provide coastal protection, biodiversity support, and livelihood opportunities for local communities.'
39
- });
40
- });
41
- //# sourceMappingURL=generate.test.js.map