@ax-llm/ax 9.0.19 → 9.0.21
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.
- package/package.json +33 -85
- package/CHANGELOG.md +0 -184
- package/LICENSE +0 -201
- package/README.md +0 -569
- package/build/module/docs/assets/icons.d.ts +0 -1
- package/build/module/docs/assets/icons.js +0 -19
- package/build/module/docs/assets/icons.js.map +0 -1
- package/build/module/docs/assets/main.d.ts +0 -1
- package/build/module/docs/assets/main.js +0 -629
- package/build/module/docs/assets/main.js.map +0 -1
- package/build/module/docs/assets/navigation.d.ts +0 -1
- package/build/module/docs/assets/navigation.js +0 -3
- package/build/module/docs/assets/navigation.js.map +0 -1
- package/build/module/docs/assets/search.d.ts +0 -1
- package/build/module/docs/assets/search.js +0 -3
- package/build/module/docs/assets/search.js.map +0 -1
- package/build/module/src/ai/anthropic/api.d.ts +0 -19
- package/build/module/src/ai/anthropic/api.js +0 -326
- package/build/module/src/ai/anthropic/api.js.map +0 -1
- package/build/module/src/ai/anthropic/index.d.ts +0 -2
- package/build/module/src/ai/anthropic/index.js +0 -3
- package/build/module/src/ai/anthropic/index.js.map +0 -1
- package/build/module/src/ai/anthropic/info.d.ts +0 -2
- package/build/module/src/ai/anthropic/info.js +0 -40
- package/build/module/src/ai/anthropic/info.js.map +0 -1
- package/build/module/src/ai/anthropic/types.d.ts +0 -171
- package/build/module/src/ai/anthropic/types.js +0 -10
- package/build/module/src/ai/anthropic/types.js.map +0 -1
- package/build/module/src/ai/azure-openai/api.d.ts +0 -19
- package/build/module/src/ai/azure-openai/api.js +0 -30
- package/build/module/src/ai/azure-openai/api.js.map +0 -1
- package/build/module/src/ai/azure-openai/index.d.ts +0 -1
- package/build/module/src/ai/azure-openai/index.js +0 -2
- package/build/module/src/ai/azure-openai/index.js.map +0 -1
- package/build/module/src/ai/balance.d.ts +0 -23
- package/build/module/src/ai/balance.js +0 -87
- package/build/module/src/ai/balance.js.map +0 -1
- package/build/module/src/ai/base.d.ts +0 -55
- package/build/module/src/ai/base.js +0 -343
- package/build/module/src/ai/base.js.map +0 -1
- package/build/module/src/ai/cohere/api.d.ts +0 -22
- package/build/module/src/ai/cohere/api.js +0 -264
- package/build/module/src/ai/cohere/api.js.map +0 -1
- package/build/module/src/ai/cohere/index.d.ts +0 -2
- package/build/module/src/ai/cohere/index.js +0 -3
- package/build/module/src/ai/cohere/index.js.map +0 -1
- package/build/module/src/ai/cohere/info.d.ts +0 -2
- package/build/module/src/ai/cohere/info.js +0 -52
- package/build/module/src/ai/cohere/info.js.map +0 -1
- package/build/module/src/ai/cohere/types.d.ts +0 -102
- package/build/module/src/ai/cohere/types.js +0 -23
- package/build/module/src/ai/cohere/types.js.map +0 -1
- package/build/module/src/ai/deepseek/api.d.ts +0 -16
- package/build/module/src/ai/deepseek/api.js +0 -32
- package/build/module/src/ai/deepseek/api.js.map +0 -1
- package/build/module/src/ai/deepseek/index.d.ts +0 -2
- package/build/module/src/ai/deepseek/index.js +0 -3
- package/build/module/src/ai/deepseek/index.js.map +0 -1
- package/build/module/src/ai/deepseek/info.d.ts +0 -2
- package/build/module/src/ai/deepseek/info.js +0 -16
- package/build/module/src/ai/deepseek/info.js.map +0 -1
- package/build/module/src/ai/deepseek/types.d.ts +0 -8
- package/build/module/src/ai/deepseek/types.js +0 -10
- package/build/module/src/ai/deepseek/types.js.map +0 -1
- package/build/module/src/ai/google-gemini/api.d.ts +0 -36
- package/build/module/src/ai/google-gemini/api.js +0 -299
- package/build/module/src/ai/google-gemini/api.js.map +0 -1
- package/build/module/src/ai/google-gemini/index.d.ts +0 -2
- package/build/module/src/ai/google-gemini/index.js +0 -3
- package/build/module/src/ai/google-gemini/index.js.map +0 -1
- package/build/module/src/ai/google-gemini/info.d.ts +0 -6
- package/build/module/src/ai/google-gemini/info.js +0 -29
- package/build/module/src/ai/google-gemini/info.js.map +0 -1
- package/build/module/src/ai/google-gemini/types.d.ts +0 -146
- package/build/module/src/ai/google-gemini/types.js +0 -27
- package/build/module/src/ai/google-gemini/types.js.map +0 -1
- package/build/module/src/ai/groq/api.d.ts +0 -18
- package/build/module/src/ai/groq/api.js +0 -52
- package/build/module/src/ai/groq/api.js.map +0 -1
- package/build/module/src/ai/groq/index.d.ts +0 -1
- package/build/module/src/ai/groq/index.js +0 -2
- package/build/module/src/ai/groq/index.js.map +0 -1
- package/build/module/src/ai/groq/types.d.ts +0 -6
- package/build/module/src/ai/groq/types.js +0 -8
- package/build/module/src/ai/groq/types.js.map +0 -1
- package/build/module/src/ai/huggingface/api.d.ts +0 -19
- package/build/module/src/ai/huggingface/api.js +0 -115
- package/build/module/src/ai/huggingface/api.js.map +0 -1
- package/build/module/src/ai/huggingface/index.d.ts +0 -2
- package/build/module/src/ai/huggingface/index.js +0 -3
- package/build/module/src/ai/huggingface/index.js.map +0 -1
- package/build/module/src/ai/huggingface/info.d.ts +0 -6
- package/build/module/src/ai/huggingface/info.js +0 -6
- package/build/module/src/ai/huggingface/info.js.map +0 -1
- package/build/module/src/ai/huggingface/types.d.ts +0 -34
- package/build/module/src/ai/huggingface/types.js +0 -5
- package/build/module/src/ai/huggingface/types.js.map +0 -1
- package/build/module/src/ai/index.d.ts +0 -16
- package/build/module/src/ai/index.js +0 -16
- package/build/module/src/ai/index.js.map +0 -1
- package/build/module/src/ai/mistral/api.d.ts +0 -16
- package/build/module/src/ai/mistral/api.js +0 -32
- package/build/module/src/ai/mistral/api.js.map +0 -1
- package/build/module/src/ai/mistral/index.d.ts +0 -2
- package/build/module/src/ai/mistral/index.js +0 -3
- package/build/module/src/ai/mistral/index.js.map +0 -1
- package/build/module/src/ai/mistral/info.d.ts +0 -2
- package/build/module/src/ai/mistral/info.js +0 -34
- package/build/module/src/ai/mistral/info.js.map +0 -1
- package/build/module/src/ai/mistral/types.d.ts +0 -10
- package/build/module/src/ai/mistral/types.js +0 -13
- package/build/module/src/ai/mistral/types.js.map +0 -1
- package/build/module/src/ai/ollama/api.d.ts +0 -22
- package/build/module/src/ai/ollama/api.js +0 -32
- package/build/module/src/ai/ollama/api.js.map +0 -1
- package/build/module/src/ai/ollama/index.d.ts +0 -1
- package/build/module/src/ai/ollama/index.js +0 -2
- package/build/module/src/ai/ollama/index.js.map +0 -1
- package/build/module/src/ai/openai/api.d.ts +0 -29
- package/build/module/src/ai/openai/api.js +0 -283
- package/build/module/src/ai/openai/api.js.map +0 -1
- package/build/module/src/ai/openai/index.d.ts +0 -2
- package/build/module/src/ai/openai/index.js +0 -3
- package/build/module/src/ai/openai/index.js.map +0 -1
- package/build/module/src/ai/openai/info.d.ts +0 -6
- package/build/module/src/ai/openai/info.js +0 -50
- package/build/module/src/ai/openai/info.js.map +0 -1
- package/build/module/src/ai/openai/types.d.ts +0 -165
- package/build/module/src/ai/openai/types.js +0 -18
- package/build/module/src/ai/openai/types.js.map +0 -1
- package/build/module/src/ai/together/api.d.ts +0 -15
- package/build/module/src/ai/together/api.js +0 -28
- package/build/module/src/ai/together/api.js.map +0 -1
- package/build/module/src/ai/together/index.d.ts +0 -1
- package/build/module/src/ai/together/index.js +0 -2
- package/build/module/src/ai/together/index.js.map +0 -1
- package/build/module/src/ai/together/info.d.ts +0 -2
- package/build/module/src/ai/together/info.js +0 -2
- package/build/module/src/ai/together/info.js.map +0 -1
- package/build/module/src/ai/types.d.ts +0 -159
- package/build/module/src/ai/types.js +0 -2
- package/build/module/src/ai/types.js.map +0 -1
- package/build/module/src/ai/util.d.ts +0 -12
- package/build/module/src/ai/util.js +0 -63
- package/build/module/src/ai/util.js.map +0 -1
- package/build/module/src/ai/wrap.d.ts +0 -47
- package/build/module/src/ai/wrap.js +0 -95
- package/build/module/src/ai/wrap.js.map +0 -1
- package/build/module/src/db/base.d.ts +0 -23
- package/build/module/src/db/base.js +0 -87
- package/build/module/src/db/base.js.map +0 -1
- package/build/module/src/db/cloudflare.d.ts +0 -21
- package/build/module/src/db/cloudflare.js +0 -98
- package/build/module/src/db/cloudflare.js.map +0 -1
- package/build/module/src/db/index.d.ts +0 -6
- package/build/module/src/db/index.js +0 -7
- package/build/module/src/db/index.js.map +0 -1
- package/build/module/src/db/memory.d.ts +0 -21
- package/build/module/src/db/memory.js +0 -99
- package/build/module/src/db/memory.js.map +0 -1
- package/build/module/src/db/pinecone.d.ts +0 -21
- package/build/module/src/db/pinecone.js +0 -71
- package/build/module/src/db/pinecone.js.map +0 -1
- package/build/module/src/db/types.d.ts +0 -35
- package/build/module/src/db/types.js +0 -3
- package/build/module/src/db/types.js.map +0 -1
- package/build/module/src/db/weaviate.d.ts +0 -21
- package/build/module/src/db/weaviate.js +0 -127
- package/build/module/src/db/weaviate.js.map +0 -1
- package/build/module/src/db/wrap.d.ts +0 -13
- package/build/module/src/db/wrap.js +0 -35
- package/build/module/src/db/wrap.js.map +0 -1
- package/build/module/src/docs/index.d.ts +0 -4
- package/build/module/src/docs/index.js +0 -5
- package/build/module/src/docs/index.js.map +0 -1
- package/build/module/src/docs/manager.d.ts +0 -45
- package/build/module/src/docs/manager.js +0 -159
- package/build/module/src/docs/manager.js.map +0 -1
- package/build/module/src/docs/reranker.d.ts +0 -7
- package/build/module/src/docs/reranker.js +0 -26
- package/build/module/src/docs/reranker.js.map +0 -1
- package/build/module/src/docs/rewriter.d.ts +0 -4
- package/build/module/src/docs/rewriter.js +0 -9
- package/build/module/src/docs/rewriter.js.map +0 -1
- package/build/module/src/docs/tika.d.ts +0 -18
- package/build/module/src/docs/tika.js +0 -46
- package/build/module/src/docs/tika.js.map +0 -1
- package/build/module/src/dsp/asserts.d.ts +0 -32
- package/build/module/src/dsp/asserts.js +0 -91
- package/build/module/src/dsp/asserts.js.map +0 -1
- package/build/module/src/dsp/eval.d.ts +0 -43
- package/build/module/src/dsp/eval.js +0 -125
- package/build/module/src/dsp/eval.js.map +0 -1
- package/build/module/src/dsp/evaluate.d.ts +0 -12
- package/build/module/src/dsp/evaluate.js +0 -32
- package/build/module/src/dsp/evaluate.js.map +0 -1
- package/build/module/src/dsp/extract.d.ts +0 -25
- package/build/module/src/dsp/extract.js +0 -153
- package/build/module/src/dsp/extract.js.map +0 -1
- package/build/module/src/dsp/generate.d.ts +0 -55
- package/build/module/src/dsp/generate.js +0 -314
- package/build/module/src/dsp/generate.js.map +0 -1
- package/build/module/src/dsp/generate.test.d.ts +0 -1
- package/build/module/src/dsp/generate.test.js +0 -41
- package/build/module/src/dsp/generate.test.js.map +0 -1
- package/build/module/src/dsp/index.d.ts +0 -15
- package/build/module/src/dsp/index.js +0 -11
- package/build/module/src/dsp/index.js.map +0 -1
- package/build/module/src/dsp/loader.d.ts +0 -30
- package/build/module/src/dsp/loader.js +0 -81
- package/build/module/src/dsp/loader.js.map +0 -1
- package/build/module/src/dsp/optimize.d.ts +0 -27
- package/build/module/src/dsp/optimize.js +0 -95
- package/build/module/src/dsp/optimize.js.map +0 -1
- package/build/module/src/dsp/parser.d.ts +0 -87
- package/build/module/src/dsp/parser.js +0 -1542
- package/build/module/src/dsp/parser.js.map +0 -1
- package/build/module/src/dsp/program.d.ts +0 -73
- package/build/module/src/dsp/program.js +0 -116
- package/build/module/src/dsp/program.js.map +0 -1
- package/build/module/src/dsp/prompt.d.ts +0 -48
- package/build/module/src/dsp/prompt.js +0 -260
- package/build/module/src/dsp/prompt.js.map +0 -1
- package/build/module/src/dsp/registry.d.ts +0 -6
- package/build/module/src/dsp/registry.js +0 -15
- package/build/module/src/dsp/registry.js.map +0 -1
- package/build/module/src/dsp/router.d.ts +0 -26
- package/build/module/src/dsp/router.js +0 -71
- package/build/module/src/dsp/router.js.map +0 -1
- package/build/module/src/dsp/sig.d.ts +0 -37
- package/build/module/src/dsp/sig.js +0 -194
- package/build/module/src/dsp/sig.js.map +0 -1
- package/build/module/src/dsp/sig.test.d.ts +0 -1
- package/build/module/src/dsp/sig.test.js +0 -28
- package/build/module/src/dsp/sig.test.js.map +0 -1
- package/build/module/src/dsp/stopwords.d.ts +0 -1
- package/build/module/src/dsp/stopwords.js +0 -1164
- package/build/module/src/dsp/stopwords.js.map +0 -1
- package/build/module/src/dsp/strutil.d.ts +0 -11
- package/build/module/src/dsp/strutil.js +0 -60
- package/build/module/src/dsp/strutil.js.map +0 -1
- package/build/module/src/dsp/util.d.ts +0 -5
- package/build/module/src/dsp/util.js +0 -76
- package/build/module/src/dsp/util.js.map +0 -1
- package/build/module/src/funcs/code.d.ts +0 -9
- package/build/module/src/funcs/code.js +0 -63
- package/build/module/src/funcs/code.js.map +0 -1
- package/build/module/src/funcs/embed.d.ts +0 -6
- package/build/module/src/funcs/embed.js +0 -29
- package/build/module/src/funcs/embed.js.map +0 -1
- package/build/module/src/funcs/functions.d.ts +0 -16
- package/build/module/src/funcs/functions.js +0 -55
- package/build/module/src/funcs/functions.js.map +0 -1
- package/build/module/src/funcs/index.d.ts +0 -3
- package/build/module/src/funcs/index.js +0 -4
- package/build/module/src/funcs/index.js.map +0 -1
- package/build/module/src/funcs/jsonschema.d.ts +0 -2
- package/build/module/src/funcs/jsonschema.js +0 -97
- package/build/module/src/funcs/jsonschema.js.map +0 -1
- package/build/module/src/index.d.ts +0 -9
- package/build/module/src/index.js.map +0 -1
- package/build/module/src/mem/index.d.ts +0 -2
- package/build/module/src/mem/index.js +0 -3
- package/build/module/src/mem/index.js.map +0 -1
- package/build/module/src/mem/memory.d.ts +0 -16
- package/build/module/src/mem/memory.js +0 -77
- package/build/module/src/mem/memory.js.map +0 -1
- package/build/module/src/mem/types.d.ts +0 -10
- package/build/module/src/mem/types.js +0 -2
- package/build/module/src/mem/types.js.map +0 -1
- package/build/module/src/prompts/agent.d.ts +0 -34
- package/build/module/src/prompts/agent.js +0 -108
- package/build/module/src/prompts/agent.js.map +0 -1
- package/build/module/src/prompts/cot.d.ts +0 -9
- package/build/module/src/prompts/cot.js +0 -17
- package/build/module/src/prompts/cot.js.map +0 -1
- package/build/module/src/prompts/index.d.ts +0 -4
- package/build/module/src/prompts/index.js +0 -5
- package/build/module/src/prompts/index.js.map +0 -1
- package/build/module/src/prompts/prompts.test.d.ts +0 -1
- package/build/module/src/prompts/prompts.test.js +0 -54
- package/build/module/src/prompts/prompts.test.js.map +0 -1
- package/build/module/src/prompts/rag.d.ts +0 -23
- package/build/module/src/prompts/rag.js +0 -30
- package/build/module/src/prompts/rag.js.map +0 -1
- package/build/module/src/prompts/react.d.ts +0 -8
- package/build/module/src/prompts/react.js +0 -22
- package/build/module/src/prompts/react.js.map +0 -1
- package/build/module/src/trace/index.d.ts +0 -171
- package/build/module/src/trace/index.js +0 -67
- package/build/module/src/trace/index.js.map +0 -1
- package/build/module/src/util/apicall.d.ts +0 -18
- package/build/module/src/util/apicall.js +0 -50
- package/build/module/src/util/apicall.js.map +0 -1
- package/build/module/src/util/log.d.ts +0 -14
- package/build/module/src/util/log.js +0 -31
- package/build/module/src/util/log.js.map +0 -1
- package/build/module/src/util/other.d.ts +0 -1
- package/build/module/src/util/other.js +0 -5
- package/build/module/src/util/other.js.map +0 -1
- package/build/module/src/util/rate-limit.d.ts +0 -24
- package/build/module/src/util/rate-limit.js +0 -49
- package/build/module/src/util/rate-limit.js.map +0 -1
- package/build/module/src/util/stream.d.ts +0 -9
- package/build/module/src/util/stream.js +0 -29
- package/build/module/src/util/stream.js.map +0 -1
- package/build/module/src/util/transform.d.ts +0 -7
- package/build/module/src/util/transform.js +0 -59
- package/build/module/src/util/transform.js.map +0 -1
- /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
|