@delofarag/ai-utils 1.0.1 → 1.0.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/README.md +1 -0
- package/dist/heart/agent.d.ts +68 -0
- package/dist/heart/agent.d.ts.map +1 -0
- package/dist/heart/agent.js +140 -0
- package/dist/heart/agent.js.map +1 -0
- package/dist/heart/chain.d.ts +42 -0
- package/dist/heart/chain.d.ts.map +1 -0
- package/dist/heart/chain.js +152 -0
- package/dist/heart/chain.js.map +1 -0
- package/dist/heart/chatbot.d.ts +27 -0
- package/dist/heart/chatbot.d.ts.map +1 -0
- package/dist/heart/chatbot.js +100 -0
- package/dist/heart/chatbot.js.map +1 -0
- package/dist/heart/memorychain.d.ts +59 -0
- package/dist/heart/memorychain.d.ts.map +1 -0
- package/dist/heart/memorychain.js +165 -0
- package/dist/heart/memorychain.js.map +1 -0
- package/dist/heart/tools/BasicToolRegistry.d.ts +22 -0
- package/dist/heart/tools/BasicToolRegistry.d.ts.map +1 -0
- package/dist/heart/tools/BasicToolRegistry.js +45 -0
- package/dist/heart/tools/BasicToolRegistry.js.map +1 -0
- package/dist/heart/tools/CombinedRegistry.d.ts +41 -0
- package/dist/heart/tools/CombinedRegistry.d.ts.map +1 -0
- package/dist/heart/tools/CombinedRegistry.js +46 -0
- package/dist/heart/tools/CombinedRegistry.js.map +1 -0
- package/dist/heart/tools/ZodiosToolRegistry.d.ts +22 -0
- package/dist/heart/tools/ZodiosToolRegistry.d.ts.map +1 -0
- package/dist/heart/tools/ZodiosToolRegistry.js +80 -0
- package/dist/heart/tools/ZodiosToolRegistry.js.map +1 -0
- package/dist/helpers.d.ts +31 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +105 -0
- package/dist/helpers.js.map +1 -0
- package/dist/imports.d.ts +44 -0
- package/dist/imports.d.ts.map +1 -0
- package/dist/imports.js +56 -0
- package/dist/imports.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/memory.d.ts +78 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +282 -0
- package/dist/memory.js.map +1 -0
- package/dist/rag.d.ts +38 -0
- package/dist/rag.d.ts.map +1 -0
- package/dist/rag.js +72 -0
- package/dist/rag.js.map +1 -0
- package/package.json +9 -9
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BaseMessage, HumanMessage, AIMessage, SystemMessage } from '@langchain/core/messages';
|
|
2
|
+
import { ChatPromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts';
|
|
3
|
+
import { BaseOutputParser, StructuredOutputParser, StringOutputParser } from '@langchain/core/output_parsers';
|
|
4
|
+
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
5
|
+
import { Document } from '@langchain/core/documents';
|
|
6
|
+
import { BaseRetriever } from '@langchain/core/retrievers';
|
|
7
|
+
import { Runnable, type RunnableConfig } from '@langchain/core/runnables';
|
|
8
|
+
import { DynamicStructuredTool, tool } from '@langchain/core/tools';
|
|
9
|
+
import { Embeddings } from '@langchain/core/embeddings';
|
|
10
|
+
import { ChatOllama, OllamaEmbeddings } from '@langchain/ollama';
|
|
11
|
+
import { ChatGroq } from '@langchain/groq';
|
|
12
|
+
import { ChatOpenAI, OpenAIEmbeddings } from '@langchain/openai';
|
|
13
|
+
import { ChatAnthropic } from '@langchain/anthropic';
|
|
14
|
+
import { VectorStore, SaveableVectorStore, VectorStoreRetriever } from '@langchain/core/vectorstores';
|
|
15
|
+
import { SupabaseVectorStore } from '@langchain/community/vectorstores/supabase';
|
|
16
|
+
import { FaissStore } from '@langchain/community/vectorstores/faiss';
|
|
17
|
+
import { MemoryVectorStore } from '@langchain/classic/vectorstores/memory';
|
|
18
|
+
import { createStuffDocumentsChain } from '@langchain/classic/chains/combine_documents';
|
|
19
|
+
import { createRetrievalChain } from '@langchain/classic/chains/retrieval';
|
|
20
|
+
import { BaseChain } from '@langchain/classic/chains';
|
|
21
|
+
import { RecursiveCharacterTextSplitter, CharacterTextSplitter } from '@langchain/textsplitters';
|
|
22
|
+
import { createReactAgent, ToolNode } from '@langchain/langgraph/prebuilt';
|
|
23
|
+
import { MemorySaver, BaseCheckpointSaver } from '@langchain/langgraph';
|
|
24
|
+
import { PostgresSaver } from '@langchain/langgraph-checkpoint-postgres';
|
|
25
|
+
import { SqliteSaver } from '@langchain/langgraph-checkpoint-sqlite';
|
|
26
|
+
import { type Checkpoint, type CheckpointMetadata, type LangGraphRunnableConfig } from "@langchain/langgraph";
|
|
27
|
+
import type { CheckpointTuple, CheckpointListOptions, PendingWrite, ChannelVersions } from "@langchain/langgraph-checkpoint";
|
|
28
|
+
import { z } from 'zod';
|
|
29
|
+
export { BaseMessage, HumanMessage, AIMessage, SystemMessage, ChatPromptTemplate, MessagesPlaceholder, BaseOutputParser, StructuredOutputParser, StringOutputParser, BaseChatModel, Document, BaseRetriever, Runnable, DynamicStructuredTool, tool, };
|
|
30
|
+
export { ChatOllama, ChatGroq, ChatOpenAI, ChatAnthropic, };
|
|
31
|
+
export { Embeddings, // Base class für alle Embeddings
|
|
32
|
+
OllamaEmbeddings, OpenAIEmbeddings, };
|
|
33
|
+
export { VectorStore, // Base class für alle Vector Stores
|
|
34
|
+
SaveableVectorStore, // Base class für speicherbare Vector Stores
|
|
35
|
+
VectorStoreRetriever, // Retriever für Vector Stores
|
|
36
|
+
SupabaseVectorStore, // Cloud: Supabase
|
|
37
|
+
FaissStore, // Lokal: Speichert in Datei
|
|
38
|
+
MemoryVectorStore, };
|
|
39
|
+
export { createStuffDocumentsChain, createRetrievalChain, BaseChain, RecursiveCharacterTextSplitter, CharacterTextSplitter, };
|
|
40
|
+
export { createReactAgent, ToolNode, MemorySaver, BaseCheckpointSaver, };
|
|
41
|
+
export { PostgresSaver, SqliteSaver, };
|
|
42
|
+
export { type Checkpoint, type CheckpointMetadata, type LangGraphRunnableConfig, type RunnableConfig, type CheckpointTuple, type CheckpointListOptions, type PendingWrite, type ChannelVersions, };
|
|
43
|
+
export { z };
|
|
44
|
+
//# sourceMappingURL=imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../src/imports.ts"],"names":[],"mappings":"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"}
|
package/dist/imports.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { BaseMessage, HumanMessage, AIMessage, SystemMessage } from '@langchain/core/messages';
|
|
2
|
+
import { ChatPromptTemplate, MessagesPlaceholder } from '@langchain/core/prompts';
|
|
3
|
+
import { BaseOutputParser, StructuredOutputParser, StringOutputParser } from '@langchain/core/output_parsers';
|
|
4
|
+
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
5
|
+
import { Document } from '@langchain/core/documents';
|
|
6
|
+
import { BaseRetriever } from '@langchain/core/retrievers';
|
|
7
|
+
import { Runnable } from '@langchain/core/runnables';
|
|
8
|
+
import { DynamicStructuredTool, tool } from '@langchain/core/tools';
|
|
9
|
+
import { Embeddings } from '@langchain/core/embeddings';
|
|
10
|
+
// LLM Providers
|
|
11
|
+
import { ChatOllama, OllamaEmbeddings } from '@langchain/ollama';
|
|
12
|
+
import { ChatGroq } from '@langchain/groq';
|
|
13
|
+
import { ChatOpenAI, OpenAIEmbeddings } from '@langchain/openai';
|
|
14
|
+
import { ChatAnthropic } from '@langchain/anthropic';
|
|
15
|
+
// RAG: Vector Stores (Base Classes)
|
|
16
|
+
import { VectorStore, SaveableVectorStore, VectorStoreRetriever } from '@langchain/core/vectorstores';
|
|
17
|
+
// RAG: Vector Store Implementations
|
|
18
|
+
import { SupabaseVectorStore } from '@langchain/community/vectorstores/supabase';
|
|
19
|
+
import { FaissStore } from '@langchain/community/vectorstores/faiss';
|
|
20
|
+
import { MemoryVectorStore } from '@langchain/classic/vectorstores/memory';
|
|
21
|
+
// RAG: Chains
|
|
22
|
+
import { createStuffDocumentsChain } from '@langchain/classic/chains/combine_documents';
|
|
23
|
+
import { createRetrievalChain } from '@langchain/classic/chains/retrieval';
|
|
24
|
+
import { BaseChain } from '@langchain/classic/chains';
|
|
25
|
+
// RAG: Text Splitting
|
|
26
|
+
import { RecursiveCharacterTextSplitter, CharacterTextSplitter } from '@langchain/textsplitters';
|
|
27
|
+
// Agents
|
|
28
|
+
import { createReactAgent, ToolNode } from '@langchain/langgraph/prebuilt';
|
|
29
|
+
import { MemorySaver, BaseCheckpointSaver } from '@langchain/langgraph';
|
|
30
|
+
import { PostgresSaver } from '@langchain/langgraph-checkpoint-postgres';
|
|
31
|
+
import { SqliteSaver } from '@langchain/langgraph-checkpoint-sqlite';
|
|
32
|
+
import { z } from 'zod';
|
|
33
|
+
// Core
|
|
34
|
+
export { BaseMessage, HumanMessage, AIMessage, SystemMessage, ChatPromptTemplate, MessagesPlaceholder, BaseOutputParser, StructuredOutputParser, StringOutputParser, BaseChatModel, Document, BaseRetriever, Runnable, DynamicStructuredTool, tool, };
|
|
35
|
+
// LLM Providers
|
|
36
|
+
export { ChatOllama, ChatGroq, ChatOpenAI, ChatAnthropic, };
|
|
37
|
+
// Embeddings
|
|
38
|
+
export { Embeddings, // Base class für alle Embeddings
|
|
39
|
+
OllamaEmbeddings, OpenAIEmbeddings, };
|
|
40
|
+
// RAG: Vector Stores
|
|
41
|
+
export { VectorStore, // Base class für alle Vector Stores
|
|
42
|
+
SaveableVectorStore, // Base class für speicherbare Vector Stores
|
|
43
|
+
VectorStoreRetriever, // Retriever für Vector Stores
|
|
44
|
+
SupabaseVectorStore, // Cloud: Supabase
|
|
45
|
+
FaissStore, // Lokal: Speichert in Datei
|
|
46
|
+
MemoryVectorStore, // Lokal: In-Memory (kein Speichern)
|
|
47
|
+
};
|
|
48
|
+
// RAG: Chains & Utils
|
|
49
|
+
export { createStuffDocumentsChain, createRetrievalChain, BaseChain, RecursiveCharacterTextSplitter, CharacterTextSplitter, };
|
|
50
|
+
// Agents
|
|
51
|
+
export { createReactAgent, ToolNode, MemorySaver, BaseCheckpointSaver, };
|
|
52
|
+
// Checkpoint Savers (optional - Packages müssen installiert sein)
|
|
53
|
+
export { PostgresSaver, SqliteSaver, };
|
|
54
|
+
// Utils
|
|
55
|
+
export { z };
|
|
56
|
+
//# sourceMappingURL=imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../src/imports.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./helpers";
|
|
2
|
+
export * from "./memory";
|
|
3
|
+
export * from "./rag";
|
|
4
|
+
export * from "./heart/agent";
|
|
5
|
+
export * from "./heart/chain";
|
|
6
|
+
export * from "./heart/chatbot";
|
|
7
|
+
export * from "./heart/memorychain";
|
|
8
|
+
export * from "./heart/tools/BasicToolRegistry";
|
|
9
|
+
export * from "./heart/tools/CombinedRegistry";
|
|
10
|
+
export * from "./heart/tools/ZodiosToolRegistry";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./helpers";
|
|
2
|
+
export * from "./memory";
|
|
3
|
+
export * from "./rag";
|
|
4
|
+
export * from "./heart/agent";
|
|
5
|
+
export * from "./heart/chain";
|
|
6
|
+
export * from "./heart/chatbot";
|
|
7
|
+
export * from "./heart/memorychain";
|
|
8
|
+
export * from "./heart/tools/BasicToolRegistry";
|
|
9
|
+
export * from "./heart/tools/CombinedRegistry";
|
|
10
|
+
export * from "./heart/tools/ZodiosToolRegistry";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA"}
|
package/dist/memory.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { SupabaseTable } from "@delofarag/supabase-utils";
|
|
2
|
+
import { BaseCheckpointSaver, BaseChatModel, type Checkpoint, type CheckpointMetadata, type LangGraphRunnableConfig, type RunnableConfig, type CheckpointTuple, type CheckpointListOptions, type PendingWrite, type ChannelVersions } from "./imports";
|
|
3
|
+
interface CheckpointRow {
|
|
4
|
+
thread_id: string;
|
|
5
|
+
checkpoint: Checkpoint;
|
|
6
|
+
metadata: CheckpointMetadata;
|
|
7
|
+
created_at?: string;
|
|
8
|
+
updated_at?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* needs testing!!!
|
|
12
|
+
*/
|
|
13
|
+
export declare class SupabaseCheckpointSaver extends BaseCheckpointSaver {
|
|
14
|
+
private table;
|
|
15
|
+
constructor(supabaseTable: SupabaseTable<CheckpointRow>);
|
|
16
|
+
put(config: LangGraphRunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata): Promise<RunnableConfig>;
|
|
17
|
+
get(config: LangGraphRunnableConfig): Promise<Checkpoint | undefined>;
|
|
18
|
+
list(config: LangGraphRunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>;
|
|
19
|
+
delete(config: LangGraphRunnableConfig): Promise<void>;
|
|
20
|
+
getTuple(config: LangGraphRunnableConfig): Promise<CheckpointTuple | undefined>;
|
|
21
|
+
putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string): Promise<void>;
|
|
22
|
+
deleteThread(threadId: string): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
interface SmartCheckpointSaverOptions {
|
|
25
|
+
messagesBeforeSummary?: number;
|
|
26
|
+
maxSummaries?: number;
|
|
27
|
+
llm: BaseChatModel;
|
|
28
|
+
debug?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @example CONSTRUCTOR:
|
|
32
|
+
* constructor(
|
|
33
|
+
checkpointSaver: BaseCheckpointSaver,
|
|
34
|
+
{
|
|
35
|
+
messagesBeforeSummary = 12,
|
|
36
|
+
maxSummaries = 7,
|
|
37
|
+
llm = getLLM("groq"),
|
|
38
|
+
debug = false
|
|
39
|
+
}: SmartCheckpointSaverOptions = {}
|
|
40
|
+
) {
|
|
41
|
+
super()
|
|
42
|
+
this.checkpointSaver = checkpointSaver
|
|
43
|
+
this.messagesBeforeSummary = messagesBeforeSummary
|
|
44
|
+
this.maxSummaries = maxSummaries
|
|
45
|
+
this.llm = llm
|
|
46
|
+
this.debug = debug
|
|
47
|
+
}
|
|
48
|
+
*/
|
|
49
|
+
export declare class SmartCheckpointSaver extends BaseCheckpointSaver {
|
|
50
|
+
private checkpointSaver;
|
|
51
|
+
private messagesBeforeSummary;
|
|
52
|
+
private maxSummaries;
|
|
53
|
+
private llm;
|
|
54
|
+
private debug;
|
|
55
|
+
constructor(checkpointSaver: BaseCheckpointSaver, { messagesBeforeSummary, maxSummaries, llm, debug }: SmartCheckpointSaverOptions);
|
|
56
|
+
/**
|
|
57
|
+
* Zählt User/AI Messages (ignoriert System-Messages)
|
|
58
|
+
*/
|
|
59
|
+
private countChatMessages;
|
|
60
|
+
/**
|
|
61
|
+
* Findet alle System-Messages die Zusammenfassungen sind
|
|
62
|
+
*/
|
|
63
|
+
private findSummaryMessages;
|
|
64
|
+
/**
|
|
65
|
+
* Konvertiert Messages zu Text für Summarization
|
|
66
|
+
*/
|
|
67
|
+
private messagesToText;
|
|
68
|
+
private applySmartSummarization;
|
|
69
|
+
put(config: LangGraphRunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata, newVersions: ChannelVersions): Promise<RunnableConfig>;
|
|
70
|
+
get(config: LangGraphRunnableConfig): Promise<Checkpoint | undefined>;
|
|
71
|
+
list(config: LangGraphRunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>;
|
|
72
|
+
delete(config: LangGraphRunnableConfig): Promise<void>;
|
|
73
|
+
getTuple(config: LangGraphRunnableConfig): Promise<CheckpointTuple | undefined>;
|
|
74
|
+
putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string): Promise<void>;
|
|
75
|
+
deleteThread(threadId: string): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/memory.js
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import { summarize } from "./helpers";
|
|
2
|
+
import { BaseCheckpointSaver, HumanMessage, AIMessage, SystemMessage } from "./imports";
|
|
3
|
+
/**
|
|
4
|
+
* needs testing!!!
|
|
5
|
+
*/
|
|
6
|
+
export class SupabaseCheckpointSaver extends BaseCheckpointSaver {
|
|
7
|
+
table;
|
|
8
|
+
constructor(supabaseTable) {
|
|
9
|
+
super();
|
|
10
|
+
this.table = supabaseTable;
|
|
11
|
+
}
|
|
12
|
+
async put(config, checkpoint, metadata) {
|
|
13
|
+
const threadId = config.configurable?.thread_id || "default";
|
|
14
|
+
const now = new Date().toISOString();
|
|
15
|
+
// Prüfe ob Checkpoint bereits existiert um created_at zu behalten
|
|
16
|
+
const existing = await this.table.select({
|
|
17
|
+
columns: ["created_at"],
|
|
18
|
+
where: [{ column: "thread_id", is: threadId }],
|
|
19
|
+
first: true
|
|
20
|
+
});
|
|
21
|
+
// Behalte created_at wenn bereits vorhanden, sonst setze jetzt
|
|
22
|
+
const createdAt = existing?.created_at || now;
|
|
23
|
+
await this.table.upsert({
|
|
24
|
+
where: [{ column: "thread_id", is: threadId }],
|
|
25
|
+
upsert: {
|
|
26
|
+
checkpoint: checkpoint,
|
|
27
|
+
metadata: metadata,
|
|
28
|
+
created_at: createdAt,
|
|
29
|
+
updated_at: now
|
|
30
|
+
},
|
|
31
|
+
onConflict: "thread_id"
|
|
32
|
+
});
|
|
33
|
+
return config;
|
|
34
|
+
}
|
|
35
|
+
async get(config) {
|
|
36
|
+
const threadId = config.configurable?.thread_id || "default";
|
|
37
|
+
const data = await this.table.select({
|
|
38
|
+
columns: ["checkpoint"],
|
|
39
|
+
where: [{ column: "thread_id", is: threadId }],
|
|
40
|
+
first: true
|
|
41
|
+
});
|
|
42
|
+
return data?.checkpoint;
|
|
43
|
+
}
|
|
44
|
+
// @ts-expect-error - Type incompatibility due to duplicate LangChain versions in monorepo
|
|
45
|
+
async *list(config, options) {
|
|
46
|
+
const threadId = config.configurable?.thread_id;
|
|
47
|
+
if (!threadId)
|
|
48
|
+
return;
|
|
49
|
+
const data = await this.table.select({
|
|
50
|
+
columns: ["checkpoint"],
|
|
51
|
+
where: [{ column: "thread_id", is: threadId }]
|
|
52
|
+
});
|
|
53
|
+
for (const row of data || []) {
|
|
54
|
+
yield [config, row.checkpoint];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async delete(config) {
|
|
58
|
+
const threadId = config.configurable?.thread_id || "default";
|
|
59
|
+
await this.table.delete({
|
|
60
|
+
where: [{ column: "thread_id", is: threadId }]
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// @ts-expect-error - Type incompatibility due to duplicate LangChain versions in monorepo
|
|
64
|
+
async getTuple(config) {
|
|
65
|
+
const checkpoint = await this.get(config);
|
|
66
|
+
if (!checkpoint)
|
|
67
|
+
return undefined;
|
|
68
|
+
return [config, checkpoint];
|
|
69
|
+
}
|
|
70
|
+
async putWrites(config, writes, taskId) {
|
|
71
|
+
for (const write of writes) {
|
|
72
|
+
const checkpoint = write.checkpoint;
|
|
73
|
+
const metadata = write.metadata;
|
|
74
|
+
await this.put(config, checkpoint, metadata);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async deleteThread(threadId) {
|
|
78
|
+
await this.table.delete({
|
|
79
|
+
where: [{ column: "thread_id", is: threadId }]
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @example CONSTRUCTOR:
|
|
85
|
+
* constructor(
|
|
86
|
+
checkpointSaver: BaseCheckpointSaver,
|
|
87
|
+
{
|
|
88
|
+
messagesBeforeSummary = 12,
|
|
89
|
+
maxSummaries = 7,
|
|
90
|
+
llm = getLLM("groq"),
|
|
91
|
+
debug = false
|
|
92
|
+
}: SmartCheckpointSaverOptions = {}
|
|
93
|
+
) {
|
|
94
|
+
super()
|
|
95
|
+
this.checkpointSaver = checkpointSaver
|
|
96
|
+
this.messagesBeforeSummary = messagesBeforeSummary
|
|
97
|
+
this.maxSummaries = maxSummaries
|
|
98
|
+
this.llm = llm
|
|
99
|
+
this.debug = debug
|
|
100
|
+
}
|
|
101
|
+
*/
|
|
102
|
+
export class SmartCheckpointSaver extends BaseCheckpointSaver {
|
|
103
|
+
checkpointSaver;
|
|
104
|
+
messagesBeforeSummary;
|
|
105
|
+
maxSummaries;
|
|
106
|
+
llm;
|
|
107
|
+
debug;
|
|
108
|
+
constructor(checkpointSaver, { messagesBeforeSummary = 12, maxSummaries = 7, llm, debug = false }) {
|
|
109
|
+
super();
|
|
110
|
+
this.checkpointSaver = checkpointSaver;
|
|
111
|
+
this.messagesBeforeSummary = messagesBeforeSummary;
|
|
112
|
+
this.maxSummaries = maxSummaries;
|
|
113
|
+
this.llm = llm;
|
|
114
|
+
this.debug = debug;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Zählt User/AI Messages (ignoriert System-Messages)
|
|
118
|
+
*/
|
|
119
|
+
countChatMessages(messages) {
|
|
120
|
+
return messages.filter(msg => msg instanceof HumanMessage || msg instanceof AIMessage).length;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Findet alle System-Messages die Zusammenfassungen sind
|
|
124
|
+
*/
|
|
125
|
+
findSummaryMessages(messages) {
|
|
126
|
+
const summaries = [];
|
|
127
|
+
messages.forEach((msg, index) => {
|
|
128
|
+
if (msg instanceof SystemMessage &&
|
|
129
|
+
typeof msg.content === 'string' &&
|
|
130
|
+
msg.content.includes('Zusammenfassung')) {
|
|
131
|
+
summaries.push({ index, message: msg });
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return summaries;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Konvertiert Messages zu Text für Summarization
|
|
138
|
+
*/
|
|
139
|
+
messagesToText(messages) {
|
|
140
|
+
return messages.map(msg => {
|
|
141
|
+
const role = msg instanceof HumanMessage ? 'User'
|
|
142
|
+
: msg instanceof AIMessage ? 'Assistant'
|
|
143
|
+
: 'System';
|
|
144
|
+
const content = typeof msg.content === 'string'
|
|
145
|
+
? msg.content
|
|
146
|
+
: JSON.stringify(msg.content);
|
|
147
|
+
return `${role}: ${content}`;
|
|
148
|
+
}).join('\n\n');
|
|
149
|
+
}
|
|
150
|
+
async applySmartSummarization(checkpoint) {
|
|
151
|
+
// Guard: Wenn checkpoint undefined ist, gib ihn zurück
|
|
152
|
+
if (!checkpoint) {
|
|
153
|
+
return checkpoint;
|
|
154
|
+
}
|
|
155
|
+
// Messages sind in channel_values gespeichert
|
|
156
|
+
const channelValues = checkpoint.channel_values || {};
|
|
157
|
+
const messages = channelValues.messages || [];
|
|
158
|
+
// Finde alle Zusammenfassungs-System-Messages
|
|
159
|
+
const summaryMessages = this.findSummaryMessages(messages);
|
|
160
|
+
// Finde den Index der letzten Zusammenfassung (falls vorhanden)
|
|
161
|
+
const lastSummaryIndex = summaryMessages.length > 0
|
|
162
|
+
? summaryMessages[summaryMessages.length - 1].index
|
|
163
|
+
: -1;
|
|
164
|
+
// Finde die Messages NACH der letzten Zusammenfassung
|
|
165
|
+
const messagesAfterLastSummary = messages.slice(lastSummaryIndex + 1);
|
|
166
|
+
// Zähle nur User/AI Messages NACH der letzten Zusammenfassung
|
|
167
|
+
const chatMessageCount = this.countChatMessages(messagesAfterLastSummary);
|
|
168
|
+
// Wenn noch nicht genug Messages nach der letzten Zusammenfassung, keine Summarization
|
|
169
|
+
if (chatMessageCount < this.messagesBeforeSummary) {
|
|
170
|
+
return checkpoint;
|
|
171
|
+
}
|
|
172
|
+
// Finde die Indizes der letzten X User/AI Messages NACH der letzten Zusammenfassung die zusammengefasst werden sollen
|
|
173
|
+
const indicesToSummarize = [];
|
|
174
|
+
const messagesToSummarize = [];
|
|
175
|
+
let chatCount = 0;
|
|
176
|
+
// Gehe rückwärts durch Messages NACH der letzten Zusammenfassung
|
|
177
|
+
for (let i = messagesAfterLastSummary.length - 1; i >= 0 && chatCount < this.messagesBeforeSummary; i--) {
|
|
178
|
+
const msg = messagesAfterLastSummary[i];
|
|
179
|
+
if (msg instanceof HumanMessage || msg instanceof AIMessage) {
|
|
180
|
+
const originalIndex = lastSummaryIndex + 1 + i; // Original-Index im messages Array
|
|
181
|
+
indicesToSummarize.unshift(originalIndex); // Am Anfang einfügen für korrekte Reihenfolge
|
|
182
|
+
messagesToSummarize.unshift(msg); // Am Anfang einfügen für korrekte Reihenfolge
|
|
183
|
+
chatCount++;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (messagesToSummarize.length === 0) {
|
|
187
|
+
return checkpoint;
|
|
188
|
+
}
|
|
189
|
+
// Erstelle Zusammenfassung
|
|
190
|
+
const conversationText = this.messagesToText(messagesToSummarize);
|
|
191
|
+
const summary = await summarize({
|
|
192
|
+
conversation: conversationText,
|
|
193
|
+
llm: this.llm,
|
|
194
|
+
maxWords: 150
|
|
195
|
+
});
|
|
196
|
+
if (this.debug) {
|
|
197
|
+
console.log(`Summary erstellt beim SmartCheckpointSaver: ${summary}`);
|
|
198
|
+
}
|
|
199
|
+
// Erstelle neue System-Message mit Zusammenfassung
|
|
200
|
+
const summarySystemMessage = new SystemMessage(`Zusammenfassung der vorherigen Konversation:\n${summary}`);
|
|
201
|
+
// Entferne die Messages die zusammengefasst wurden (verwende Indizes)
|
|
202
|
+
const remainingMessages = messages.filter((_, index) => !indicesToSummarize.includes(index));
|
|
203
|
+
// Finde die Position der letzten Zusammenfassung im remainingMessages Array
|
|
204
|
+
// (Die Indizes haben sich verschoben, aber die letzte Zusammenfassung sollte noch da sein)
|
|
205
|
+
const remainingSummaryMessages = this.findSummaryMessages(remainingMessages);
|
|
206
|
+
const lastSummaryIndexInRemaining = remainingSummaryMessages.length > 0
|
|
207
|
+
? remainingSummaryMessages[remainingSummaryMessages.length - 1].index
|
|
208
|
+
: -1;
|
|
209
|
+
// Füge Zusammenfassung direkt nach der letzten Zusammenfassung ein
|
|
210
|
+
// Wenn keine Zusammenfassung vorhanden, füge am Anfang ein (nach System-Messages)
|
|
211
|
+
let newMessages;
|
|
212
|
+
if (lastSummaryIndexInRemaining >= 0) {
|
|
213
|
+
const beforeSummary = remainingMessages.slice(0, lastSummaryIndexInRemaining + 1);
|
|
214
|
+
const afterSummary = remainingMessages.slice(lastSummaryIndexInRemaining + 1);
|
|
215
|
+
newMessages = [...beforeSummary, summarySystemMessage, ...afterSummary];
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
// Keine Zusammenfassung vorhanden: Füge nach System-Messages ein
|
|
219
|
+
const systemMessages = remainingMessages.filter((msg) => msg instanceof SystemMessage);
|
|
220
|
+
const nonSystemMessages = remainingMessages.filter((msg) => !(msg instanceof SystemMessage));
|
|
221
|
+
newMessages = [...systemMessages, summarySystemMessage, ...nonSystemMessages];
|
|
222
|
+
}
|
|
223
|
+
// Prüfe ob zu viele Zusammenfassungen vorhanden sind
|
|
224
|
+
const allSummaries = this.findSummaryMessages(newMessages);
|
|
225
|
+
if (allSummaries.length > this.maxSummaries) {
|
|
226
|
+
// Entferne die älteste Zusammenfassung
|
|
227
|
+
const oldestSummary = allSummaries[0];
|
|
228
|
+
const finalMessages = newMessages.filter((_, index) => index !== oldestSummary.index);
|
|
229
|
+
return {
|
|
230
|
+
...checkpoint,
|
|
231
|
+
channel_values: {
|
|
232
|
+
...channelValues,
|
|
233
|
+
messages: finalMessages
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
...checkpoint,
|
|
239
|
+
channel_values: {
|
|
240
|
+
...channelValues,
|
|
241
|
+
messages: newMessages
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
async put(config, checkpoint, metadata, newVersions) {
|
|
246
|
+
// Guard: Wenn checkpoint undefined ist, gib ihn direkt weiter
|
|
247
|
+
if (!checkpoint) {
|
|
248
|
+
return await this.checkpointSaver.put(config, checkpoint, metadata, newVersions);
|
|
249
|
+
}
|
|
250
|
+
// Wende Smart Summarization an
|
|
251
|
+
const optimizedCheckpoint = await this.applySmartSummarization(checkpoint);
|
|
252
|
+
// Speichere im unterliegenden CheckpointSaver
|
|
253
|
+
return await this.checkpointSaver.put(config, optimizedCheckpoint, metadata, newVersions);
|
|
254
|
+
}
|
|
255
|
+
async get(config) {
|
|
256
|
+
return await this.checkpointSaver.get(config);
|
|
257
|
+
}
|
|
258
|
+
// @ts-expect-error - Type incompatibility due to duplicate LangChain versions in monorepo
|
|
259
|
+
async *list(config, options) {
|
|
260
|
+
// @ts-expect-error - Type incompatibility due to duplicate LangChain versions in monorepo
|
|
261
|
+
yield* this.checkpointSaver.list(config, options);
|
|
262
|
+
}
|
|
263
|
+
async delete(config) {
|
|
264
|
+
const threadId = config.configurable?.thread_id || "default";
|
|
265
|
+
return await this.checkpointSaver.deleteThread(threadId);
|
|
266
|
+
}
|
|
267
|
+
// @ts-expect-error - Type incompatibility due to duplicate LangChain versions in monorepo
|
|
268
|
+
async getTuple(config) {
|
|
269
|
+
// @ts-expect-error - Type incompatibility due to duplicate LangChain versions in monorepo
|
|
270
|
+
return await this.checkpointSaver.getTuple(config);
|
|
271
|
+
}
|
|
272
|
+
async putWrites(config, writes, taskId) {
|
|
273
|
+
// putWrites wird für Channel-Updates verwendet, nicht für vollständige Checkpoints
|
|
274
|
+
// Summarization wird nur in put() angewendet, wo vollständige Checkpoints gespeichert werden
|
|
275
|
+
// Daher delegieren wir direkt an den unterliegenden Saver
|
|
276
|
+
await this.checkpointSaver.putWrites(config, writes, taskId);
|
|
277
|
+
}
|
|
278
|
+
async deleteThread(threadId) {
|
|
279
|
+
return await this.checkpointSaver.deleteThread(threadId);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/rag.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { SupabaseVectorStore, FaissStore, Document, Embeddings, ChatPromptTemplate, BaseChatModel, VectorStore, BaseRetriever } from "./imports";
|
|
2
|
+
import { SupabaseClient } from "@delofarag/supabase-utils";
|
|
3
|
+
interface SupabaseStoreConfig {
|
|
4
|
+
data: string[];
|
|
5
|
+
table_name?: string;
|
|
6
|
+
RPC_function?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function turn_to_docs<T>(docs: T[]): Document<Record<string, any>>[];
|
|
9
|
+
export declare function createSupabaseVectoreStore({ supabase, data, table_name, RPC_function }: SupabaseStoreConfig & {
|
|
10
|
+
supabase: SupabaseClient;
|
|
11
|
+
}): Promise<SupabaseVectorStore>;
|
|
12
|
+
export declare function getSupabaseVectorStore({ supabase, table_name, RPC_function }: {
|
|
13
|
+
supabase: SupabaseClient;
|
|
14
|
+
table_name?: string;
|
|
15
|
+
RPC_function?: string;
|
|
16
|
+
}): SupabaseVectorStore;
|
|
17
|
+
export declare function createFaissStore({ data, save_path, embeddings }: {
|
|
18
|
+
data: string[];
|
|
19
|
+
save_path?: string;
|
|
20
|
+
embeddings?: Embeddings;
|
|
21
|
+
}): Promise<FaissStore>;
|
|
22
|
+
export declare function loadFaissStore({ path, embeddings }: {
|
|
23
|
+
path: string;
|
|
24
|
+
embeddings?: Embeddings;
|
|
25
|
+
}): Promise<FaissStore>;
|
|
26
|
+
export declare function createRAGChain({ vectorStore, llm, prompt, num_of_results_from_vdb }: {
|
|
27
|
+
vectorStore: VectorStore;
|
|
28
|
+
llm: BaseChatModel;
|
|
29
|
+
prompt?: ChatPromptTemplate;
|
|
30
|
+
num_of_results_from_vdb?: number;
|
|
31
|
+
}): Promise<any>;
|
|
32
|
+
export declare function createRAGChainFromRetriever({ retriever, llm, prompt }: {
|
|
33
|
+
retriever: BaseRetriever;
|
|
34
|
+
llm: BaseChatModel;
|
|
35
|
+
prompt?: ChatPromptTemplate;
|
|
36
|
+
}): Promise<any>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=rag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag.d.ts","sourceRoot":"","sources":["../src/rag.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAGnB,UAAU,EACV,QAAQ,EACR,UAAU,EAGV,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,aAAa,EAChB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1D,UAAU,mBAAmB;IACzB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB;AAWD,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAKzE;AAED,wBAAsB,0BAA0B,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAwB,EAAE,YAAgC,EAAC,EAAE,mBAAmB,GAAG;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAC,gCAa9K;AAGD,wBAAgB,sBAAsB,CAAC,EAAC,QAAQ,EAAE,UAAwB,EAAE,YAAgC,EAAC,EAAE;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAC,uBAMpL;AAED,wBAAsB,gBAAgB,CAAC,EAAC,IAAI,EAAE,SAAuB,EAAE,UAA2B,EAAC,EAAE;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,UAAU,CAAA;CAAC,uBAWjK;AAED,wBAAsB,cAAc,CAAC,EAAC,IAAI,EAAE,UAA2B,EAAC,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,UAAU,CAAA;CAAC,uBAEhH;AAED,wBAAsB,cAAc,CAAC,EACjC,WAAW,EACX,GAAG,EACH,MAAM,EACN,uBAA2B,EAC9B,EAAE;IACC,WAAW,EAAE,WAAW,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACnC,gBAiBA;AAGD,wBAAsB,2BAA2B,CAAC,EAC9C,SAAS,EACT,GAAG,EACH,MAAM,EACT,EAAE;IACC,SAAS,EAAE,aAAa,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC9B,gBAcA"}
|
package/dist/rag.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { SupabaseVectorStore, OllamaEmbeddings, RecursiveCharacterTextSplitter, FaissStore, Document, createStuffDocumentsChain, createRetrievalChain } from "./imports";
|
|
2
|
+
const baseEmbeddings = new OllamaEmbeddings({
|
|
3
|
+
model: "nomic-embed-text"
|
|
4
|
+
});
|
|
5
|
+
const baseSplitter = new RecursiveCharacterTextSplitter({
|
|
6
|
+
chunkSize: 500,
|
|
7
|
+
chunkOverlap: 50
|
|
8
|
+
});
|
|
9
|
+
export function turn_to_docs(docs) {
|
|
10
|
+
return docs.map(doc => new Document({
|
|
11
|
+
pageContent: typeof doc === "string" ? doc : JSON.stringify(doc, null, 2),
|
|
12
|
+
metadata: {}
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
export async function createSupabaseVectoreStore({ supabase, data, table_name = "documents", RPC_function = "match_documents" }) {
|
|
16
|
+
const docs = turn_to_docs(data);
|
|
17
|
+
const splitted_docs = await baseSplitter.splitDocuments(docs);
|
|
18
|
+
return await SupabaseVectorStore.fromDocuments(splitted_docs, baseEmbeddings, {
|
|
19
|
+
client: supabase,
|
|
20
|
+
tableName: table_name,
|
|
21
|
+
queryName: RPC_function
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
// Bestehenden Supabase Store holen (ohne neue Docs)
|
|
25
|
+
export function getSupabaseVectorStore({ supabase, table_name = "documents", RPC_function = "match_documents" }) {
|
|
26
|
+
return new SupabaseVectorStore(baseEmbeddings, {
|
|
27
|
+
client: supabase,
|
|
28
|
+
tableName: table_name,
|
|
29
|
+
queryName: RPC_function
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export async function createFaissStore({ data, save_path = "faiss_rag", embeddings = baseEmbeddings }) {
|
|
33
|
+
const docs = turn_to_docs(data);
|
|
34
|
+
const splitted_docs = await baseSplitter.splitDocuments(docs);
|
|
35
|
+
const vectore_store = await FaissStore.fromDocuments(splitted_docs, embeddings);
|
|
36
|
+
if (save_path) {
|
|
37
|
+
await vectore_store.save(save_path);
|
|
38
|
+
}
|
|
39
|
+
return vectore_store;
|
|
40
|
+
}
|
|
41
|
+
export async function loadFaissStore({ path, embeddings = baseEmbeddings }) {
|
|
42
|
+
return await FaissStore.load(path, embeddings);
|
|
43
|
+
}
|
|
44
|
+
export async function createRAGChain({ vectorStore, llm, prompt, num_of_results_from_vdb = 4 }) {
|
|
45
|
+
const model = llm;
|
|
46
|
+
const retriever = vectorStore.asRetriever({ k: num_of_results_from_vdb });
|
|
47
|
+
// Document Chain: Kombiniert Docs in den Prompt
|
|
48
|
+
const documentChain = await createStuffDocumentsChain({
|
|
49
|
+
llm: model,
|
|
50
|
+
prompt: prompt
|
|
51
|
+
});
|
|
52
|
+
// Retrieval Chain: Verbindet Retriever mit Document Chain
|
|
53
|
+
const retrievalChain = await createRetrievalChain({
|
|
54
|
+
retriever: retriever,
|
|
55
|
+
combineDocsChain: documentChain
|
|
56
|
+
});
|
|
57
|
+
return retrievalChain;
|
|
58
|
+
}
|
|
59
|
+
// Erstellt eine Retrieval Chain direkt aus einem Retriever
|
|
60
|
+
export async function createRAGChainFromRetriever({ retriever, llm, prompt }) {
|
|
61
|
+
const model = llm;
|
|
62
|
+
const documentChain = await createStuffDocumentsChain({
|
|
63
|
+
llm: model,
|
|
64
|
+
prompt: prompt
|
|
65
|
+
});
|
|
66
|
+
const retrievalChain = await createRetrievalChain({
|
|
67
|
+
retriever: retriever,
|
|
68
|
+
combineDocsChain: documentChain
|
|
69
|
+
});
|
|
70
|
+
return retrievalChain;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=rag.js.map
|