@delofarag/ai-utils 1.2.0 → 1.3.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.
- package/dist/functions/answerers/ask.d.ts +6 -0
- package/dist/functions/answerers/ask.d.ts.map +1 -0
- package/dist/functions/answerers/ask.js +14 -0
- package/dist/functions/answerers/ask.js.map +1 -0
- package/dist/functions/answerers/websearch.d.ts +2 -0
- package/dist/functions/answerers/websearch.d.ts.map +1 -0
- package/dist/functions/answerers/websearch.js +19 -0
- package/dist/functions/answerers/websearch.js.map +1 -0
- package/dist/functions/evaluators/classify.d.ts +23 -0
- package/dist/functions/evaluators/classify.d.ts.map +1 -0
- package/dist/functions/evaluators/classify.js +61 -0
- package/dist/functions/evaluators/classify.js.map +1 -0
- package/dist/functions/evaluators/decide.d.ts +22 -0
- package/dist/functions/evaluators/decide.d.ts.map +1 -0
- package/dist/functions/evaluators/decide.js +52 -0
- package/dist/functions/evaluators/decide.js.map +1 -0
- package/dist/functions/optimizers/promptify.d.ts +8 -0
- package/dist/functions/optimizers/promptify.d.ts.map +1 -0
- package/dist/functions/optimizers/promptify.js +48 -0
- package/dist/functions/optimizers/promptify.js.map +1 -0
- package/dist/functions/optimizers/ragify.d.ts +6 -0
- package/dist/functions/optimizers/ragify.d.ts.map +1 -0
- package/dist/functions/optimizers/ragify.js +40 -0
- package/dist/functions/optimizers/ragify.js.map +1 -0
- package/dist/functions/parsers/extract.d.ts +9 -0
- package/dist/functions/parsers/extract.d.ts.map +1 -0
- package/dist/functions/parsers/extract.js +37 -0
- package/dist/functions/parsers/extract.js.map +1 -0
- package/dist/functions/parsers/normalize.d.ts +9 -0
- package/dist/functions/parsers/normalize.d.ts.map +1 -0
- package/dist/functions/parsers/normalize.js +63 -0
- package/dist/functions/parsers/normalize.js.map +1 -0
- package/dist/functions/parsers/structure.d.ts +9 -0
- package/dist/functions/parsers/structure.d.ts.map +1 -0
- package/dist/functions/parsers/structure.js +36 -0
- package/dist/functions/parsers/structure.js.map +1 -0
- package/dist/functions/parsers/summarize.d.ts +8 -0
- package/dist/functions/parsers/summarize.d.ts.map +1 -0
- package/dist/functions/parsers/summarize.js +46 -0
- package/dist/functions/parsers/summarize.js.map +1 -0
- package/dist/heart/agent.d.ts.map +1 -1
- package/dist/heart/agent.js +2 -1
- package/dist/heart/agent.js.map +1 -1
- package/dist/heart/tools/Tavily.d.ts +110 -0
- package/dist/heart/tools/Tavily.d.ts.map +1 -0
- package/dist/heart/tools/Tavily.js +135 -0
- package/dist/heart/tools/Tavily.js.map +1 -0
- package/dist/helpers.d.ts +1 -56
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +2 -202
- package/dist/helpers.js.map +1 -1
- package/dist/memory.js +2 -2
- package/dist/memory.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../../src/functions/parsers/summarize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAC5B,GAAG,GAAG,MAAM,CAAC,EAAC,IAAI,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,EAAC,CAAC,EACvE,IAAI,EACJ,MAAM,EACN,QAAQ,GAAG,GAAG,EAMf;IACG,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACnF,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC;QAC7C,CAAC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;sBAqBG,QAAQ;;;YAGlB,MAAM,CAAC,CAAC,CAAC;;cAEP,MAAM;;WAET,CAAC,CAAC,CAAC,EAAE;;;WAGL,CAAC;QACF,CAAC,OAAO,EAAC,SAAS,CAAC;KACtB,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAC,GAAG,EAAC,IAAI,kBAAkB,EAAE,CAAC,CAAA;IACpE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAC,WAAW,EAAE,CAAC,CAAA;IACxD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,qBAAqB,EAAC,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAOxC,UAAU,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,EAAC,GAAG,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,KAAK,EAAE,qBAAqB,EAAE,CAAA;IAC9B,GAAG,EAAE,aAAa,CAAA;IAClB,MAAM,CAAC,EAAE,CAAC,CAAA;IACV,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,EAAC,GAAG,CAAC;IAC7C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,iBAAiB,CAAgB;gBAE7B,EACR,MAA6C,EAC7C,KAAK,EACL,GAAG,EACH,MAAM,EACN,MAAM,EACT,EAAE,UAAU,CAAC,CAAC,CAAC;IAeH,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAqCrI,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAevJ,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAgBrF,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAUjC,YAAY;IAOZ,UAAU,IAAI,OAAO;IAIrB,OAAO,CAAC,IAAI,EAAC,qBAAqB;IAIzC,IAAW,YAAY,IAAI,MAAM,EAAE,CAMlC;CACJ"}
|
package/dist/heart/agent.js
CHANGED
|
@@ -3,7 +3,8 @@ import { DynamicStructuredTool } from "../imports";
|
|
|
3
3
|
import { turn_to_docs } from "../rag";
|
|
4
4
|
import { createReactAgent } from "../imports";
|
|
5
5
|
import { HumanMessage } from "../imports";
|
|
6
|
-
import {
|
|
6
|
+
import { stream } from "../helpers";
|
|
7
|
+
import { structure } from "../functions/parsers/structure";
|
|
7
8
|
/**
|
|
8
9
|
* CONSTRUCTOR:
|
|
9
10
|
* @example constructor({
|
package/dist/heart/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { DynamicStructuredTool } from "@langchain/core/tools";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
export type TavilyTopic = "general" | "news" | "finance";
|
|
4
|
+
export type TavilySearchDepth = "basic" | "advanced";
|
|
5
|
+
export type TavilyTimeRange = "day" | "week" | "month" | "year";
|
|
6
|
+
/**
|
|
7
|
+
* Tavily `include_answer` kann laut API-Doku:
|
|
8
|
+
* - false/true
|
|
9
|
+
* - "basic" (quick answer)
|
|
10
|
+
* - "advanced" (detailed answer)
|
|
11
|
+
*/
|
|
12
|
+
export type TavilyIncludeAnswer = boolean | "basic" | "advanced";
|
|
13
|
+
export type TavilyRawContentMode = boolean | "markdown" | "text";
|
|
14
|
+
export type TavilyImageResult = string | {
|
|
15
|
+
url: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
};
|
|
18
|
+
export type TavilySearchResult = {
|
|
19
|
+
title: string;
|
|
20
|
+
url: string;
|
|
21
|
+
content: string;
|
|
22
|
+
score: number;
|
|
23
|
+
raw_content?: string | null;
|
|
24
|
+
published_date?: string;
|
|
25
|
+
};
|
|
26
|
+
export type TavilySearchResponse = {
|
|
27
|
+
query: string;
|
|
28
|
+
answer?: string;
|
|
29
|
+
images?: TavilyImageResult[];
|
|
30
|
+
results: TavilySearchResult[];
|
|
31
|
+
response_time: number;
|
|
32
|
+
request_id?: string;
|
|
33
|
+
usage?: {
|
|
34
|
+
credits: number;
|
|
35
|
+
};
|
|
36
|
+
auto_parameters?: Record<string, unknown>;
|
|
37
|
+
follow_up_questions?: unknown;
|
|
38
|
+
};
|
|
39
|
+
export type TavilySearchInit = {
|
|
40
|
+
tavilyApiKey?: string;
|
|
41
|
+
apiBaseUrl?: string;
|
|
42
|
+
maxResults?: number;
|
|
43
|
+
topic?: TavilyTopic;
|
|
44
|
+
searchDepth?: TavilySearchDepth;
|
|
45
|
+
timeRange?: TavilyTimeRange;
|
|
46
|
+
startDate?: string;
|
|
47
|
+
endDate?: string;
|
|
48
|
+
days?: number;
|
|
49
|
+
country?: string;
|
|
50
|
+
includeDomains?: string[];
|
|
51
|
+
excludeDomains?: string[];
|
|
52
|
+
includeAnswer?: TavilyIncludeAnswer;
|
|
53
|
+
includeRawContent?: TavilyRawContentMode;
|
|
54
|
+
includeImages?: boolean;
|
|
55
|
+
includeImageDescriptions?: boolean;
|
|
56
|
+
includeUsage?: boolean;
|
|
57
|
+
autoParameters?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Optional: nur wenn du exakt das LangChain-Verhalten willst,
|
|
60
|
+
* dass includeAnswer/includeRawContent nicht pro invoke überschrieben werden dürfen.
|
|
61
|
+
* (LangChain-Doku nennt diese Einschränkung.) :contentReference[oaicite:2]{index=2}
|
|
62
|
+
*/
|
|
63
|
+
lockResponseSizeParams?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Optionaler Default Timeout in ms
|
|
66
|
+
*/
|
|
67
|
+
timeoutMs?: number;
|
|
68
|
+
};
|
|
69
|
+
export type TavilySearchInvoke = {
|
|
70
|
+
query: string;
|
|
71
|
+
maxResults?: number;
|
|
72
|
+
topic?: TavilyTopic;
|
|
73
|
+
searchDepth?: TavilySearchDepth;
|
|
74
|
+
timeRange?: TavilyTimeRange;
|
|
75
|
+
startDate?: string;
|
|
76
|
+
endDate?: string;
|
|
77
|
+
includeDomains?: string[];
|
|
78
|
+
excludeDomains?: string[];
|
|
79
|
+
includeImages?: boolean;
|
|
80
|
+
includeImageDescriptions?: boolean;
|
|
81
|
+
includeUsage?: boolean;
|
|
82
|
+
autoParameters?: boolean;
|
|
83
|
+
includeAnswer?: TavilyIncludeAnswer;
|
|
84
|
+
includeRawContent?: TavilyRawContentMode;
|
|
85
|
+
/**
|
|
86
|
+
* Optional: AbortSignal (z.B. Timeout/Cancel)
|
|
87
|
+
*/
|
|
88
|
+
signal?: AbortSignal;
|
|
89
|
+
};
|
|
90
|
+
export declare class TavilySearch {
|
|
91
|
+
readonly name = "tavily_search";
|
|
92
|
+
readonly description = "Search the web with Tavily and return LLM-friendly results with sources.";
|
|
93
|
+
private readonly apiKey;
|
|
94
|
+
private readonly baseUrl;
|
|
95
|
+
private readonly defaults;
|
|
96
|
+
constructor(params?: TavilySearchInit);
|
|
97
|
+
invoke(input: TavilySearchInvoke): Promise<TavilySearchResponse>;
|
|
98
|
+
}
|
|
99
|
+
export declare const tavilySearchTool: DynamicStructuredTool<z.ZodObject<{
|
|
100
|
+
query: z.ZodString;
|
|
101
|
+
}, "strip", z.ZodTypeAny, {
|
|
102
|
+
query: string;
|
|
103
|
+
}, {
|
|
104
|
+
query: string;
|
|
105
|
+
}>, {
|
|
106
|
+
query: string;
|
|
107
|
+
}, {
|
|
108
|
+
query: string;
|
|
109
|
+
}, TavilySearchResponse>;
|
|
110
|
+
//# sourceMappingURL=Tavily.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tavily.d.ts","sourceRoot":"","sources":["../../../src/heart/tools/Tavily.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { DynamicStructuredTool } from "@langchain/core/tools";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
export class TavilySearch {
|
|
4
|
+
name = "tavily_search";
|
|
5
|
+
description = "Search the web with Tavily and return LLM-friendly results with sources.";
|
|
6
|
+
apiKey;
|
|
7
|
+
baseUrl;
|
|
8
|
+
// defaults
|
|
9
|
+
defaults;
|
|
10
|
+
constructor(params = {}) {
|
|
11
|
+
const apiKey = params.tavilyApiKey ?? process.env.TAVILY_API_KEY;
|
|
12
|
+
if (!apiKey) {
|
|
13
|
+
throw new Error("Missing Tavily API key. Provide `tavilyApiKey` or set process.env.TAVILY_API_KEY.");
|
|
14
|
+
}
|
|
15
|
+
this.apiKey = apiKey;
|
|
16
|
+
this.baseUrl = (params.apiBaseUrl ?? "https://api.tavily.com").replace(/\/$/, "");
|
|
17
|
+
const { tavilyApiKey, apiBaseUrl, ...rest } = params;
|
|
18
|
+
this.defaults = rest;
|
|
19
|
+
}
|
|
20
|
+
async invoke(input) {
|
|
21
|
+
const lock = this.defaults.lockResponseSizeParams ?? true;
|
|
22
|
+
// Merge defaults -> per-call overrides
|
|
23
|
+
const merged = {
|
|
24
|
+
...this.defaults,
|
|
25
|
+
...input,
|
|
26
|
+
};
|
|
27
|
+
// If locked, disallow overriding includeAnswer/includeRawContent at call time
|
|
28
|
+
if (lock) {
|
|
29
|
+
if (typeof input.includeAnswer !== "undefined" &&
|
|
30
|
+
typeof this.defaults.includeAnswer !== "undefined" &&
|
|
31
|
+
input.includeAnswer !== this.defaults.includeAnswer) {
|
|
32
|
+
throw new Error("includeAnswer is locked (response-size sensitive). Set it in the constructor, not per invoke.");
|
|
33
|
+
}
|
|
34
|
+
if (typeof input.includeRawContent !== "undefined" &&
|
|
35
|
+
typeof this.defaults.includeRawContent !== "undefined" &&
|
|
36
|
+
input.includeRawContent !== this.defaults.includeRawContent) {
|
|
37
|
+
throw new Error("includeRawContent is locked (response-size sensitive). Set it in the constructor, not per invoke.");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Map camelCase -> Tavily API snake_case
|
|
41
|
+
const body = {
|
|
42
|
+
query: input.query,
|
|
43
|
+
};
|
|
44
|
+
// Tavily parameter names per API docs :contentReference[oaicite:3]{index=3}
|
|
45
|
+
if (merged.maxResults != null)
|
|
46
|
+
body.max_results = merged.maxResults;
|
|
47
|
+
if (merged.topic != null)
|
|
48
|
+
body.topic = merged.topic;
|
|
49
|
+
if (merged.searchDepth != null)
|
|
50
|
+
body.search_depth = merged.searchDepth;
|
|
51
|
+
if (merged.timeRange != null)
|
|
52
|
+
body.time_range = merged.timeRange;
|
|
53
|
+
if (merged.startDate != null)
|
|
54
|
+
body.start_date = merged.startDate;
|
|
55
|
+
if (merged.endDate != null)
|
|
56
|
+
body.end_date = merged.endDate;
|
|
57
|
+
if (merged.includeDomains != null)
|
|
58
|
+
body.include_domains = merged.includeDomains;
|
|
59
|
+
if (merged.excludeDomains != null)
|
|
60
|
+
body.exclude_domains = merged.excludeDomains;
|
|
61
|
+
if (merged.includeAnswer != null)
|
|
62
|
+
body.include_answer = merged.includeAnswer;
|
|
63
|
+
if (merged.includeRawContent != null)
|
|
64
|
+
body.include_raw_content = merged.includeRawContent;
|
|
65
|
+
if (merged.includeImages != null)
|
|
66
|
+
body.include_images = merged.includeImages;
|
|
67
|
+
if (merged.includeImageDescriptions != null)
|
|
68
|
+
body.include_image_descriptions = merged.includeImageDescriptions;
|
|
69
|
+
if (merged.includeUsage != null)
|
|
70
|
+
body.include_usage = merged.includeUsage;
|
|
71
|
+
if (merged.autoParameters != null)
|
|
72
|
+
body.auto_parameters = merged.autoParameters;
|
|
73
|
+
// Optional extras (country/days etc. exist in some Tavily wrappers; Tavily docs list a lot)
|
|
74
|
+
if (merged.country != null)
|
|
75
|
+
body.country = merged.country;
|
|
76
|
+
if (merged.days != null)
|
|
77
|
+
body.days = merged.days;
|
|
78
|
+
// Timeout support via AbortController (optional)
|
|
79
|
+
const timeoutMs = this.defaults.timeoutMs;
|
|
80
|
+
let controller;
|
|
81
|
+
let timeoutId;
|
|
82
|
+
const externalSignal = input.signal;
|
|
83
|
+
let signal = externalSignal;
|
|
84
|
+
if (timeoutMs && typeof AbortController !== "undefined") {
|
|
85
|
+
controller = new AbortController();
|
|
86
|
+
// if externalSignal aborts -> abort our controller too
|
|
87
|
+
if (externalSignal) {
|
|
88
|
+
externalSignal.addEventListener("abort", () => controller?.abort(externalSignal.reason), {
|
|
89
|
+
once: true,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
timeoutId = setTimeout(() => controller?.abort(new Error("Tavily request timeout")), timeoutMs);
|
|
93
|
+
signal = controller.signal;
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const res = await fetch(`${this.baseUrl}/search`, {
|
|
97
|
+
method: "POST",
|
|
98
|
+
headers: {
|
|
99
|
+
"Content-Type": "application/json",
|
|
100
|
+
// Auth per Tavily API reference :contentReference[oaicite:4]{index=4}
|
|
101
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
102
|
+
},
|
|
103
|
+
body: JSON.stringify(body),
|
|
104
|
+
signal,
|
|
105
|
+
});
|
|
106
|
+
if (!res.ok) {
|
|
107
|
+
const text = await res.text().catch(() => "");
|
|
108
|
+
throw new Error(`Tavily error ${res.status}: ${text || res.statusText}`);
|
|
109
|
+
}
|
|
110
|
+
const json = (await res.json());
|
|
111
|
+
return json;
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
if (timeoutId)
|
|
115
|
+
clearTimeout(timeoutId);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export const tavilySearchTool = new DynamicStructuredTool({
|
|
120
|
+
func: async ({ query }) => {
|
|
121
|
+
const tavily = new TavilySearch({
|
|
122
|
+
tavilyApiKey: process.env.TAVILY_API_KEY,
|
|
123
|
+
topic: "general",
|
|
124
|
+
includeAnswer: false,
|
|
125
|
+
maxResults: 5,
|
|
126
|
+
});
|
|
127
|
+
return await tavily.invoke({ query });
|
|
128
|
+
},
|
|
129
|
+
schema: z.object({
|
|
130
|
+
query: z.string().describe("The search query"),
|
|
131
|
+
}),
|
|
132
|
+
name: "tavily_search",
|
|
133
|
+
description: "Search the web with Tavily and return LLM-friendly results with sources.",
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=Tavily.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tavily.js","sourceRoot":"","sources":["../../../src/heart/tools/Tavily.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { BaseChatModel, BaseOutputParser, ChatGroq, ChatOllama, ChatOpenAI, ChatPromptTemplate } from "./imports";
|
|
2
|
-
import { z } from "zod/v3";
|
|
3
2
|
export type Prettify<T> = {
|
|
4
3
|
[K in keyof T]: T[K];
|
|
5
4
|
} & {};
|
|
6
5
|
export declare function logChunk(chunk: string): void;
|
|
7
|
-
export declare function
|
|
6
|
+
export declare function createSimpleChain(prompt: ChatPromptTemplate, llm: BaseChatModel, parser?: BaseOutputParser | null): import("@langchain/core/runnables").Runnable<any, unknown, import("@langchain/core/runnables").RunnableConfig<Record<string, any>>>;
|
|
8
7
|
export declare function wait(ms: number): Promise<unknown>;
|
|
9
8
|
export declare function stream(text: string | Array<any>, wait_in_between?: number): AsyncGenerator<string, void, unknown>;
|
|
10
9
|
type LLMConfig = {
|
|
@@ -20,59 +19,5 @@ type LLMConfig = {
|
|
|
20
19
|
model?: string;
|
|
21
20
|
};
|
|
22
21
|
export declare function getLLM(config: LLMConfig): ChatGroq | ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions> | ChatOllama;
|
|
23
|
-
export declare function structure<T extends z.ZodObject<any, any>>({ data, into, llm, retries }: {
|
|
24
|
-
data: any;
|
|
25
|
-
into: T;
|
|
26
|
-
llm: BaseChatModel;
|
|
27
|
-
retries?: number;
|
|
28
|
-
}): Promise<z.infer<T>>;
|
|
29
|
-
export declare function summarize({ llm, data, fokuss, maxWords }: {
|
|
30
|
-
llm: BaseChatModel;
|
|
31
|
-
data: any;
|
|
32
|
-
fokuss?: string;
|
|
33
|
-
maxWords?: number;
|
|
34
|
-
}): Promise<string>;
|
|
35
|
-
declare const decideSchema: z.ZodObject<{
|
|
36
|
-
decision: z.ZodEnum<["yes", "no", "unclear"]>;
|
|
37
|
-
reason: z.ZodString;
|
|
38
|
-
confidence: z.ZodNumber;
|
|
39
|
-
}, "strip", z.ZodTypeAny, {
|
|
40
|
-
decision: "yes" | "no" | "unclear";
|
|
41
|
-
reason: string;
|
|
42
|
-
confidence: number;
|
|
43
|
-
}, {
|
|
44
|
-
decision: "yes" | "no" | "unclear";
|
|
45
|
-
reason: string;
|
|
46
|
-
confidence: number;
|
|
47
|
-
}>;
|
|
48
|
-
export declare function decide({ llm, material, kriteria_to_decide }: {
|
|
49
|
-
llm: BaseChatModel;
|
|
50
|
-
material: any;
|
|
51
|
-
kriteria_to_decide: string;
|
|
52
|
-
}): Promise<z.infer<typeof decideSchema>>;
|
|
53
|
-
export declare function extract<T extends z.ZodObject<any>>({ llm, data, goal, schema }: {
|
|
54
|
-
llm: BaseChatModel;
|
|
55
|
-
data: any;
|
|
56
|
-
goal?: string;
|
|
57
|
-
schema: T;
|
|
58
|
-
}): Promise<z.infer<T>>;
|
|
59
|
-
declare function createClassificationSchema<T extends readonly [string, ...string[]]>(classes: T): z.ZodObject<{
|
|
60
|
-
class: z.ZodEnum<z.Writeable<T>>;
|
|
61
|
-
confidence: z.ZodNumber;
|
|
62
|
-
reasoning: z.ZodString;
|
|
63
|
-
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
64
|
-
class: z.ZodEnum<z.Writeable<T>>;
|
|
65
|
-
confidence: z.ZodNumber;
|
|
66
|
-
reasoning: z.ZodString;
|
|
67
|
-
}>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
|
|
68
|
-
class: z.ZodEnum<z.Writeable<T>>;
|
|
69
|
-
confidence: z.ZodNumber;
|
|
70
|
-
reasoning: z.ZodString;
|
|
71
|
-
}> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
|
|
72
|
-
export declare function classify<T extends readonly [string, ...string[]]>({ llm, data, classes }: {
|
|
73
|
-
llm: BaseChatModel;
|
|
74
|
-
data: any;
|
|
75
|
-
classes: T;
|
|
76
|
-
}): Promise<z.infer<ReturnType<typeof createClassificationSchema<T>>>>;
|
|
77
22
|
export {};
|
|
78
23
|
//# sourceMappingURL=helpers.d.ts.map
|
package/dist/helpers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAA8C,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAA8C,MAAM,WAAW,CAAC;AAI9J,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,QAQrC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,GAAE,gBAAgB,GAAG,IAAW,uIAEvH;AAED,wBAAsB,IAAI,CAAC,EAAE,EAAC,MAAM,oBAEnC;AAED,wBAAuB,MAAM,CAAC,IAAI,EAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAC,eAAe,GAAC,MAAY,yCAKlF;AAED,KAAK,SAAS,GACV;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3C,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,yFAyBvC"}
|
package/dist/helpers.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ChatGroq, ChatOllama, ChatOpenAI
|
|
2
|
-
import { z } from "zod/v3";
|
|
1
|
+
import { ChatGroq, ChatOllama, ChatOpenAI } from "./imports";
|
|
3
2
|
export function logChunk(chunk) {
|
|
4
3
|
const flushed = process.stdout.write(chunk);
|
|
5
4
|
if (!flushed) {
|
|
@@ -10,7 +9,7 @@ export function logChunk(chunk) {
|
|
|
10
9
|
process.stdout.write('', () => { });
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
|
-
export function
|
|
12
|
+
export function createSimpleChain(prompt, llm, parser = null) {
|
|
14
13
|
return parser ? prompt.pipe(llm).pipe(parser) : prompt.pipe(llm);
|
|
15
14
|
}
|
|
16
15
|
export async function wait(ms) {
|
|
@@ -45,203 +44,4 @@ export function getLLM(config) {
|
|
|
45
44
|
throw new Error("Unknown LLM kind");
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
|
-
export async function structure({ data, into, llm, retries = 2 }) {
|
|
49
|
-
const inputString = typeof data === "string" ? data : JSON.stringify(data, null, 2);
|
|
50
|
-
const jsonParser = StructuredOutputParser.fromZodSchema(into);
|
|
51
|
-
const prompt = await ChatPromptTemplate.fromMessages([
|
|
52
|
-
["system", `Du bist ein JSON-Formatierer.
|
|
53
|
-
REGELN:
|
|
54
|
-
- Gib NUR valides JSON zurück, KEIN anderer Text
|
|
55
|
-
- Keine Markdown Code-Blöcke (\`\`\`json)
|
|
56
|
-
- Halte dich EXAKT an das Schema
|
|
57
|
-
|
|
58
|
-
Schema:
|
|
59
|
-
{format_instructions}`],
|
|
60
|
-
["human", "{input}"]
|
|
61
|
-
]).partial({ format_instructions: jsonParser.getFormatInstructions() });
|
|
62
|
-
const chain = createChain(prompt, llm, jsonParser);
|
|
63
|
-
let lastError = null;
|
|
64
|
-
for (let i = 0; i <= retries; i++) {
|
|
65
|
-
try {
|
|
66
|
-
const result = await chain.invoke({ input: inputString });
|
|
67
|
-
return into.parse(result);
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
lastError = error;
|
|
71
|
-
if (i < retries) {
|
|
72
|
-
console.warn(`structure() Versuch ${i + 1} fehlgeschlagen, retry...`);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
throw new Error(`structure() failed after ${retries + 1} attempts, Error: ${lastError?.message}`);
|
|
77
|
-
}
|
|
78
|
-
export async function summarize({ llm, data, fokuss, maxWords = 150 }) {
|
|
79
|
-
const inputString = typeof data === "string" ? data : JSON.stringify(data, null, 2);
|
|
80
|
-
const prompt = ChatPromptTemplate.fromMessages([
|
|
81
|
-
["system", `
|
|
82
|
-
Du bist ein analytischer Summarizer.
|
|
83
|
-
|
|
84
|
-
Deine Aufgabe:
|
|
85
|
-
- Fasse den gegebenen Input präzise, sachlich und faktengetreu zusammen.
|
|
86
|
-
- Entferne Wiederholungen, irrelevante Details und Ausschmückungen.
|
|
87
|
-
- Behalte ausschließlich die inhaltlich wichtigsten Punkte.
|
|
88
|
-
|
|
89
|
-
Priorisierungsregeln (zwingend):
|
|
90
|
-
1. Zentrale Aussagen, Probleme oder Ergebnisse
|
|
91
|
-
2. Wichtige Entscheidungen, Risiken oder Konsequenzen
|
|
92
|
-
3. Relevanter Kontext (nur wenn nötig zum Verständnis)
|
|
93
|
-
4. Alles andere weglassen
|
|
94
|
-
|
|
95
|
-
Regeln:
|
|
96
|
-
- Erfinde keine Informationen
|
|
97
|
-
- Triff keine Annahmen über fehlende Daten
|
|
98
|
-
- Nutze nur Informationen aus dem Input
|
|
99
|
-
- Keine Meta-Kommentare („der Text beschreibt…“)
|
|
100
|
-
|
|
101
|
-
Längenbegrenzung:
|
|
102
|
-
- Maximal ${maxWords} Wörter
|
|
103
|
-
- Wenn nötig, kürze aggressiv
|
|
104
|
-
|
|
105
|
-
${fokuss ? `
|
|
106
|
-
Fokus (höchste Priorität):
|
|
107
|
-
- ${fokuss}
|
|
108
|
-
Informationen außerhalb dieses Fokus nur erwähnen, wenn sie essenziell sind.
|
|
109
|
-
` : ""}
|
|
110
|
-
|
|
111
|
-
Gib nur die Zusammenfassung aus. Kein zusätzlicher Text.
|
|
112
|
-
`],
|
|
113
|
-
["human", "{input}"]
|
|
114
|
-
]);
|
|
115
|
-
const chain = createChain(prompt, llm, new StringOutputParser());
|
|
116
|
-
const result = await chain.invoke({ input: inputString });
|
|
117
|
-
return typeof result === "string" ? result : String(result);
|
|
118
|
-
}
|
|
119
|
-
const decideSchema = z.object({
|
|
120
|
-
decision: z.enum(["yes", "no", "unclear"])
|
|
121
|
-
.describe("Ergebnis der Entscheidung basierend auf dem Kriterium"),
|
|
122
|
-
reason: z.string()
|
|
123
|
-
.describe("Sachliche Begründung, die sich ausschließlich auf das gegebene Material bezieht"),
|
|
124
|
-
confidence: z.number()
|
|
125
|
-
.min(0)
|
|
126
|
-
.max(100)
|
|
127
|
-
.describe("Sicherheit der Entscheidung. Regeln: " +
|
|
128
|
-
"decision='unclear' → confidence=0. " +
|
|
129
|
-
"decision='yes' oder 'no' → confidence > 0")
|
|
130
|
-
});
|
|
131
|
-
export async function decide({ llm, material, kriteria_to_decide }) {
|
|
132
|
-
const inputString = typeof material === "string"
|
|
133
|
-
? material
|
|
134
|
-
: JSON.stringify(material, null, 2);
|
|
135
|
-
const jsonParser = StructuredOutputParser.fromZodSchema(decideSchema);
|
|
136
|
-
const prompt = await ChatPromptTemplate.fromMessages([
|
|
137
|
-
["system", `
|
|
138
|
-
Analytischer Entscheidungsagent.
|
|
139
|
-
|
|
140
|
-
Entscheide anhand des Materials und des Kriteriums:
|
|
141
|
-
- Ergebnis: "yes" | "no" | "unclear"
|
|
142
|
-
- "unclear", wenn keine klare Entscheidung möglich ist
|
|
143
|
-
- Begründung nur aus dem Material
|
|
144
|
-
|
|
145
|
-
Regeln:
|
|
146
|
-
- Keine Annahmen oder erfundenen Infos
|
|
147
|
-
- decision="unclear" → confidence<10
|
|
148
|
-
- decision≠"unclear" → confidence>10
|
|
149
|
-
- Nur JSON gemäß Schema
|
|
150
|
-
|
|
151
|
-
Kriterium:
|
|
152
|
-
${kriteria_to_decide}
|
|
153
|
-
|
|
154
|
-
Schema:
|
|
155
|
-
{format_instructions}
|
|
156
|
-
`],
|
|
157
|
-
["human", "{input}"]
|
|
158
|
-
]).partial({
|
|
159
|
-
format_instructions: jsonParser.getFormatInstructions()
|
|
160
|
-
});
|
|
161
|
-
const chain = createChain(prompt, llm, jsonParser);
|
|
162
|
-
const result = await chain.invoke({ input: inputString });
|
|
163
|
-
return decideSchema.parse(result);
|
|
164
|
-
}
|
|
165
|
-
export async function extract({ llm, data, goal, schema }) {
|
|
166
|
-
const inputString = typeof data === "string"
|
|
167
|
-
? data
|
|
168
|
-
: JSON.stringify(data, null, 2);
|
|
169
|
-
const parser = StructuredOutputParser.fromZodSchema(schema);
|
|
170
|
-
const prompt = await ChatPromptTemplate.fromMessages([
|
|
171
|
-
["system", `
|
|
172
|
-
Du bist ein präziser Informationsextraktor.
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
${goal ? `
|
|
176
|
-
Ziel:
|
|
177
|
-
Extrahiere ausschließlich die Informationen, die für folgendes Ziel relevant sind:
|
|
178
|
-
- "${goal}"`
|
|
179
|
-
:
|
|
180
|
-
"- Extrahiere ALLE Informationen aus dem Input, die zum angegebenen Schema passen."}
|
|
181
|
-
|
|
182
|
-
Regeln:
|
|
183
|
-
- Keine Interpretation
|
|
184
|
-
- Keine Ergänzungen
|
|
185
|
-
- Nur Informationen, die explizit im Input enthalten sind
|
|
186
|
-
- Antworte ausschließlich im JSON-Schema
|
|
187
|
-
|
|
188
|
-
Schema:
|
|
189
|
-
{format_instructions}
|
|
190
|
-
`],
|
|
191
|
-
["human", "{input}"]
|
|
192
|
-
]).partial({ format_instructions: parser.getFormatInstructions() });
|
|
193
|
-
const chain = createChain(prompt, llm, parser);
|
|
194
|
-
const result = await chain.invoke({ input: inputString });
|
|
195
|
-
return schema.parse(result);
|
|
196
|
-
}
|
|
197
|
-
function createClassificationSchema(classes) {
|
|
198
|
-
return z.object({
|
|
199
|
-
class: z.enum(classes),
|
|
200
|
-
confidence: z.number()
|
|
201
|
-
.min(0)
|
|
202
|
-
.max(100)
|
|
203
|
-
.describe("Sicherheit der Klassifikation"),
|
|
204
|
-
reasoning: z.string()
|
|
205
|
-
.describe("Kurze Begründung basierend auf dem Input")
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
export async function classify({ llm, data, classes }) {
|
|
209
|
-
const inputString = typeof data === "string"
|
|
210
|
-
? data
|
|
211
|
-
: JSON.stringify(data, null, 2);
|
|
212
|
-
const schema = createClassificationSchema(classes);
|
|
213
|
-
const parser = StructuredOutputParser.fromZodSchema(schema);
|
|
214
|
-
const prompt = await ChatPromptTemplate.fromMessages([
|
|
215
|
-
["system", `
|
|
216
|
-
Du bist ein präziser Klassifizierungsagent.
|
|
217
|
-
|
|
218
|
-
Aufgabe:
|
|
219
|
-
- Ordne den gegebenen Input exakt EINER der folgenden Klassen zu:
|
|
220
|
-
${classes.map(c => `- ${c}`).join("\n")}
|
|
221
|
-
|
|
222
|
-
Regeln:
|
|
223
|
-
- Wähle genau eine Klasse
|
|
224
|
-
- Nutze nur Informationen aus dem Input
|
|
225
|
-
- Keine Annahmen oder erfundene Inhalte
|
|
226
|
-
- Wenn die Zuordnung unsicher ist, wähle die wahrscheinlichste Klasse und setze eine niedrige Confidence
|
|
227
|
-
|
|
228
|
-
Confidence:
|
|
229
|
-
- 0 = reine Vermutung
|
|
230
|
-
- 100 = absolut sicher
|
|
231
|
-
|
|
232
|
-
Antwort:
|
|
233
|
-
- Ausschließlich valides JSON gemäß Schema
|
|
234
|
-
- Kein zusätzlicher Text
|
|
235
|
-
|
|
236
|
-
Schema:
|
|
237
|
-
{format_instructions}
|
|
238
|
-
`],
|
|
239
|
-
["human", "{input}"]
|
|
240
|
-
]).partial({
|
|
241
|
-
format_instructions: parser.getFormatInstructions()
|
|
242
|
-
});
|
|
243
|
-
const chain = createChain(prompt, llm, parser);
|
|
244
|
-
const result = await chain.invoke({ input: inputString });
|
|
245
|
-
return schema.parse(result);
|
|
246
|
-
}
|
|
247
47
|
//# sourceMappingURL=helpers.js.map
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,QAAQ,EAAE,UAAU,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAkE,MAAM,WAAW,CAAC;AAQ9J,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACxC,CAAC;SAAM,CAAC;QACN,qDAAqD;QACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACpC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA0B,EAAE,GAAkB,EAAE,SAAkC,IAAI;IACtH,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EAAS;IAClC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,SAAU,CAAC,CAAA,MAAM,CAAC,IAAwB,EAAC,kBAAyB,GAAG;IACjF,KAAK,MAAM,KAAK,IAAI,IAAI,EAAC,CAAC;QACxB,MAAM,KAAK,GAAG,GAAG,CAAA;QACjB,MAAM,IAAI,CAAC,eAAe,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,MAAM,CAAC,MAAiB;IACtC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,MAAM;YACT,OAAO,IAAI,QAAQ,CAAC;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,yBAAyB;aACjD,CAAC,CAAC;QAEL,KAAK,YAAY;YACf,OAAO,IAAI,UAAU,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE;oBACX,OAAO,EAAE,8BAA8B;iBAC1C;gBACD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,oBAAoB;aAC5C,CAAC,CAAC;QAEL,KAAK,aAAa;YAChB,OAAO,IAAI,UAAU,CAAC;gBACpB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa;aACrC,CAAC,CAAC;QAEL;YACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
|
package/dist/memory.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createSimpleChain } from "./helpers";
|
|
2
2
|
import { BaseCheckpointSaver, HumanMessage, AIMessage, SystemMessage, StringOutputParser, ChatPromptTemplate } from "./imports";
|
|
3
3
|
/**
|
|
4
4
|
* needs testing!!!
|
|
@@ -291,7 +291,7 @@ export async function chatSummarizer({ conversation, fokuss, llm, maxWords = 150
|
|
|
291
291
|
...focusMessage,
|
|
292
292
|
["human", "{conversation}"]
|
|
293
293
|
]);
|
|
294
|
-
const chain =
|
|
294
|
+
const chain = createSimpleChain(prompt, llm, new StringOutputParser());
|
|
295
295
|
const result = await chain.invoke({ conversation });
|
|
296
296
|
return typeof result === "string" ? result : String(result);
|
|
297
297
|
}
|