From 779b072fbff3990259f8452c516689d6fcbc47ed Mon Sep 17 00:00:00 2001 From: Bagatur Date: Thu, 3 Oct 2024 14:48:31 -0700 Subject: [PATCH 1/2] core[minor]: exclude model cache from serialization --- langchain-core/src/language_models/base.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/langchain-core/src/language_models/base.ts b/langchain-core/src/language_models/base.ts index 80e1fa434969..827ea2263291 100644 --- a/langchain-core/src/language_models/base.ts +++ b/langchain-core/src/language_models/base.ts @@ -363,13 +363,15 @@ export abstract class BaseLanguageModel< callbackManager, ...params }: BaseLanguageModelParams) { + const cache = params.cache; + delete params.cache; super({ callbacks: callbacks ?? callbackManager, ...params, }); - if (typeof params.cache === "object") { - this.cache = params.cache; - } else if (params.cache) { + if (typeof cache === "object") { + this.cache = cache; + } else if (cache) { this.cache = InMemoryCache.global(); } else { this.cache = undefined; From 430e0a7086b95bf8ad75f0198c164be7ac5e0ba2 Mon Sep 17 00:00:00 2001 From: jacoblee93 Date: Thu, 3 Oct 2024 15:51:40 -0700 Subject: [PATCH 2/2] Add test, fix lint --- langchain-core/src/language_models/base.ts | 5 ++--- .../src/language_models/tests/chat_models.test.ts | 12 ++++++++++++ langchain-core/src/utils/testing/index.ts | 7 +++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/langchain-core/src/language_models/base.ts b/langchain-core/src/language_models/base.ts index 827ea2263291..4f1233426724 100644 --- a/langchain-core/src/language_models/base.ts +++ b/langchain-core/src/language_models/base.ts @@ -363,11 +363,10 @@ export abstract class BaseLanguageModel< callbackManager, ...params }: BaseLanguageModelParams) { - const cache = params.cache; - delete params.cache; + const { cache, ...rest } = params; super({ callbacks: callbacks ?? callbackManager, - ...params, + ...rest, }); if (typeof cache === "object") { this.cache = cache; diff --git a/langchain-core/src/language_models/tests/chat_models.test.ts b/langchain-core/src/language_models/tests/chat_models.test.ts index 70ff187243e8..f335d5edc40f 100644 --- a/langchain-core/src/language_models/tests/chat_models.test.ts +++ b/langchain-core/src/language_models/tests/chat_models.test.ts @@ -323,3 +323,15 @@ test("Test ChatModel can stream back a custom event", async () => { } expect(customEvent).toBeDefined(); }); + +test(`Test ChatModel should not serialize a passed "cache" parameter`, async () => { + const model = new FakeListChatModel({ + responses: ["hi"], + emitCustomEvent: true, + cache: true, + }); + console.log(JSON.stringify(model)); + expect(JSON.stringify(model)).toEqual( + `{"lc":1,"type":"constructor","id":["langchain","chat_models","fake-list","FakeListChatModel"],"kwargs":{"responses":["hi"],"emit_custom_event":true}}` + ); +}); diff --git a/langchain-core/src/utils/testing/index.ts b/langchain-core/src/utils/testing/index.ts index f14629794293..59f8c8437662 100644 --- a/langchain-core/src/utils/testing/index.ts +++ b/langchain-core/src/utils/testing/index.ts @@ -354,6 +354,8 @@ export class FakeListChatModel extends BaseChatModel