langchain 0.0.204-rc.0 → 0.0.204-rc.2

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.
Files changed (61) hide show
  1. package/dist/agents/toolkits/aws_sfn.cjs +3 -75
  2. package/dist/agents/toolkits/aws_sfn.d.ts +2 -45
  3. package/dist/agents/toolkits/aws_sfn.js +2 -73
  4. package/dist/agents/toolkits/base.cjs +15 -9
  5. package/dist/agents/toolkits/base.d.ts +1 -9
  6. package/dist/agents/toolkits/base.js +1 -7
  7. package/dist/agents/toolkits/connery/index.cjs +15 -37
  8. package/dist/agents/toolkits/connery/index.d.ts +1 -23
  9. package/dist/agents/toolkits/connery/index.js +1 -35
  10. package/dist/cache/ioredis.cjs +15 -77
  11. package/dist/cache/ioredis.d.ts +1 -40
  12. package/dist/cache/ioredis.js +1 -75
  13. package/dist/memory/chat_memory.cjs +15 -61
  14. package/dist/memory/chat_memory.d.ts +1 -36
  15. package/dist/memory/chat_memory.js +1 -59
  16. package/dist/memory/motorhead_memory.cjs +15 -161
  17. package/dist/memory/motorhead_memory.d.ts +1 -63
  18. package/dist/memory/motorhead_memory.js +1 -159
  19. package/dist/memory/zep.cjs +15 -222
  20. package/dist/memory/zep.d.ts +1 -86
  21. package/dist/memory/zep.js +1 -220
  22. package/dist/schema/runnable/base.cjs +2 -1
  23. package/dist/schema/runnable/base.d.ts +1 -1
  24. package/dist/schema/runnable/base.js +1 -1
  25. package/dist/stores/message/in_memory.cjs +15 -49
  26. package/dist/stores/message/in_memory.d.ts +1 -28
  27. package/dist/stores/message/in_memory.js +1 -47
  28. package/dist/tools/aws_lambda.cjs +15 -83
  29. package/dist/tools/aws_lambda.d.ts +1 -25
  30. package/dist/tools/aws_lambda.js +1 -82
  31. package/dist/tools/dynamic.cjs +15 -87
  32. package/dist/tools/dynamic.d.ts +1 -48
  33. package/dist/tools/dynamic.js +1 -84
  34. package/dist/util/convex.cjs +15 -75
  35. package/dist/util/convex.d.ts +1 -26
  36. package/dist/util/convex.js +1 -74
  37. package/dist/vectorstores/memory.cjs +143 -15
  38. package/dist/vectorstores/memory.d.ts +92 -1
  39. package/dist/vectorstores/memory.js +141 -1
  40. package/package.json +4 -243
  41. package/dist/types/openai-types.cjs +0 -2
  42. package/dist/types/openai-types.d.ts +0 -135
  43. package/dist/types/openai-types.js +0 -1
  44. package/dist/util/chunk.cjs +0 -11
  45. package/dist/util/chunk.d.ts +0 -1
  46. package/dist/util/chunk.js +0 -7
  47. package/dist/util/googlevertexai-gauth.cjs +0 -36
  48. package/dist/util/googlevertexai-gauth.d.ts +0 -8
  49. package/dist/util/googlevertexai-gauth.js +0 -32
  50. package/dist/util/googlevertexai-webauth.cjs +0 -96
  51. package/dist/util/googlevertexai-webauth.d.ts +0 -22
  52. package/dist/util/googlevertexai-webauth.js +0 -92
  53. package/dist/util/iflytek_websocket_stream.cjs +0 -81
  54. package/dist/util/iflytek_websocket_stream.d.ts +0 -27
  55. package/dist/util/iflytek_websocket_stream.js +0 -77
  56. package/dist/util/llama_cpp.cjs +0 -34
  57. package/dist/util/llama_cpp.d.ts +0 -46
  58. package/dist/util/llama_cpp.js +0 -28
  59. package/dist/util/momento.cjs +0 -26
  60. package/dist/util/momento.d.ts +0 -9
  61. package/dist/util/momento.js +0 -22
@@ -1,63 +1,17 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseChatMemory = void 0;
4
- const base_js_1 = require("./base.cjs");
5
- const in_memory_js_1 = require("../stores/message/in_memory.cjs");
6
- /**
7
- * Abstract class that provides a base for implementing different types of
8
- * memory systems. It is designed to maintain the state of an application,
9
- * specifically the history of a conversation. This class is typically
10
- * extended by other classes to create specific types of memory systems.
11
- */
12
- class BaseChatMemory extends base_js_1.BaseMemory {
13
- constructor(fields) {
14
- super();
15
- Object.defineProperty(this, "chatHistory", {
16
- enumerable: true,
17
- configurable: true,
18
- writable: true,
19
- value: void 0
20
- });
21
- Object.defineProperty(this, "returnMessages", {
22
- enumerable: true,
23
- configurable: true,
24
- writable: true,
25
- value: false
26
- });
27
- Object.defineProperty(this, "inputKey", {
28
- enumerable: true,
29
- configurable: true,
30
- writable: true,
31
- value: void 0
32
- });
33
- Object.defineProperty(this, "outputKey", {
34
- enumerable: true,
35
- configurable: true,
36
- writable: true,
37
- value: void 0
38
- });
39
- this.chatHistory = fields?.chatHistory ?? new in_memory_js_1.ChatMessageHistory();
40
- this.returnMessages = fields?.returnMessages ?? this.returnMessages;
41
- this.inputKey = fields?.inputKey ?? this.inputKey;
42
- this.outputKey = fields?.outputKey ?? this.outputKey;
43
- }
44
- /**
45
- * Method to add user and AI messages to the chat history in sequence.
46
- * @param inputValues The input values from the user.
47
- * @param outputValues The output values from the AI.
48
- * @returns Promise that resolves when the context has been saved.
49
- */
50
- async saveContext(inputValues, outputValues) {
51
- // this is purposefully done in sequence so they're saved in order
52
- await this.chatHistory.addUserMessage((0, base_js_1.getInputValue)(inputValues, this.inputKey));
53
- await this.chatHistory.addAIChatMessage((0, base_js_1.getOutputValue)(outputValues, this.outputKey));
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
54
7
  }
55
- /**
56
- * Method to clear the chat history.
57
- * @returns Promise that resolves when the chat history has been cleared.
58
- */
59
- async clear() {
60
- await this.chatHistory.clear();
61
- }
62
- }
63
- exports.BaseChatMemory = BaseChatMemory;
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@langchain/community/memory/chat_memory"), exports);
@@ -1,36 +1 @@
1
- import { BaseChatMessageHistory } from "../schema/index.js";
2
- import { BaseMemory, InputValues, OutputValues } from "./base.js";
3
- /**
4
- * Interface for the input parameters of the BaseChatMemory class.
5
- */
6
- export interface BaseChatMemoryInput {
7
- chatHistory?: BaseChatMessageHistory;
8
- returnMessages?: boolean;
9
- inputKey?: string;
10
- outputKey?: string;
11
- }
12
- /**
13
- * Abstract class that provides a base for implementing different types of
14
- * memory systems. It is designed to maintain the state of an application,
15
- * specifically the history of a conversation. This class is typically
16
- * extended by other classes to create specific types of memory systems.
17
- */
18
- export declare abstract class BaseChatMemory extends BaseMemory {
19
- chatHistory: BaseChatMessageHistory;
20
- returnMessages: boolean;
21
- inputKey?: string;
22
- outputKey?: string;
23
- constructor(fields?: BaseChatMemoryInput);
24
- /**
25
- * Method to add user and AI messages to the chat history in sequence.
26
- * @param inputValues The input values from the user.
27
- * @param outputValues The output values from the AI.
28
- * @returns Promise that resolves when the context has been saved.
29
- */
30
- saveContext(inputValues: InputValues, outputValues: OutputValues): Promise<void>;
31
- /**
32
- * Method to clear the chat history.
33
- * @returns Promise that resolves when the chat history has been cleared.
34
- */
35
- clear(): Promise<void>;
36
- }
1
+ export * from "@langchain/community/memory/chat_memory";
@@ -1,59 +1 @@
1
- import { BaseMemory, getInputValue, getOutputValue, } from "./base.js";
2
- import { ChatMessageHistory } from "../stores/message/in_memory.js";
3
- /**
4
- * Abstract class that provides a base for implementing different types of
5
- * memory systems. It is designed to maintain the state of an application,
6
- * specifically the history of a conversation. This class is typically
7
- * extended by other classes to create specific types of memory systems.
8
- */
9
- export class BaseChatMemory extends BaseMemory {
10
- constructor(fields) {
11
- super();
12
- Object.defineProperty(this, "chatHistory", {
13
- enumerable: true,
14
- configurable: true,
15
- writable: true,
16
- value: void 0
17
- });
18
- Object.defineProperty(this, "returnMessages", {
19
- enumerable: true,
20
- configurable: true,
21
- writable: true,
22
- value: false
23
- });
24
- Object.defineProperty(this, "inputKey", {
25
- enumerable: true,
26
- configurable: true,
27
- writable: true,
28
- value: void 0
29
- });
30
- Object.defineProperty(this, "outputKey", {
31
- enumerable: true,
32
- configurable: true,
33
- writable: true,
34
- value: void 0
35
- });
36
- this.chatHistory = fields?.chatHistory ?? new ChatMessageHistory();
37
- this.returnMessages = fields?.returnMessages ?? this.returnMessages;
38
- this.inputKey = fields?.inputKey ?? this.inputKey;
39
- this.outputKey = fields?.outputKey ?? this.outputKey;
40
- }
41
- /**
42
- * Method to add user and AI messages to the chat history in sequence.
43
- * @param inputValues The input values from the user.
44
- * @param outputValues The output values from the AI.
45
- * @returns Promise that resolves when the context has been saved.
46
- */
47
- async saveContext(inputValues, outputValues) {
48
- // this is purposefully done in sequence so they're saved in order
49
- await this.chatHistory.addUserMessage(getInputValue(inputValues, this.inputKey));
50
- await this.chatHistory.addAIChatMessage(getOutputValue(outputValues, this.outputKey));
51
- }
52
- /**
53
- * Method to clear the chat history.
54
- * @returns Promise that resolves when the chat history has been cleared.
55
- */
56
- async clear() {
57
- await this.chatHistory.clear();
58
- }
59
- }
1
+ export * from "@langchain/community/memory/chat_memory";
@@ -1,163 +1,17 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MotorheadMemory = void 0;
4
- const chat_memory_js_1 = require("./chat_memory.cjs");
5
- const base_js_1 = require("./base.cjs");
6
- const async_caller_js_1 = require("../util/async_caller.cjs");
7
- const MANAGED_URL = "https://api.getmetal.io/v1/motorhead";
8
- /**
9
- * Class for managing chat message memory using the Motorhead service. It
10
- * extends BaseChatMemory and includes methods for initializing the
11
- * memory, loading memory variables, and saving the context.
12
- */
13
- class MotorheadMemory extends chat_memory_js_1.BaseChatMemory {
14
- constructor(fields) {
15
- const { sessionId, url, memoryKey, timeout, returnMessages, inputKey, outputKey, chatHistory, apiKey, clientId, ...rest } = fields;
16
- super({ returnMessages, inputKey, outputKey, chatHistory });
17
- Object.defineProperty(this, "url", {
18
- enumerable: true,
19
- configurable: true,
20
- writable: true,
21
- value: MANAGED_URL
22
- });
23
- Object.defineProperty(this, "timeout", {
24
- enumerable: true,
25
- configurable: true,
26
- writable: true,
27
- value: 3000
28
- });
29
- Object.defineProperty(this, "memoryKey", {
30
- enumerable: true,
31
- configurable: true,
32
- writable: true,
33
- value: "history"
34
- });
35
- Object.defineProperty(this, "sessionId", {
36
- enumerable: true,
37
- configurable: true,
38
- writable: true,
39
- value: void 0
40
- });
41
- Object.defineProperty(this, "context", {
42
- enumerable: true,
43
- configurable: true,
44
- writable: true,
45
- value: void 0
46
- });
47
- Object.defineProperty(this, "caller", {
48
- enumerable: true,
49
- configurable: true,
50
- writable: true,
51
- value: void 0
52
- });
53
- // Managed Params
54
- Object.defineProperty(this, "apiKey", {
55
- enumerable: true,
56
- configurable: true,
57
- writable: true,
58
- value: void 0
59
- });
60
- Object.defineProperty(this, "clientId", {
61
- enumerable: true,
62
- configurable: true,
63
- writable: true,
64
- value: void 0
65
- });
66
- this.caller = new async_caller_js_1.AsyncCaller(rest);
67
- this.sessionId = sessionId;
68
- this.url = url ?? this.url;
69
- this.memoryKey = memoryKey ?? this.memoryKey;
70
- this.timeout = timeout ?? this.timeout;
71
- this.apiKey = apiKey;
72
- this.clientId = clientId;
73
- }
74
- get memoryKeys() {
75
- return [this.memoryKey];
76
- }
77
- _getHeaders() {
78
- const isManaged = this.url === MANAGED_URL;
79
- const headers = {
80
- "Content-Type": "application/json",
81
- };
82
- if (isManaged && !(this.apiKey && this.clientId)) {
83
- throw new Error("apiKey and clientId are required for managed motorhead. Visit https://getmetal.io to get your keys.");
84
- }
85
- if (isManaged && this.apiKey && this.clientId) {
86
- headers["x-metal-api-key"] = this.apiKey;
87
- headers["x-metal-client-id"] = this.clientId;
88
- }
89
- return headers;
90
- }
91
- /**
92
- * Method that initializes the memory by fetching the session memory from
93
- * the Motorhead service. It adds the messages to the chat history and
94
- * sets the context if it is not 'NONE'.
95
- */
96
- async init() {
97
- const res = await this.caller.call(fetch, `${this.url}/sessions/${this.sessionId}/memory`, {
98
- signal: this.timeout ? AbortSignal.timeout(this.timeout) : undefined,
99
- headers: this._getHeaders(),
100
- });
101
- const json = await res.json();
102
- const data = json?.data || json; // Managed Motorhead returns { data: { messages: [], context: "NONE" } }
103
- const { messages = [], context = "NONE" } = data;
104
- await Promise.all(messages.reverse().map(async (message) => {
105
- if (message.role === "AI") {
106
- await this.chatHistory.addAIChatMessage(message.content);
107
- }
108
- else {
109
- await this.chatHistory.addUserMessage(message.content);
110
- }
111
- }));
112
- if (context && context !== "NONE") {
113
- this.context = context;
114
- }
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
115
7
  }
116
- /**
117
- * Method that loads the memory variables. It gets the chat messages and
118
- * returns them as a string or an array based on the returnMessages flag.
119
- * @param _values The input values.
120
- * @returns A promise that resolves with the memory variables.
121
- */
122
- async loadMemoryVariables(_values) {
123
- const messages = await this.chatHistory.getMessages();
124
- if (this.returnMessages) {
125
- const result = {
126
- [this.memoryKey]: messages,
127
- };
128
- return result;
129
- }
130
- const result = {
131
- [this.memoryKey]: (0, base_js_1.getBufferString)(messages),
132
- };
133
- return result;
134
- }
135
- /**
136
- * Method that saves the context to the Motorhead service and the base
137
- * chat memory. It sends a POST request to the Motorhead service with the
138
- * input and output messages, and calls the saveContext method of the base
139
- * chat memory.
140
- * @param inputValues The input values.
141
- * @param outputValues The output values.
142
- * @returns A promise that resolves when the context is saved.
143
- */
144
- async saveContext(inputValues, outputValues) {
145
- const input = (0, base_js_1.getInputValue)(inputValues, this.inputKey);
146
- const output = (0, base_js_1.getOutputValue)(outputValues, this.outputKey);
147
- await Promise.all([
148
- this.caller.call(fetch, `${this.url}/sessions/${this.sessionId}/memory`, {
149
- signal: this.timeout ? AbortSignal.timeout(this.timeout) : undefined,
150
- method: "POST",
151
- body: JSON.stringify({
152
- messages: [
153
- { role: "Human", content: `${input}` },
154
- { role: "AI", content: `${output}` },
155
- ],
156
- }),
157
- headers: this._getHeaders(),
158
- }),
159
- super.saveContext(inputValues, outputValues),
160
- ]);
161
- }
162
- }
163
- exports.MotorheadMemory = MotorheadMemory;
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@langchain/community/memory/motorhead_memory"), exports);
@@ -1,63 +1 @@
1
- import { BaseChatMemory, BaseChatMemoryInput } from "./chat_memory.js";
2
- import { InputValues, OutputValues, MemoryVariables } from "./base.js";
3
- import { AsyncCaller, AsyncCallerParams } from "../util/async_caller.js";
4
- /**
5
- * Interface for the structure of a memory message in the Motorhead
6
- * service. It includes the role and content of the message.
7
- */
8
- export interface MotorheadMemoryMessage {
9
- role: string;
10
- content: string;
11
- }
12
- /**
13
- * @interface
14
- */
15
- export type MotorheadMemoryInput = BaseChatMemoryInput & AsyncCallerParams & {
16
- sessionId: string;
17
- url?: string;
18
- memoryKey?: string;
19
- timeout?: number;
20
- apiKey?: string;
21
- clientId?: string;
22
- };
23
- /**
24
- * Class for managing chat message memory using the Motorhead service. It
25
- * extends BaseChatMemory and includes methods for initializing the
26
- * memory, loading memory variables, and saving the context.
27
- */
28
- export declare class MotorheadMemory extends BaseChatMemory {
29
- url: string;
30
- timeout: number;
31
- memoryKey: string;
32
- sessionId: string;
33
- context?: string;
34
- caller: AsyncCaller;
35
- apiKey?: string;
36
- clientId?: string;
37
- constructor(fields: MotorheadMemoryInput);
38
- get memoryKeys(): string[];
39
- _getHeaders(): HeadersInit;
40
- /**
41
- * Method that initializes the memory by fetching the session memory from
42
- * the Motorhead service. It adds the messages to the chat history and
43
- * sets the context if it is not 'NONE'.
44
- */
45
- init(): Promise<void>;
46
- /**
47
- * Method that loads the memory variables. It gets the chat messages and
48
- * returns them as a string or an array based on the returnMessages flag.
49
- * @param _values The input values.
50
- * @returns A promise that resolves with the memory variables.
51
- */
52
- loadMemoryVariables(_values: InputValues): Promise<MemoryVariables>;
53
- /**
54
- * Method that saves the context to the Motorhead service and the base
55
- * chat memory. It sends a POST request to the Motorhead service with the
56
- * input and output messages, and calls the saveContext method of the base
57
- * chat memory.
58
- * @param inputValues The input values.
59
- * @param outputValues The output values.
60
- * @returns A promise that resolves when the context is saved.
61
- */
62
- saveContext(inputValues: InputValues, outputValues: OutputValues): Promise<void>;
63
- }
1
+ export * from "@langchain/community/memory/motorhead_memory";
@@ -1,159 +1 @@
1
- import { BaseChatMemory } from "./chat_memory.js";
2
- import { getBufferString, getInputValue, getOutputValue, } from "./base.js";
3
- import { AsyncCaller } from "../util/async_caller.js";
4
- const MANAGED_URL = "https://api.getmetal.io/v1/motorhead";
5
- /**
6
- * Class for managing chat message memory using the Motorhead service. It
7
- * extends BaseChatMemory and includes methods for initializing the
8
- * memory, loading memory variables, and saving the context.
9
- */
10
- export class MotorheadMemory extends BaseChatMemory {
11
- constructor(fields) {
12
- const { sessionId, url, memoryKey, timeout, returnMessages, inputKey, outputKey, chatHistory, apiKey, clientId, ...rest } = fields;
13
- super({ returnMessages, inputKey, outputKey, chatHistory });
14
- Object.defineProperty(this, "url", {
15
- enumerable: true,
16
- configurable: true,
17
- writable: true,
18
- value: MANAGED_URL
19
- });
20
- Object.defineProperty(this, "timeout", {
21
- enumerable: true,
22
- configurable: true,
23
- writable: true,
24
- value: 3000
25
- });
26
- Object.defineProperty(this, "memoryKey", {
27
- enumerable: true,
28
- configurable: true,
29
- writable: true,
30
- value: "history"
31
- });
32
- Object.defineProperty(this, "sessionId", {
33
- enumerable: true,
34
- configurable: true,
35
- writable: true,
36
- value: void 0
37
- });
38
- Object.defineProperty(this, "context", {
39
- enumerable: true,
40
- configurable: true,
41
- writable: true,
42
- value: void 0
43
- });
44
- Object.defineProperty(this, "caller", {
45
- enumerable: true,
46
- configurable: true,
47
- writable: true,
48
- value: void 0
49
- });
50
- // Managed Params
51
- Object.defineProperty(this, "apiKey", {
52
- enumerable: true,
53
- configurable: true,
54
- writable: true,
55
- value: void 0
56
- });
57
- Object.defineProperty(this, "clientId", {
58
- enumerable: true,
59
- configurable: true,
60
- writable: true,
61
- value: void 0
62
- });
63
- this.caller = new AsyncCaller(rest);
64
- this.sessionId = sessionId;
65
- this.url = url ?? this.url;
66
- this.memoryKey = memoryKey ?? this.memoryKey;
67
- this.timeout = timeout ?? this.timeout;
68
- this.apiKey = apiKey;
69
- this.clientId = clientId;
70
- }
71
- get memoryKeys() {
72
- return [this.memoryKey];
73
- }
74
- _getHeaders() {
75
- const isManaged = this.url === MANAGED_URL;
76
- const headers = {
77
- "Content-Type": "application/json",
78
- };
79
- if (isManaged && !(this.apiKey && this.clientId)) {
80
- throw new Error("apiKey and clientId are required for managed motorhead. Visit https://getmetal.io to get your keys.");
81
- }
82
- if (isManaged && this.apiKey && this.clientId) {
83
- headers["x-metal-api-key"] = this.apiKey;
84
- headers["x-metal-client-id"] = this.clientId;
85
- }
86
- return headers;
87
- }
88
- /**
89
- * Method that initializes the memory by fetching the session memory from
90
- * the Motorhead service. It adds the messages to the chat history and
91
- * sets the context if it is not 'NONE'.
92
- */
93
- async init() {
94
- const res = await this.caller.call(fetch, `${this.url}/sessions/${this.sessionId}/memory`, {
95
- signal: this.timeout ? AbortSignal.timeout(this.timeout) : undefined,
96
- headers: this._getHeaders(),
97
- });
98
- const json = await res.json();
99
- const data = json?.data || json; // Managed Motorhead returns { data: { messages: [], context: "NONE" } }
100
- const { messages = [], context = "NONE" } = data;
101
- await Promise.all(messages.reverse().map(async (message) => {
102
- if (message.role === "AI") {
103
- await this.chatHistory.addAIChatMessage(message.content);
104
- }
105
- else {
106
- await this.chatHistory.addUserMessage(message.content);
107
- }
108
- }));
109
- if (context && context !== "NONE") {
110
- this.context = context;
111
- }
112
- }
113
- /**
114
- * Method that loads the memory variables. It gets the chat messages and
115
- * returns them as a string or an array based on the returnMessages flag.
116
- * @param _values The input values.
117
- * @returns A promise that resolves with the memory variables.
118
- */
119
- async loadMemoryVariables(_values) {
120
- const messages = await this.chatHistory.getMessages();
121
- if (this.returnMessages) {
122
- const result = {
123
- [this.memoryKey]: messages,
124
- };
125
- return result;
126
- }
127
- const result = {
128
- [this.memoryKey]: getBufferString(messages),
129
- };
130
- return result;
131
- }
132
- /**
133
- * Method that saves the context to the Motorhead service and the base
134
- * chat memory. It sends a POST request to the Motorhead service with the
135
- * input and output messages, and calls the saveContext method of the base
136
- * chat memory.
137
- * @param inputValues The input values.
138
- * @param outputValues The output values.
139
- * @returns A promise that resolves when the context is saved.
140
- */
141
- async saveContext(inputValues, outputValues) {
142
- const input = getInputValue(inputValues, this.inputKey);
143
- const output = getOutputValue(outputValues, this.outputKey);
144
- await Promise.all([
145
- this.caller.call(fetch, `${this.url}/sessions/${this.sessionId}/memory`, {
146
- signal: this.timeout ? AbortSignal.timeout(this.timeout) : undefined,
147
- method: "POST",
148
- body: JSON.stringify({
149
- messages: [
150
- { role: "Human", content: `${input}` },
151
- { role: "AI", content: `${output}` },
152
- ],
153
- }),
154
- headers: this._getHeaders(),
155
- }),
156
- super.saveContext(inputValues, outputValues),
157
- ]);
158
- }
159
- }
1
+ export * from "@langchain/community/memory/motorhead_memory";