@delofarag/ai-utils 1.4.2 → 1.4.3
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/chatbot.d.ts +33 -0
- package/dist/chatbot.d.ts.map +1 -0
- package/dist/chatbot.js +72 -0
- package/dist/chatbot.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Agent } from "./heart/agent";
|
|
2
|
+
import type { MemoryChain } from "./heart/memorychain";
|
|
3
|
+
type SessionStreamable = Agent<any> | MemoryChain<any>;
|
|
4
|
+
type SessionProps = {
|
|
5
|
+
streamable: SessionStreamable;
|
|
6
|
+
breakword?: string;
|
|
7
|
+
numberOfMessages?: number;
|
|
8
|
+
id?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* die session funktion für ein streamable, wird hauptsächlich für testing eines agenten/memorychains verwendet
|
|
12
|
+
* (diese 2 sind die einzigen Streamables die es gibt)
|
|
13
|
+
* @param streamable das streamable welches die session führt
|
|
14
|
+
* @param breakword das wort welches die session beendet
|
|
15
|
+
* @param numberOfMessages die maximale anzahl von messages welche die session senden kann
|
|
16
|
+
* @param id die id der session
|
|
17
|
+
* @returns void
|
|
18
|
+
*/
|
|
19
|
+
export declare function session({ streamable, breakword, numberOfMessages, id }: SessionProps): Promise<void>;
|
|
20
|
+
type StreamResponseInit = ResponseInit & {
|
|
21
|
+
encoder?: TextEncoder;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* eine HTTP-Response objekt erweiterung welches einen stream returnbar macht. ein stream kann halt nicht per
|
|
25
|
+
* json einfach geschickt werden weil das nicht serialisiert werden kann, deswegen muss es einen prozess nochmal
|
|
26
|
+
* untergehen befor man das "returnen" kann
|
|
27
|
+
* @param aiStream der stream von der ai
|
|
28
|
+
* @param init die initialisierung des response objekts
|
|
29
|
+
* @returns das response objekt
|
|
30
|
+
*/
|
|
31
|
+
export declare function StreamResponse<T>(aiStream: AsyncIterable<T>, init?: StreamResponseInit): Response;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=chatbot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../src/chatbot.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,KAAK,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;AAEtD,KAAK,YAAY,GAAG;IAChB,UAAU,EAAE,iBAAiB,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,EAAE,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,EAC1B,UAAU,EACV,SAAkB,EAClB,gBAA2C,EAC3C,EAAoB,EACvB,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B9B;AAED,KAAK,kBAAkB,GAAG,YAAY,GAAG;IACrC,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEJ;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC5B,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,IAAI,GAAE,kBAAuB,GAC5B,QAAQ,CA4BV"}
|
package/dist/chatbot.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { input } from "@delofarag/base-utils/server";
|
|
2
|
+
import { logChunk } from "./helpers";
|
|
3
|
+
/**
|
|
4
|
+
* die session funktion für ein streamable, wird hauptsächlich für testing eines agenten/memorychains verwendet
|
|
5
|
+
* (diese 2 sind die einzigen Streamables die es gibt)
|
|
6
|
+
* @param streamable das streamable welches die session führt
|
|
7
|
+
* @param breakword das wort welches die session beendet
|
|
8
|
+
* @param numberOfMessages die maximale anzahl von messages welche die session senden kann
|
|
9
|
+
* @param id die id der session
|
|
10
|
+
* @returns void
|
|
11
|
+
*/
|
|
12
|
+
export async function session({ streamable, breakword = "exit", numberOfMessages = Number.POSITIVE_INFINITY, id = `${Date.now()}` }) {
|
|
13
|
+
let messages = 0;
|
|
14
|
+
while (true) {
|
|
15
|
+
try {
|
|
16
|
+
const message = await input("You: ");
|
|
17
|
+
if (message === breakword) {
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
const response = streamable.stream({
|
|
21
|
+
input: message,
|
|
22
|
+
thread_id: id
|
|
23
|
+
});
|
|
24
|
+
console.log("Assistant: ");
|
|
25
|
+
for await (const chunk of response) {
|
|
26
|
+
logChunk(chunk);
|
|
27
|
+
}
|
|
28
|
+
console.log("");
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
console.error("Error: ", e);
|
|
32
|
+
}
|
|
33
|
+
messages = messages + 2;
|
|
34
|
+
if (messages > numberOfMessages) {
|
|
35
|
+
console.log(`Message-limit of ${numberOfMessages} reached, stopping session`);
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* eine HTTP-Response objekt erweiterung welches einen stream returnbar macht. ein stream kann halt nicht per
|
|
42
|
+
* json einfach geschickt werden weil das nicht serialisiert werden kann, deswegen muss es einen prozess nochmal
|
|
43
|
+
* untergehen befor man das "returnen" kann
|
|
44
|
+
* @param aiStream der stream von der ai
|
|
45
|
+
* @param init die initialisierung des response objekts
|
|
46
|
+
* @returns das response objekt
|
|
47
|
+
*/
|
|
48
|
+
export function StreamResponse(aiStream, init = {}) {
|
|
49
|
+
const encoder = init.encoder ?? new TextEncoder();
|
|
50
|
+
const { encoder: _encoder, headers, ...responseInit } = init;
|
|
51
|
+
const stream = new ReadableStream({
|
|
52
|
+
async start(controller) {
|
|
53
|
+
try {
|
|
54
|
+
for await (const chunk of aiStream) {
|
|
55
|
+
controller.enqueue(encoder.encode(JSON.stringify(chunk) + "\n"));
|
|
56
|
+
}
|
|
57
|
+
controller.close();
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
controller.error(error);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
return new Response(stream, {
|
|
65
|
+
...responseInit,
|
|
66
|
+
headers: {
|
|
67
|
+
"Content-Type": "application/x-ndjson",
|
|
68
|
+
...headers,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=chatbot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatbot.js","sourceRoot":"","sources":["../src/chatbot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAapC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAC1B,UAAU,EACV,SAAS,GAAG,MAAM,EAClB,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,EAC3C,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,EACT;IACX,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,OAAO,IAAI,EAAE,CAAC;QACV,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAA;YACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAK;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC/B,KAAK,EAAE,OAAO;gBACd,SAAS,EAAE,EAAE;aAChB,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAC1B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBACjC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QAC/B,CAAC;QAED,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAA;QACvB,IAAI,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,gBAAgB,4BAA4B,CAAC,CAAA;YAC7E,MAAK;QACT,CAAC;IACL,CAAC;AACL,CAAC;AAMD;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC1B,QAA0B,EAC1B,OAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,WAAW,EAAE,CAAC;IAElD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;QAC5C,KAAK,CAAC,KAAK,CAAC,UAAU;YACpB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBACnC,UAAU,CAAC,OAAO,CAChB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAC7C,CAAC;gBACJ,CAAC;gBAED,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;QAC1B,GAAG,YAAY;QACf,OAAO,EAAE;YACP,cAAc,EAAE,sBAAsB;YACtC,GAAG,OAAO;SACX;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export * from "./rag";
|
|
|
4
4
|
export { DynamicStructuredTool } from "./imports";
|
|
5
5
|
export * from "./heart/agent";
|
|
6
6
|
export * from "./heart/chain";
|
|
7
|
-
export * from "./heart/chatbot";
|
|
8
7
|
export * from "./heart/memorychain";
|
|
9
8
|
export * from "./heart/tools/ToolRegistry";
|
|
10
9
|
export { tavilySearchTool, TavilySearch } from "./heart/tools/Tavily";
|
|
@@ -22,5 +21,5 @@ export * from "./magic-funcs/parsers/rewrite";
|
|
|
22
21
|
export * from "./magic-funcs/parsers/structure";
|
|
23
22
|
export * from "./magic-funcs/parsers/summarize";
|
|
24
23
|
export * from "./heart/tools/Tavily";
|
|
25
|
-
export * from "./
|
|
24
|
+
export * from "./chatbot";
|
|
26
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACrE,cAAc,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,oCAAoC,CAAA;AAClD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,6 @@ export * from "./rag";
|
|
|
4
4
|
export { DynamicStructuredTool } from "./imports";
|
|
5
5
|
export * from "./heart/agent";
|
|
6
6
|
export * from "./heart/chain";
|
|
7
|
-
export * from "./heart/chatbot";
|
|
8
7
|
export * from "./heart/memorychain";
|
|
9
8
|
export * from "./heart/tools/ToolRegistry";
|
|
10
9
|
export { tavilySearchTool, TavilySearch } from "./heart/tools/Tavily";
|
|
@@ -22,5 +21,5 @@ export * from "./magic-funcs/parsers/rewrite";
|
|
|
22
21
|
export * from "./magic-funcs/parsers/structure";
|
|
23
22
|
export * from "./magic-funcs/parsers/summarize";
|
|
24
23
|
export * from "./heart/tools/Tavily";
|
|
25
|
-
export * from "./
|
|
24
|
+
export * from "./chatbot";
|
|
26
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACrE,cAAc,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,oCAAoC,CAAA;AAClD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA"}
|