@delofarag/ai-utils 1.3.0 → 1.3.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 +347 -0
- package/dist/heart/agent.d.ts +2 -2
- package/dist/heart/agent.d.ts.map +1 -1
- package/dist/heart/agent.js +6 -6
- package/dist/heart/agent.js.map +1 -1
- package/dist/heart/chain.d.ts +7 -3
- package/dist/heart/chain.d.ts.map +1 -1
- package/dist/heart/chain.js +9 -4
- package/dist/heart/chain.js.map +1 -1
- package/dist/heart/chatbot.d.ts +10 -4
- package/dist/heart/chatbot.d.ts.map +1 -1
- package/dist/heart/chatbot.js +15 -7
- package/dist/heart/chatbot.js.map +1 -1
- package/dist/heart/memorychain.d.ts +5 -5
- package/dist/heart/memorychain.d.ts.map +1 -1
- package/dist/heart/memorychain.js +7 -6
- package/dist/heart/memorychain.js.map +1 -1
- package/dist/heart/tools/Tavily.d.ts +11 -10
- package/dist/heart/tools/Tavily.d.ts.map +1 -1
- package/dist/helpers.d.ts +20 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +20 -1
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/magic-funcs/answerers/ask.d.ts +6 -0
- package/dist/magic-funcs/answerers/ask.d.ts.map +1 -0
- package/dist/magic-funcs/answerers/ask.js +17 -0
- package/dist/magic-funcs/answerers/ask.js.map +1 -0
- package/dist/magic-funcs/answerers/websearch.d.ts +2 -0
- package/dist/magic-funcs/answerers/websearch.d.ts.map +1 -0
- package/dist/magic-funcs/answerers/websearch.js +19 -0
- package/dist/magic-funcs/answerers/websearch.js.map +1 -0
- package/dist/magic-funcs/evaluators/classify.d.ts +23 -0
- package/dist/magic-funcs/evaluators/classify.d.ts.map +1 -0
- package/dist/magic-funcs/evaluators/classify.js +61 -0
- package/dist/magic-funcs/evaluators/classify.js.map +1 -0
- package/dist/magic-funcs/evaluators/decide.d.ts +22 -0
- package/dist/magic-funcs/evaluators/decide.d.ts.map +1 -0
- package/dist/magic-funcs/evaluators/decide.js +52 -0
- package/dist/magic-funcs/evaluators/decide.js.map +1 -0
- package/dist/magic-funcs/optimizers/promptify.d.ts +8 -0
- package/dist/magic-funcs/optimizers/promptify.d.ts.map +1 -0
- package/dist/magic-funcs/optimizers/promptify.js +48 -0
- package/dist/magic-funcs/optimizers/promptify.js.map +1 -0
- package/dist/magic-funcs/optimizers/ragify.d.ts +6 -0
- package/dist/magic-funcs/optimizers/ragify.d.ts.map +1 -0
- package/dist/magic-funcs/optimizers/ragify.js +40 -0
- package/dist/magic-funcs/optimizers/ragify.js.map +1 -0
- package/dist/magic-funcs/parsers/extract.d.ts +9 -0
- package/dist/magic-funcs/parsers/extract.d.ts.map +1 -0
- package/dist/magic-funcs/parsers/extract.js +37 -0
- package/dist/magic-funcs/parsers/extract.js.map +1 -0
- package/dist/magic-funcs/parsers/rewrite.d.ts +8 -0
- package/dist/magic-funcs/parsers/rewrite.d.ts.map +1 -0
- package/dist/magic-funcs/parsers/rewrite.js +37 -0
- package/dist/magic-funcs/parsers/rewrite.js.map +1 -0
- package/dist/magic-funcs/parsers/structure.d.ts +9 -0
- package/dist/magic-funcs/parsers/structure.d.ts.map +1 -0
- package/dist/magic-funcs/parsers/structure.js +36 -0
- package/dist/magic-funcs/parsers/structure.js.map +1 -0
- package/dist/magic-funcs/parsers/summarize.d.ts +8 -0
- package/dist/magic-funcs/parsers/summarize.d.ts.map +1 -0
- package/dist/magic-funcs/parsers/summarize.js +46 -0
- package/dist/magic-funcs/parsers/summarize.js.map +1 -0
- package/dist/memory.d.ts +2 -2
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js.map +1 -1
- package/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
# @delofarag/ai-utils
|
|
2
|
+
|
|
3
|
+
Ein Bauskasten für LLM-basierte Anwendungen: Chains, Agents, Memory, RAG, Magic-Funcs und mehr.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## ⚠️ Disclaimer: Default-LLM & getLLM()
|
|
8
|
+
|
|
9
|
+
(btw. nutz zod/v3, neuere versionen sind buggy mit langchain)
|
|
10
|
+
|
|
11
|
+
**Für alle LLM-gebundenen Utils** (Chain, MemoryChain, Agent, Chatbot, magic-funcs) gilt:
|
|
12
|
+
|
|
13
|
+
- **Default-Modell:** `llama-3.3-70b-versatile` von **ChatGroq**
|
|
14
|
+
- **API-Key:** `process.env.CHATGROQ_API_KEY`
|
|
15
|
+
|
|
16
|
+
**Wenn du `CHATGROQ_API_KEY` in deiner `.env` setzt und mit dem Modell zufrieden bist, musst du kein LLM übergeben** – alles funktioniert out-of-the-box.
|
|
17
|
+
|
|
18
|
+
Du kannst jederzeit ein eigenes LLM übergeben (z.B. anderes Modell, anderer Provider). Optimal dafür: die **`getLLM()`** Funktion aus `helpers.ts`. Sie ist eine Abstraktionsschicht für:
|
|
19
|
+
|
|
20
|
+
| Typ | Beispiel |
|
|
21
|
+
|-----|----------|
|
|
22
|
+
| **Groq** | `getLLM({ type: "groq", apikey: process.env.CHATGROQ_API_KEY!, model: "llama-3.3-70b-versatile" })` |
|
|
23
|
+
| **OpenRouter** | `getLLM({ type: "openrouter", apikey: process.env.OPENROUTER_API_KEY!, model: "openai/gpt-4o-mini" })` |
|
|
24
|
+
| **Ollama (lokal)** | `getLLM({ type: "localOllama", model: "llama3.2:3b" })` |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Die 4 Hauptklassen
|
|
29
|
+
|
|
30
|
+
### 1. Chain
|
|
31
|
+
|
|
32
|
+
**Was:** Stateless LLM-Chain mit strukturiertem Output (Zod-Schema) und optionalem RAG.
|
|
33
|
+
|
|
34
|
+
**Wann:** Einmalige Abfragen ohne Konversationsgedächtnis. Ideal für formularähnliche Eingabe → strukturierte Ausgabe.
|
|
35
|
+
|
|
36
|
+
**Initialisierung:**
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { Chain, DEFAULT_SCHEMA } from "@delofarag/ai-utils"
|
|
40
|
+
import { z } from "zod/v3"
|
|
41
|
+
|
|
42
|
+
const schema = z.object({
|
|
43
|
+
output: z.string().describe("Deine Antwort"),
|
|
44
|
+
score: z.number().optional()
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
const chain = new Chain({
|
|
48
|
+
prompt: "Du bist ein hilfreicher Assistent.",
|
|
49
|
+
// llm optional – Default: Groq
|
|
50
|
+
schema
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
const result = await chain.invoke({ input: "Was ist die Hauptstadt von Frankreich?" })
|
|
54
|
+
// result: { output: "Paris", score?: number }
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**RAG:** Mit `chain.setContext(vectorStore)` und `chain.addContext(["Text 1", "Text 2"])` wird automatisch Retrieval vor dem LLM-Call eingebaut.
|
|
58
|
+
|
|
59
|
+
**Warum so:** Chain ist die kleinste Einheit – nur Prompt + LLM + Schema. Kein Memory, keine Tools. Einfach zu testen und zu komponieren.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### 2. MemoryChain
|
|
64
|
+
|
|
65
|
+
**Was:** Chain mit Konversationsgedächtnis. Speichert User/AI-Messages pro `thread_id`.
|
|
66
|
+
|
|
67
|
+
**Wann:** Chat-ähnliche Flows, bei denen der Kontext der vorherigen Nachrichten wichtig ist.
|
|
68
|
+
|
|
69
|
+
**Initialisierung:**
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
import { MemoryChain, SmartCheckpointSaver, MemorySaver, getLLM } from "@delofarag/ai-utils"
|
|
73
|
+
|
|
74
|
+
const llm = getLLM({ type: "groq", apikey: process.env.CHATGROQ_API_KEY! })
|
|
75
|
+
|
|
76
|
+
const memoryChain = new MemoryChain({
|
|
77
|
+
memory: new SmartCheckpointSaver(new MemorySaver(), { llm }),
|
|
78
|
+
prompt: "Du bist ein hilfreicher Assistent.",
|
|
79
|
+
llm
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
const result = await memoryChain.invoke({
|
|
83
|
+
thread_id: "user-123",
|
|
84
|
+
input: "Ich heiße Max."
|
|
85
|
+
})
|
|
86
|
+
const result2 = await memoryChain.invoke({
|
|
87
|
+
thread_id: "user-123",
|
|
88
|
+
input: "Wie heiße ich?"
|
|
89
|
+
})
|
|
90
|
+
// result2.output ≈ "Du heißt Max."
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Alternativ:** Du kannst eine bestehende `Chain` übergeben: `new MemoryChain({ chain: myChain, memory })`.
|
|
94
|
+
|
|
95
|
+
**Warum so:** MemoryChain kapselt nur die Memory-Logik – History laden, an den Prompt anhängen, Response speichern. Die eigentliche LLM-Logik bleibt in der Chain.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### 3. Agent
|
|
100
|
+
|
|
101
|
+
**Was:** LLM mit Tools (z.B. Web-Suche, API-Calls). Nutzt LangGraphs `createReactAgent` unter der Haube.
|
|
102
|
+
|
|
103
|
+
**Wann:** Wenn das LLM externe Aktionen ausführen soll (Suche, Rechner, Datenbank, etc.).
|
|
104
|
+
|
|
105
|
+
**Initialisierung:**
|
|
106
|
+
|
|
107
|
+
```ts
|
|
108
|
+
import { Agent, ToolRegistry, tavilySearchTool, getLLM } from "@delofarag/ai-utils"
|
|
109
|
+
|
|
110
|
+
const registry = new ToolRegistry([
|
|
111
|
+
{ name: "calculator", description: "...", schema: z.object({ a: z.number(), b: z.number() }), func: ({ a, b }) => a + b },
|
|
112
|
+
tavilySearchTool
|
|
113
|
+
] as const)
|
|
114
|
+
|
|
115
|
+
const agent = new Agent({
|
|
116
|
+
prompt: "Du bist ein hilfreicher Assistent mit Zugang zu Tools.",
|
|
117
|
+
tools: registry.allTools,
|
|
118
|
+
llm: getLLM({ type: "groq", apikey: process.env.CHATGROQ_API_KEY! }),
|
|
119
|
+
memory: new SmartCheckpointSaver(new MemorySaver(), { llm }) // optional
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
const result = await agent.invoke({
|
|
123
|
+
thread_id: "session-1", // nötig wenn memory gesetzt
|
|
124
|
+
input: "Was steht heute in den Nachrichten zu KI?"
|
|
125
|
+
})
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**RAG:** `agent.setContext(vectorStore)` erzeugt automatisch ein `search_context`-Tool, mit dem das LLM den Vector Store durchsuchen kann.
|
|
129
|
+
|
|
130
|
+
**Warum so:** Der Agent entscheidet selbst, wann er Tools nutzt. Die Klasse fügt dem System-Prompt Regeln hinzu, damit unnötige Tool-Calls vermieden werden.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### 4. Chatbot
|
|
135
|
+
|
|
136
|
+
**Was:** High-Level Wrapper – je nach Konfiguration entweder ein `MemoryChain` oder ein `Agent`.
|
|
137
|
+
|
|
138
|
+
**Wann:** Schnell einen chatbasierten Assistenten bauen, mit oder ohne Tools.
|
|
139
|
+
|
|
140
|
+
**Initialisierung:**
|
|
141
|
+
|
|
142
|
+
```ts
|
|
143
|
+
import { Chatbot, tavilySearchTool, getLLM } from "@delofarag/ai-utils"
|
|
144
|
+
|
|
145
|
+
// Ohne Tools → nutzt MemoryChain
|
|
146
|
+
const simpleChatbot = new Chatbot({
|
|
147
|
+
llm: getLLM({ type: "groq", apikey: process.env.CHATGROQ_API_KEY! }),
|
|
148
|
+
prompt: "Du bist ein freundlicher Assistent."
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
// Mit Tools → nutzt Agent
|
|
152
|
+
const toolChatbot = new Chatbot({
|
|
153
|
+
llm: getLLM({ type: "groq", apikey: process.env.CHATGROQ_API_KEY! }),
|
|
154
|
+
tools: [tavilySearchTool],
|
|
155
|
+
prompt: "Du bist ein Assistent mit Webzugang."
|
|
156
|
+
})
|
|
157
|
+
|
|
158
|
+
// Streaming-Chat
|
|
159
|
+
for await (const chunk of simpleChatbot.chat({ input: "Hallo!", thread_id: "user-1" })) {
|
|
160
|
+
process.stdout.write(chunk)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// Interaktive Session (CLI)
|
|
164
|
+
await simpleChatbot.session({ breakword: "exit", id: "session-1" })
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Warum so:** Ein Einstiegspunkt für „einfach nur chatten“. Weniger Boilerplate als Chain/MemoryChain/Agent direkt zu bauen.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Tool-Registrys
|
|
172
|
+
|
|
173
|
+
### ToolRegistry (BasicToolRegistry) – empfohlen
|
|
174
|
+
|
|
175
|
+
Registriert Tools mit `name`, `description`, `schema`, `func`. Perfekt für manuell definierte Tools.
|
|
176
|
+
|
|
177
|
+
```ts
|
|
178
|
+
import { ToolRegistry } from "@delofarag/ai-utils"
|
|
179
|
+
import { z } from "zod/v3"
|
|
180
|
+
|
|
181
|
+
const registry = new ToolRegistry([
|
|
182
|
+
{
|
|
183
|
+
name: "greet",
|
|
184
|
+
description: "Begrüßt eine Person",
|
|
185
|
+
schema: z.object({ name: z.string() }),
|
|
186
|
+
func: ({ name }) => `Hallo, ${name}!`
|
|
187
|
+
}
|
|
188
|
+
] as const) // 'as const' für besseren Autocomplete
|
|
189
|
+
|
|
190
|
+
const tool = registry.getTool("greet")
|
|
191
|
+
const allTools = registry.allTools
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### ZodiosToolRegistry – noch experimentell
|
|
195
|
+
|
|
196
|
+
Wandelt Zodios-API-Endpoints automatisch in Tools um. **Funktioniert derzeit nicht zuverlässig** – nur testen, nicht für Produktion.
|
|
197
|
+
|
|
198
|
+
### tavilySearchTool & TAVILY_API_KEY
|
|
199
|
+
|
|
200
|
+
Das `tavilySearchTool` ist ein vorgefertigtes Tool für Web-Suche via Tavily. Nutzung:
|
|
201
|
+
|
|
202
|
+
- **API-Key:** `process.env.TAVILY_API_KEY` (in `.env` setzen)
|
|
203
|
+
- **Import:** `tavilySearchTool` aus `@delofarag/ai-utils`
|
|
204
|
+
- **Beispiel:** Siehe Agent-Beispiel oben
|
|
205
|
+
|
|
206
|
+
Alternativ: `TavilySearch`-Klasse für direkten Aufruf (z.B. in `websearch()`).
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Magic-Funcs
|
|
211
|
+
|
|
212
|
+
Kleine, wiederverwendbare LLM-Funktionen. **Struktur:** Immer `{ llm?, ...params }` – `llm` optional, sonst Default (Groq).
|
|
213
|
+
|
|
214
|
+
### Answerers
|
|
215
|
+
|
|
216
|
+
- **ask(question)** – Einfache Frage → Textantwort
|
|
217
|
+
- **websearch(query)** – Sucht im Web (Tavily), braucht `TAVILY_API_KEY`
|
|
218
|
+
|
|
219
|
+
### Evaluators
|
|
220
|
+
|
|
221
|
+
- **classify({ data, classes, context? })** – Ordnet Input einer von mehreren Klassen zu
|
|
222
|
+
- **decide({ material, kriteria_to_decide })** – Ja/Nein/Unclear plus Begründung
|
|
223
|
+
|
|
224
|
+
### Parsers
|
|
225
|
+
|
|
226
|
+
- **extract({ data, schema, goal? })** – Extrahiert strukturierte Daten gemäß Zod-Schema
|
|
227
|
+
- **structure({ data, into, retries? })** – Formatiert beliebigen Input in ein Zod-Schema
|
|
228
|
+
- **rewrite({ data, instruction })** – Transformiert Text nach Anweisung
|
|
229
|
+
- **summarize({ data, fokuss?, maxWords? })** – Fasst zusammen
|
|
230
|
+
|
|
231
|
+
### Optimizers
|
|
232
|
+
|
|
233
|
+
- **promptify({ request, agentRole? })** – Erzeugt System-Prompts aus Nutzeranfragen
|
|
234
|
+
- **ragify({ data })** – Optimiert Text für RAG (strukturierter, informationsdicht)
|
|
235
|
+
|
|
236
|
+
**Beispiel – immer gleiche Struktur:**
|
|
237
|
+
|
|
238
|
+
```ts
|
|
239
|
+
import { classify, extract, summarize } from "@delofarag/ai-utils"
|
|
240
|
+
import { z } from "zod/v3"
|
|
241
|
+
|
|
242
|
+
const klasse = await classify({
|
|
243
|
+
data: "Produktbewertung: Tolle Qualität!",
|
|
244
|
+
classes: ["positiv", "negativ", "neutral"] as const
|
|
245
|
+
})
|
|
246
|
+
|
|
247
|
+
const infos = await extract({
|
|
248
|
+
data: "Max, 30 Jahre, Berlin",
|
|
249
|
+
schema: z.object({ name: z.string(), alter: z.number(), stadt: z.string() })
|
|
250
|
+
})
|
|
251
|
+
|
|
252
|
+
const kurz = await summarize({ data: langerText, maxWords: 50 })
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## RAG-Implementierungen
|
|
258
|
+
|
|
259
|
+
In `rag.ts`:
|
|
260
|
+
|
|
261
|
+
- **turn_to_docs(data)** – Wandelt Strings/Objekte in LangChain-`Document[]` um
|
|
262
|
+
- **createSupabaseVectoreStore({ supabase, data, table_name?, RPC_function? })** – Supabase Vector Store aus Daten
|
|
263
|
+
- **getSupabaseVectorStore({ supabase, table_name?, RPC_function? })** – Bestehenden Store holen
|
|
264
|
+
- **createFaissStore({ data, save_path?, embeddings? })** – FAISS-Store (lokal, speicherbar)
|
|
265
|
+
- **loadFaissStore({ path, embeddings? })** – FAISS-Store laden
|
|
266
|
+
- **createRAGChain({ vectorStore, llm, prompt?, num_of_results_from_vdb? })** – Retrieval-Chain
|
|
267
|
+
- **createRAGChainFromRetriever({ retriever, llm, prompt? })** – Alternative mit eigenem Retriever
|
|
268
|
+
|
|
269
|
+
**Typischer Ablauf:**
|
|
270
|
+
|
|
271
|
+
1. Daten mit `turn_to_docs` vorbereiten
|
|
272
|
+
2. Vector Store erstellen (Supabase oder FAISS)
|
|
273
|
+
3. `chain.setContext(vectorStore)` oder `agent.setContext(vectorStore)` aufrufen
|
|
274
|
+
4. Optional: `addContext(docs)` für weitere Dokumente
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Memory: SupabaseCheckpointSaver & SmartCheckpointSaver
|
|
279
|
+
|
|
280
|
+
### SupabaseCheckpointSaver
|
|
281
|
+
|
|
282
|
+
Speichert Checkpoints (inkl. Konversationsverlauf) in einer Supabase-Tabelle. Für persistente Chats über Sessions hinweg.
|
|
283
|
+
|
|
284
|
+
```ts
|
|
285
|
+
import { SupabaseCheckpointSaver, SupabaseCheckpointRow } from "@delofarag/ai-utils"
|
|
286
|
+
import { SupabaseTable } from "@delofarag/supabase-utils"
|
|
287
|
+
|
|
288
|
+
const table = new SupabaseTable<SupabaseCheckpointRow>({ /* ... */ })
|
|
289
|
+
const saver = new SupabaseCheckpointSaver(table)
|
|
290
|
+
|
|
291
|
+
const memoryChain = new MemoryChain({
|
|
292
|
+
chain: myChain,
|
|
293
|
+
memory: saver
|
|
294
|
+
})
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Hinweis:** Noch unter Test – Tabellen-Schema muss zu den Checkpoint-Strukturen passen.
|
|
298
|
+
|
|
299
|
+
### SmartCheckpointSaver
|
|
300
|
+
|
|
301
|
+
Wrapper um einen anderen `BaseCheckpointSaver` (z.B. `MemorySaver` oder `SupabaseCheckpointSaver`). Führt automatisch **Summarization** durch:
|
|
302
|
+
|
|
303
|
+
- Nach `messagesBeforeSummary` User/AI-Nachrichten (Default: 12) wird die Konversation zusammengefasst
|
|
304
|
+
- Die Zusammenfassung ersetzt die alten Messages → weniger Tokens, längerer Kontext
|
|
305
|
+
- `maxSummaries` (Default: 7): Maximal so viele Summaries werden behalten. Sobald eine neue erstellt würde und das Limit überschritten wäre, wird die älteste Summary gelöscht (Rolling-Window)
|
|
306
|
+
|
|
307
|
+
```ts
|
|
308
|
+
import { SmartCheckpointSaver, MemorySaver, getLLM } from "@delofarag/ai-utils"
|
|
309
|
+
|
|
310
|
+
const llm = getLLM({ type: "groq", apikey: process.env.CHATGROQ_API_KEY! })
|
|
311
|
+
const memory = new SmartCheckpointSaver(new MemorySaver(), {
|
|
312
|
+
llm,
|
|
313
|
+
messagesBeforeSummary: 12,
|
|
314
|
+
maxSummaries: 7,
|
|
315
|
+
})
|
|
316
|
+
|
|
317
|
+
const chatbot = new Chatbot({ llm, memory })
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Warum so:** Lange Chats blähen den Kontext auf. SmartCheckpointSaver hält die wichtigsten Infos in Zusammenfassungen und reduziert Token-Verbrauch.
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Kurzüberblick
|
|
325
|
+
|
|
326
|
+
| Util | Zweck |
|
|
327
|
+
|------|-------|
|
|
328
|
+
| **Chain** | Stateless LLM + Schema, optional RAG |
|
|
329
|
+
| **MemoryChain** | Chain + Konversations-Memory pro thread_id, optional RAG |
|
|
330
|
+
| **Agent** | LLM + Tools, optional Memory + RAG |
|
|
331
|
+
| **Chatbot** | Einfacher Einstieg: MemoryChain oder Agent |
|
|
332
|
+
| **ToolRegistry** | Tools registrieren (empfohlen) |
|
|
333
|
+
| **tavilySearchTool** | Web-Suche (TAVILY_API_KEY) |
|
|
334
|
+
| **Magic-Funcs** | ask, websearch, classify, decide, extract, structure, rewrite, summarize, promptify, ragify |
|
|
335
|
+
| **RAG** | Supabase/FAISS Vector Stores, createRAGChain |
|
|
336
|
+
| **SupabaseCheckpointSaver** | Persistente Memory in Supabase |
|
|
337
|
+
| **SmartCheckpointSaver** | Memory mit Auto-Summarization |
|
|
338
|
+
| **getLLM()** | LLM aus Groq, OpenRouter oder Ollama |
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## .env-Variablen
|
|
343
|
+
|
|
344
|
+
| Variable | Verwendung |
|
|
345
|
+
|----------|------------|
|
|
346
|
+
| `CHATGROQ_API_KEY` | Default für alle LLM-Utils |
|
|
347
|
+
| `TAVILY_API_KEY` | tavilySearchTool, websearch() |
|
package/dist/heart/agent.d.ts
CHANGED
|
@@ -14,8 +14,8 @@ interface AgentProps<T extends z.ZodObject<any, any>> {
|
|
|
14
14
|
* CONSTRUCTOR:
|
|
15
15
|
* @example constructor({
|
|
16
16
|
prompt = `Du bist ein hilfreicher Assistent.`,
|
|
17
|
+
llm = getLLM({type:"groq", apikey: process.env.CHATGROQ_API_KEY ?? ""}),
|
|
17
18
|
tools,
|
|
18
|
-
llm,
|
|
19
19
|
schema,
|
|
20
20
|
memory
|
|
21
21
|
}: AgentProps<T>) {
|
|
@@ -44,7 +44,7 @@ export declare class Agent<T extends z.ZodObject<any, any>> {
|
|
|
44
44
|
private rag_tool;
|
|
45
45
|
private times_of_added_context;
|
|
46
46
|
private should_use_schema;
|
|
47
|
-
constructor({ prompt,
|
|
47
|
+
constructor({ prompt, llm, tools, schema, memory }: AgentProps<T>);
|
|
48
48
|
invoke(invokeInput: Record<string, any> & {
|
|
49
49
|
thread_id?: string;
|
|
50
50
|
debug?: boolean;
|
|
@@ -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,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,
|
|
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,GAAuE,EACvE,KAAK,EACL,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,14 +3,14 @@ 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 { stream } from "../helpers";
|
|
7
|
-
import { structure } from "../
|
|
6
|
+
import { getLLM, stream } from "../helpers";
|
|
7
|
+
import { structure } from "../magic-funcs/parsers/structure";
|
|
8
8
|
/**
|
|
9
9
|
* CONSTRUCTOR:
|
|
10
10
|
* @example constructor({
|
|
11
11
|
prompt = `Du bist ein hilfreicher Assistent.`,
|
|
12
|
+
llm = getLLM({type:"groq", apikey: process.env.CHATGROQ_API_KEY ?? ""}),
|
|
12
13
|
tools,
|
|
13
|
-
llm,
|
|
14
14
|
schema,
|
|
15
15
|
memory
|
|
16
16
|
}: AgentProps<T>) {
|
|
@@ -39,7 +39,7 @@ export class Agent {
|
|
|
39
39
|
rag_tool;
|
|
40
40
|
times_of_added_context = 0;
|
|
41
41
|
should_use_schema = true;
|
|
42
|
-
constructor({ prompt = `Du bist ein hilfreicher Assistent.`,
|
|
42
|
+
constructor({ prompt = `Du bist ein hilfreicher Assistent.`, llm = getLLM({ type: "groq", apikey: process.env.CHATGROQ_API_KEY ?? "" }), tools, schema, memory }) {
|
|
43
43
|
this.prompt = typeof prompt === "string" ? [["system", prompt]] : Array.isArray(prompt) ? prompt.map((p) => {
|
|
44
44
|
return ["system", p];
|
|
45
45
|
}) : [];
|
|
@@ -56,9 +56,9 @@ export class Agent {
|
|
|
56
56
|
async invoke(invokeInput) {
|
|
57
57
|
const { thread_id, debug, ...variables } = invokeInput;
|
|
58
58
|
if (this.memory && !thread_id)
|
|
59
|
-
throw new Error("thread_id is required when using
|
|
59
|
+
throw new Error("thread_id is required when using memory, else no memory is stored");
|
|
60
60
|
if (!this.memory && thread_id)
|
|
61
|
-
console.warn("thread_id is provided but no
|
|
61
|
+
console.warn("WARN: thread_id is provided but no memory is set, so no memory is stored");
|
|
62
62
|
const humanMessages = Object.entries(variables).map(([key, value]) => new HumanMessage(`${key}: ${typeof value === "object" ? JSON.stringify(value) : value}`));
|
|
63
63
|
// Tools für diesen invoke (inkl. RAG falls vorhanden)
|
|
64
64
|
const activeTools = this.rag_tool
|
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,EAAC,MAAM,YAAY,CAAA;AAIjD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/heart/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/heart/chain.d.ts
CHANGED
|
@@ -9,12 +9,16 @@ export declare const DEFAULT_SCHEMA: z.ZodObject<{
|
|
|
9
9
|
}>;
|
|
10
10
|
interface ChainProps<T extends z.ZodObject<any, any>> {
|
|
11
11
|
prompt?: string | Array<string | MessagesPlaceholder<any>>;
|
|
12
|
-
llm
|
|
12
|
+
llm?: BaseChatModel;
|
|
13
13
|
schema?: T;
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* CONSTRUCTOR:
|
|
17
|
-
* @example constructor({
|
|
17
|
+
* @example constructor({
|
|
18
|
+
prompt = "du bist ein hilfreicher Assistent",
|
|
19
|
+
llm = getLLM({type:"groq", apikey: process.env.CHATGROQ_API_KEY ?? ""}),
|
|
20
|
+
schema = DEFAULT_SCHEMA as unknown as T as T
|
|
21
|
+
}:ChainProps<T>){
|
|
18
22
|
this.prompt = typeof prompt === "string" ? [["system", prompt]] : Array.isArray(prompt) ? prompt.map((p:string | MessagesPlaceholder<any>)=>{
|
|
19
23
|
if(typeof p === "string"){
|
|
20
24
|
return ["system", p]
|
|
@@ -23,7 +27,7 @@ interface ChainProps<T extends z.ZodObject<any, any>> {
|
|
|
23
27
|
}
|
|
24
28
|
}) : []
|
|
25
29
|
this.llm = llm
|
|
26
|
-
this.schema =
|
|
30
|
+
this.schema = schema
|
|
27
31
|
this.parser = StructuredOutputParser.fromZodSchema(this.schema)
|
|
28
32
|
}
|
|
29
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/heart/chain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/heart/chain.ts"],"names":[],"mappings":"AACA,OAAO,EACH,aAAa,EAGb,mBAAmB,EACnB,WAAW,EAGd,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,eAAO,MAAM,cAAc;;;;;;EAEzB,CAAA;AAEF,UAAU,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,EAAC,GAAG,CAAC;IAC/C,MAAM,CAAC,EAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,GAAG,CAAC,EAAC,aAAa,CAAA;IAClB,MAAM,CAAC,EAAC,CAAC,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,EAAC,GAAG,CAAC,GAAG,OAAO,cAAc;IACrE,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,MAAM,CAAE;gBAEJ,EACR,MAA4C,EAC5C,GAAuE,EACvE,MAA4C,EAC/C,EAAC,UAAU,CAAC,CAAC,CAAC;IAaF,MAAM,CAAC,KAAK,EAAC,MAAM,CAAC,MAAM,EAAC,GAAG,CAAC,GAAG;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAC,GAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IA2CvE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;IAuD7G,8EAA8E;IACjE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAU3B,UAAU,CAAC,WAAW,EAAE,WAAW;IAKzC,YAAY;CAKtB"}
|
package/dist/heart/chain.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getLLM } from "../helpers";
|
|
1
2
|
import { StructuredOutputParser, ChatPromptTemplate, createRetrievalChain, createStuffDocumentsChain, } from "../imports";
|
|
2
3
|
import { turn_to_docs } from "../rag";
|
|
3
4
|
import { z } from "zod/v3";
|
|
@@ -6,7 +7,11 @@ export const DEFAULT_SCHEMA = z.object({
|
|
|
6
7
|
});
|
|
7
8
|
/**
|
|
8
9
|
* CONSTRUCTOR:
|
|
9
|
-
* @example constructor({
|
|
10
|
+
* @example constructor({
|
|
11
|
+
prompt = "du bist ein hilfreicher Assistent",
|
|
12
|
+
llm = getLLM({type:"groq", apikey: process.env.CHATGROQ_API_KEY ?? ""}),
|
|
13
|
+
schema = DEFAULT_SCHEMA as unknown as T as T
|
|
14
|
+
}:ChainProps<T>){
|
|
10
15
|
this.prompt = typeof prompt === "string" ? [["system", prompt]] : Array.isArray(prompt) ? prompt.map((p:string | MessagesPlaceholder<any>)=>{
|
|
11
16
|
if(typeof p === "string"){
|
|
12
17
|
return ["system", p]
|
|
@@ -15,7 +20,7 @@ export const DEFAULT_SCHEMA = z.object({
|
|
|
15
20
|
}
|
|
16
21
|
}) : []
|
|
17
22
|
this.llm = llm
|
|
18
|
-
this.schema =
|
|
23
|
+
this.schema = schema
|
|
19
24
|
this.parser = StructuredOutputParser.fromZodSchema(this.schema)
|
|
20
25
|
}
|
|
21
26
|
*/
|
|
@@ -26,7 +31,7 @@ export class Chain {
|
|
|
26
31
|
parser;
|
|
27
32
|
llm;
|
|
28
33
|
schema;
|
|
29
|
-
constructor({ prompt = "du bist ein hilfreicher Assistent", llm, schema }) {
|
|
34
|
+
constructor({ prompt = "du bist ein hilfreicher Assistent", llm = getLLM({ type: "groq", apikey: process.env.CHATGROQ_API_KEY ?? "" }), schema = DEFAULT_SCHEMA }) {
|
|
30
35
|
this.prompt = typeof prompt === "string" ? [["system", prompt]] : Array.isArray(prompt) ? prompt.map((p) => {
|
|
31
36
|
if (typeof p === "string") {
|
|
32
37
|
return ["system", p];
|
|
@@ -36,7 +41,7 @@ export class Chain {
|
|
|
36
41
|
}
|
|
37
42
|
}) : [];
|
|
38
43
|
this.llm = llm;
|
|
39
|
-
this.schema =
|
|
44
|
+
this.schema = schema;
|
|
40
45
|
this.parser = StructuredOutputParser.fromZodSchema(this.schema);
|
|
41
46
|
}
|
|
42
47
|
async invoke(input) {
|
package/dist/heart/chain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/heart/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,sBAAsB,EACtB,kBAAkB,EAGlB,oBAAoB,EACpB,yBAAyB,GAC5B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CACnE,CAAC,CAAA;AAQF
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/heart/chain.ts"],"names":[],"mappings":"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"}
|
package/dist/heart/chatbot.d.ts
CHANGED
|
@@ -8,26 +8,32 @@ type ChatbotProps = {
|
|
|
8
8
|
};
|
|
9
9
|
/**
|
|
10
10
|
* CONSTRUCTOR:
|
|
11
|
-
* @example constructor({
|
|
11
|
+
* @example constructor({
|
|
12
|
+
llm = getLLM({type:"groq", apikey: process.env.CHATGROQ_API_KEY ?? ""}),
|
|
13
|
+
memory = new SmartCheckpointSaver(new MemorySaver(),{ llm: llm ?? getLLM({type:"groq", apikey: process.env.CHATGROQ_API_KEY ?? ""})}),
|
|
14
|
+
prompt = "Du bist ein hilfreicher chatbot der mit dem User ein höffliches und hilfreiches Gespräch führt",
|
|
15
|
+
tools,
|
|
16
|
+
}:ChatbotProps){
|
|
12
17
|
if(tools){
|
|
13
18
|
this.agent = new Agent({
|
|
14
|
-
memory: memory
|
|
19
|
+
memory: memory,
|
|
15
20
|
tools : tools,
|
|
16
21
|
prompt: prompt,
|
|
17
22
|
llm: llm
|
|
18
23
|
})
|
|
19
24
|
} else {
|
|
20
25
|
this.chain = new MemoryChain({
|
|
21
|
-
memory: memory
|
|
26
|
+
memory: memory,
|
|
22
27
|
prompt: prompt,
|
|
23
28
|
llm: llm
|
|
24
29
|
})
|
|
25
30
|
}
|
|
31
|
+
}
|
|
26
32
|
*/
|
|
27
33
|
export declare class Chatbot {
|
|
28
34
|
private chain;
|
|
29
35
|
private agent;
|
|
30
|
-
constructor({ llm, prompt, tools,
|
|
36
|
+
constructor({ llm, memory, prompt, tools, }: ChatbotProps);
|
|
31
37
|
chat({ input, thread_id }: {
|
|
32
38
|
input: string;
|
|
33
39
|
thread_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../src/heart/chatbot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAqF,WAAW,EAAE,qBAAqB,EAAuB,MAAM,YAAY,CAAA;AAC5L,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"chatbot.d.ts","sourceRoot":"","sources":["../../src/heart/chatbot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAqF,WAAW,EAAE,qBAAqB,EAAuB,MAAM,YAAY,CAAA;AAC5L,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAS1C,KAAK,YAAY,GAAG;IAChB,GAAG,EAAE,aAAa,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAA;IAC/B,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAC/B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,OAAO;IAChB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,KAAK,CAAwB;gBAEzB,EACR,GAAuE,EACvE,MAAqI,EACrI,MAAyG,EACzG,KAAK,GACR,EAAC,YAAY;IAiBA,IAAI,CAAC,EAAC,KAAK,EAAC,SAAS,EAAC,EAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,SAAS,EAAC,MAAM,CAAA;KAAC,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IAWlG,OAAO,CAAC,EACjB,SAAkB,EAClB,gBAA2C,EAC3C,EAAoB,EACvB,GAAC;QACE,SAAS,CAAC,EAAC,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAC,MAAM,CAAC;QACzB,EAAE,CAAC,EAAC,MAAM,CAAA;KACR;IA4BO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IAU3B,UAAU,CAAC,WAAW,EAAE,WAAW;IAUnC,YAAY;CAS5B"}
|