@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.
@@ -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"}
@@ -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 "./session";
24
+ export * from "./chatbot";
26
25
  //# sourceMappingURL=index.d.ts.map
@@ -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,iBAAiB,CAAA;AAC/B,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"}
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 "./session";
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,iBAAiB,CAAA;AAC/B,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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delofarag/ai-utils",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",