langchain 0.0.82 → 0.0.84
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/dist/base_language/index.cjs +7 -1
- package/dist/base_language/index.d.ts +1 -0
- package/dist/base_language/index.js +5 -0
- package/dist/callbacks/handlers/tracer_langchain.cjs +6 -20
- package/dist/callbacks/handlers/tracer_langchain.js +7 -21
- package/dist/callbacks/handlers/tracer_langchain_v1.cjs +5 -8
- package/dist/callbacks/handlers/tracer_langchain_v1.js +5 -8
- package/dist/callbacks/manager.cjs +5 -16
- package/dist/callbacks/manager.js +5 -16
- package/dist/chains/index.d.ts +1 -1
- package/dist/chains/openai_moderation.cjs +2 -3
- package/dist/chains/openai_moderation.js +2 -3
- package/dist/chains/retrieval_qa.cjs +1 -1
- package/dist/chains/retrieval_qa.d.ts +1 -1
- package/dist/chains/retrieval_qa.js +1 -1
- package/dist/chains/router/multi_prompt.cjs +15 -1
- package/dist/chains/router/multi_prompt.d.ts +13 -0
- package/dist/chains/router/multi_prompt.js +15 -1
- package/dist/chains/router/multi_retrieval_qa.cjs +17 -3
- package/dist/chains/router/multi_retrieval_qa.d.ts +15 -0
- package/dist/chains/router/multi_retrieval_qa.js +18 -4
- package/dist/chat_models/anthropic.cjs +2 -5
- package/dist/chat_models/anthropic.js +2 -5
- package/dist/chat_models/openai.cjs +5 -21
- package/dist/chat_models/openai.js +6 -22
- package/dist/client/langchainplus.cjs +7 -27
- package/dist/client/langchainplus.js +7 -27
- package/dist/document_loaders/web/apify_dataset.cjs +2 -3
- package/dist/document_loaders/web/apify_dataset.js +2 -3
- package/dist/document_loaders/web/figma.cjs +65 -0
- package/dist/document_loaders/web/figma.d.ts +35 -0
- package/dist/document_loaders/web/figma.js +61 -0
- package/dist/document_loaders/web/github.cjs +2 -4
- package/dist/document_loaders/web/github.js +2 -4
- package/dist/document_loaders/web/notiondb.cjs +168 -0
- package/dist/document_loaders/web/notiondb.d.ts +20 -0
- package/dist/document_loaders/web/notiondb.js +164 -0
- package/dist/embeddings/cohere.cjs +2 -5
- package/dist/embeddings/cohere.js +2 -5
- package/dist/embeddings/hf.cjs +2 -5
- package/dist/embeddings/hf.js +2 -5
- package/dist/embeddings/openai.cjs +6 -23
- package/dist/embeddings/openai.js +7 -24
- package/dist/llms/cohere.cjs +2 -5
- package/dist/llms/cohere.js +2 -5
- package/dist/llms/hf.cjs +2 -5
- package/dist/llms/hf.js +2 -5
- package/dist/llms/openai-chat.cjs +6 -25
- package/dist/llms/openai-chat.js +7 -26
- package/dist/llms/openai.cjs +7 -27
- package/dist/llms/openai.js +8 -28
- package/dist/llms/replicate.cjs +2 -3
- package/dist/llms/replicate.js +2 -3
- package/dist/text_splitter.cjs +35 -1
- package/dist/text_splitter.d.ts +5 -0
- package/dist/text_splitter.js +33 -0
- package/dist/tools/bingserpapi.cjs +2 -4
- package/dist/tools/bingserpapi.js +2 -4
- package/dist/tools/google_custom_search.cjs +3 -8
- package/dist/tools/google_custom_search.js +3 -8
- package/dist/tools/serpapi.cjs +2 -4
- package/dist/tools/serpapi.js +2 -4
- package/dist/tools/serper.cjs +2 -4
- package/dist/tools/serper.js +2 -4
- package/dist/tools/zapier.cjs +2 -5
- package/dist/tools/zapier.js +2 -5
- package/dist/util/env.cjs +15 -1
- package/dist/util/env.d.ts +1 -0
- package/dist/util/env.js +13 -0
- package/dist/util/hub.cjs +3 -8
- package/dist/util/hub.js +3 -8
- package/dist/vectorstores/milvus.cjs +2 -3
- package/dist/vectorstores/milvus.js +2 -3
- package/dist/vectorstores/qdrant.cjs +2 -3
- package/dist/vectorstores/qdrant.js +2 -3
- package/dist/vectorstores/tigris.cjs +102 -0
- package/dist/vectorstores/tigris.d.ts +17 -0
- package/dist/vectorstores/tigris.js +75 -0
- package/document_loaders/web/figma.cjs +1 -0
- package/document_loaders/web/figma.d.ts +1 -0
- package/document_loaders/web/figma.js +1 -0
- package/document_loaders/web/notiondb.cjs +1 -0
- package/document_loaders/web/notiondb.d.ts +1 -0
- package/document_loaders/web/notiondb.js +1 -0
- package/package.json +32 -3
- package/vectorstores/tigris.cjs +1 -0
- package/vectorstores/tigris.d.ts +1 -0
- package/vectorstores/tigris.js +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseLanguageModel = exports.BaseLangChain = void 0;
|
|
3
|
+
exports.calculateMaxTokens = exports.BaseLanguageModel = exports.BaseLangChain = void 0;
|
|
4
4
|
const async_caller_js_1 = require("../util/async_caller.cjs");
|
|
5
5
|
const count_tokens_js_1 = require("./count_tokens.cjs");
|
|
6
6
|
const tiktoken_js_1 = require("../util/tiktoken.cjs");
|
|
@@ -116,3 +116,9 @@ class BaseLanguageModel extends BaseLangChain {
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
exports.BaseLanguageModel = BaseLanguageModel;
|
|
119
|
+
/*
|
|
120
|
+
* Calculate max tokens for given model and prompt.
|
|
121
|
+
* That is the model size - number of tokens in prompt.
|
|
122
|
+
*/
|
|
123
|
+
var count_tokens_js_2 = require("./count_tokens.cjs");
|
|
124
|
+
Object.defineProperty(exports, "calculateMaxTokens", { enumerable: true, get: function () { return count_tokens_js_2.calculateMaxTokens; } });
|
|
@@ -111,3 +111,8 @@ export class BaseLanguageModel extends BaseLangChain {
|
|
|
111
111
|
return new Cls(rest);
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
+
/*
|
|
115
|
+
* Calculate max tokens for given model and prompt.
|
|
116
|
+
* That is the model size - number of tokens in prompt.
|
|
117
|
+
*/
|
|
118
|
+
export { calculateMaxTokens } from "./count_tokens.js";
|
|
@@ -17,10 +17,7 @@ class LangChainTracer extends tracer_js_1.BaseTracer {
|
|
|
17
17
|
enumerable: true,
|
|
18
18
|
configurable: true,
|
|
19
19
|
writable: true,
|
|
20
|
-
value: (
|
|
21
|
-
? // eslint-disable-next-line no-process-env
|
|
22
|
-
process.env?.LANGCHAIN_ENDPOINT
|
|
23
|
-
: undefined) || "http://localhost:1984"
|
|
20
|
+
value: (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_ENDPOINT") || "http://localhost:1984"
|
|
24
21
|
});
|
|
25
22
|
Object.defineProperty(this, "headers", {
|
|
26
23
|
enumerable: true,
|
|
@@ -66,24 +63,13 @@ class LangChainTracer extends tracer_js_1.BaseTracer {
|
|
|
66
63
|
writable: true,
|
|
67
64
|
value: void 0
|
|
68
65
|
});
|
|
69
|
-
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
this.headers["x-api-key"] = process.env?.LANGCHAIN_API_KEY;
|
|
66
|
+
const apiKey = (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_API_KEY");
|
|
67
|
+
if (apiKey) {
|
|
68
|
+
this.headers["x-api-key"] = apiKey;
|
|
73
69
|
}
|
|
74
|
-
this.tenantId =
|
|
75
|
-
tenantId ??
|
|
76
|
-
(typeof process !== "undefined"
|
|
77
|
-
? // eslint-disable-next-line no-process-env
|
|
78
|
-
process.env?.LANGCHAIN_TENANT_ID
|
|
79
|
-
: undefined);
|
|
70
|
+
this.tenantId = tenantId ?? (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_TENANT_ID");
|
|
80
71
|
this.sessionName =
|
|
81
|
-
sessionName ??
|
|
82
|
-
(typeof process !== "undefined"
|
|
83
|
-
? // eslint-disable-next-line no-process-env
|
|
84
|
-
process.env?.LANGCHAIN_SESSION
|
|
85
|
-
: undefined) ??
|
|
86
|
-
"default";
|
|
72
|
+
sessionName ?? (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_SESSION") ?? "default";
|
|
87
73
|
this.sessionExtra = sessionExtra;
|
|
88
74
|
this.exampleId = exampleId;
|
|
89
75
|
this.caller = new async_caller_js_1.AsyncCaller(callerParams ?? {});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncCaller } from "../../util/async_caller.js";
|
|
2
|
-
import { getRuntimeEnvironment } from "../../util/env.js";
|
|
2
|
+
import { getEnvironmentVariable, getRuntimeEnvironment, } from "../../util/env.js";
|
|
3
3
|
import { BaseTracer } from "./tracer.js";
|
|
4
4
|
export class LangChainTracer extends BaseTracer {
|
|
5
5
|
constructor({ exampleId, tenantId, sessionName, sessionExtra, callerParams, } = {}) {
|
|
@@ -14,10 +14,7 @@ export class LangChainTracer extends BaseTracer {
|
|
|
14
14
|
enumerable: true,
|
|
15
15
|
configurable: true,
|
|
16
16
|
writable: true,
|
|
17
|
-
value: (
|
|
18
|
-
? // eslint-disable-next-line no-process-env
|
|
19
|
-
process.env?.LANGCHAIN_ENDPOINT
|
|
20
|
-
: undefined) || "http://localhost:1984"
|
|
17
|
+
value: getEnvironmentVariable("LANGCHAIN_ENDPOINT") || "http://localhost:1984"
|
|
21
18
|
});
|
|
22
19
|
Object.defineProperty(this, "headers", {
|
|
23
20
|
enumerable: true,
|
|
@@ -63,24 +60,13 @@ export class LangChainTracer extends BaseTracer {
|
|
|
63
60
|
writable: true,
|
|
64
61
|
value: void 0
|
|
65
62
|
});
|
|
66
|
-
|
|
67
|
-
if (
|
|
68
|
-
|
|
69
|
-
this.headers["x-api-key"] = process.env?.LANGCHAIN_API_KEY;
|
|
63
|
+
const apiKey = getEnvironmentVariable("LANGCHAIN_API_KEY");
|
|
64
|
+
if (apiKey) {
|
|
65
|
+
this.headers["x-api-key"] = apiKey;
|
|
70
66
|
}
|
|
71
|
-
this.tenantId =
|
|
72
|
-
tenantId ??
|
|
73
|
-
(typeof process !== "undefined"
|
|
74
|
-
? // eslint-disable-next-line no-process-env
|
|
75
|
-
process.env?.LANGCHAIN_TENANT_ID
|
|
76
|
-
: undefined);
|
|
67
|
+
this.tenantId = tenantId ?? getEnvironmentVariable("LANGCHAIN_TENANT_ID");
|
|
77
68
|
this.sessionName =
|
|
78
|
-
sessionName ??
|
|
79
|
-
(typeof process !== "undefined"
|
|
80
|
-
? // eslint-disable-next-line no-process-env
|
|
81
|
-
process.env?.LANGCHAIN_SESSION
|
|
82
|
-
: undefined) ??
|
|
83
|
-
"default";
|
|
69
|
+
sessionName ?? getEnvironmentVariable("LANGCHAIN_SESSION") ?? "default";
|
|
84
70
|
this.sessionExtra = sessionExtra;
|
|
85
71
|
this.exampleId = exampleId;
|
|
86
72
|
this.caller = new AsyncCaller(callerParams ?? {});
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LangChainTracerV1 = void 0;
|
|
4
4
|
const base_js_1 = require("../../memory/base.cjs");
|
|
5
|
+
const env_js_1 = require("../../util/env.cjs");
|
|
5
6
|
const tracer_js_1 = require("./tracer.cjs");
|
|
6
7
|
class LangChainTracerV1 extends tracer_js_1.BaseTracer {
|
|
7
8
|
constructor() {
|
|
@@ -16,10 +17,7 @@ class LangChainTracerV1 extends tracer_js_1.BaseTracer {
|
|
|
16
17
|
enumerable: true,
|
|
17
18
|
configurable: true,
|
|
18
19
|
writable: true,
|
|
19
|
-
value: (
|
|
20
|
-
? // eslint-disable-next-line no-process-env
|
|
21
|
-
process.env?.LANGCHAIN_ENDPOINT
|
|
22
|
-
: undefined) || "http://localhost:1984"
|
|
20
|
+
value: (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_ENDPOINT") || "http://localhost:1984"
|
|
23
21
|
});
|
|
24
22
|
Object.defineProperty(this, "headers", {
|
|
25
23
|
enumerable: true,
|
|
@@ -35,10 +33,9 @@ class LangChainTracerV1 extends tracer_js_1.BaseTracer {
|
|
|
35
33
|
writable: true,
|
|
36
34
|
value: void 0
|
|
37
35
|
});
|
|
38
|
-
|
|
39
|
-
if (
|
|
40
|
-
|
|
41
|
-
this.headers["x-api-key"] = process.env?.LANGCHAIN_API_KEY;
|
|
36
|
+
const apiKey = (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_API_KEY");
|
|
37
|
+
if (apiKey) {
|
|
38
|
+
this.headers["x-api-key"] = apiKey;
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
41
|
async newSession(sessionName) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getBufferString } from "../../memory/base.js";
|
|
2
|
+
import { getEnvironmentVariable } from "../../util/env.js";
|
|
2
3
|
import { BaseTracer } from "./tracer.js";
|
|
3
4
|
export class LangChainTracerV1 extends BaseTracer {
|
|
4
5
|
constructor() {
|
|
@@ -13,10 +14,7 @@ export class LangChainTracerV1 extends BaseTracer {
|
|
|
13
14
|
enumerable: true,
|
|
14
15
|
configurable: true,
|
|
15
16
|
writable: true,
|
|
16
|
-
value: (
|
|
17
|
-
? // eslint-disable-next-line no-process-env
|
|
18
|
-
process.env?.LANGCHAIN_ENDPOINT
|
|
19
|
-
: undefined) || "http://localhost:1984"
|
|
17
|
+
value: getEnvironmentVariable("LANGCHAIN_ENDPOINT") || "http://localhost:1984"
|
|
20
18
|
});
|
|
21
19
|
Object.defineProperty(this, "headers", {
|
|
22
20
|
enumerable: true,
|
|
@@ -32,10 +30,9 @@ export class LangChainTracerV1 extends BaseTracer {
|
|
|
32
30
|
writable: true,
|
|
33
31
|
value: void 0
|
|
34
32
|
});
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
|
|
38
|
-
this.headers["x-api-key"] = process.env?.LANGCHAIN_API_KEY;
|
|
33
|
+
const apiKey = getEnvironmentVariable("LANGCHAIN_API_KEY");
|
|
34
|
+
if (apiKey) {
|
|
35
|
+
this.headers["x-api-key"] = apiKey;
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
38
|
async newSession(sessionName) {
|
|
@@ -6,6 +6,7 @@ const base_js_1 = require("./base.cjs");
|
|
|
6
6
|
const console_js_1 = require("./handlers/console.cjs");
|
|
7
7
|
const initialize_js_1 = require("./handlers/initialize.cjs");
|
|
8
8
|
const base_js_2 = require("../memory/base.cjs");
|
|
9
|
+
const env_js_1 = require("../util/env.cjs");
|
|
9
10
|
class BaseCallbackManager {
|
|
10
11
|
setHandler(handler) {
|
|
11
12
|
return this.setHandlers([handler]);
|
|
@@ -334,19 +335,10 @@ class CallbackManager extends BaseCallbackManager {
|
|
|
334
335
|
? localHandlers.map(ensureHandler)
|
|
335
336
|
: localHandlers?.handlers, false);
|
|
336
337
|
}
|
|
337
|
-
const verboseEnabled = (
|
|
338
|
-
|
|
339
|
-
process.env?.LANGCHAIN_VERBOSE !== undefined
|
|
340
|
-
: false) || options?.verbose;
|
|
341
|
-
const tracingV2Enabled = typeof process !== "undefined"
|
|
342
|
-
? // eslint-disable-next-line no-process-env
|
|
343
|
-
process.env?.LANGCHAIN_TRACING_V2 !== undefined
|
|
344
|
-
: false;
|
|
338
|
+
const verboseEnabled = (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_VERBOSE") || options?.verbose;
|
|
339
|
+
const tracingV2Enabled = (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_TRACING_V2") ?? false;
|
|
345
340
|
const tracingEnabled = tracingV2Enabled ||
|
|
346
|
-
(
|
|
347
|
-
? // eslint-disable-next-line no-process-env
|
|
348
|
-
process.env?.LANGCHAIN_TRACING !== undefined
|
|
349
|
-
: false);
|
|
341
|
+
((0, env_js_1.getEnvironmentVariable)("LANGCHAIN_TRACING") ?? false);
|
|
350
342
|
if (verboseEnabled || tracingEnabled) {
|
|
351
343
|
if (!callbackManager) {
|
|
352
344
|
callbackManager = new CallbackManager();
|
|
@@ -362,10 +354,7 @@ class CallbackManager extends BaseCallbackManager {
|
|
|
362
354
|
callbackManager.addHandler(await (0, initialize_js_1.getTracingV2CallbackHandler)(), true);
|
|
363
355
|
}
|
|
364
356
|
else {
|
|
365
|
-
const session =
|
|
366
|
-
? // eslint-disable-next-line no-process-env
|
|
367
|
-
process.env?.LANGCHAIN_SESSION
|
|
368
|
-
: undefined;
|
|
357
|
+
const session = (0, env_js_1.getEnvironmentVariable)("LANGCHAIN_SESSION");
|
|
369
358
|
callbackManager.addHandler(await (0, initialize_js_1.getTracingCallbackHandler)(session), true);
|
|
370
359
|
}
|
|
371
360
|
}
|
|
@@ -3,6 +3,7 @@ import { BaseCallbackHandler } from "./base.js";
|
|
|
3
3
|
import { ConsoleCallbackHandler } from "./handlers/console.js";
|
|
4
4
|
import { getTracingCallbackHandler, getTracingV2CallbackHandler, } from "./handlers/initialize.js";
|
|
5
5
|
import { getBufferString } from "../memory/base.js";
|
|
6
|
+
import { getEnvironmentVariable } from "../util/env.js";
|
|
6
7
|
export class BaseCallbackManager {
|
|
7
8
|
setHandler(handler) {
|
|
8
9
|
return this.setHandlers([handler]);
|
|
@@ -327,19 +328,10 @@ export class CallbackManager extends BaseCallbackManager {
|
|
|
327
328
|
? localHandlers.map(ensureHandler)
|
|
328
329
|
: localHandlers?.handlers, false);
|
|
329
330
|
}
|
|
330
|
-
const verboseEnabled = (
|
|
331
|
-
|
|
332
|
-
process.env?.LANGCHAIN_VERBOSE !== undefined
|
|
333
|
-
: false) || options?.verbose;
|
|
334
|
-
const tracingV2Enabled = typeof process !== "undefined"
|
|
335
|
-
? // eslint-disable-next-line no-process-env
|
|
336
|
-
process.env?.LANGCHAIN_TRACING_V2 !== undefined
|
|
337
|
-
: false;
|
|
331
|
+
const verboseEnabled = getEnvironmentVariable("LANGCHAIN_VERBOSE") || options?.verbose;
|
|
332
|
+
const tracingV2Enabled = getEnvironmentVariable("LANGCHAIN_TRACING_V2") ?? false;
|
|
338
333
|
const tracingEnabled = tracingV2Enabled ||
|
|
339
|
-
(
|
|
340
|
-
? // eslint-disable-next-line no-process-env
|
|
341
|
-
process.env?.LANGCHAIN_TRACING !== undefined
|
|
342
|
-
: false);
|
|
334
|
+
(getEnvironmentVariable("LANGCHAIN_TRACING") ?? false);
|
|
343
335
|
if (verboseEnabled || tracingEnabled) {
|
|
344
336
|
if (!callbackManager) {
|
|
345
337
|
callbackManager = new CallbackManager();
|
|
@@ -355,10 +347,7 @@ export class CallbackManager extends BaseCallbackManager {
|
|
|
355
347
|
callbackManager.addHandler(await getTracingV2CallbackHandler(), true);
|
|
356
348
|
}
|
|
357
349
|
else {
|
|
358
|
-
const session =
|
|
359
|
-
? // eslint-disable-next-line no-process-env
|
|
360
|
-
process.env?.LANGCHAIN_SESSION
|
|
361
|
-
: undefined;
|
|
350
|
+
const session = getEnvironmentVariable("LANGCHAIN_SESSION");
|
|
362
351
|
callbackManager.addHandler(await getTracingCallbackHandler(session), true);
|
|
363
352
|
}
|
|
364
353
|
}
|
package/dist/chains/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { BaseChain, ChainInputs } from "./base.js";
|
|
2
2
|
export { LLMChain, LLMChainInput } from "./llm_chain.js";
|
|
3
|
-
export { APIChain, APIChainInput } from "./api/api_chain.js";
|
|
3
|
+
export { APIChain, APIChainInput, APIChainOptions } from "./api/api_chain.js";
|
|
4
4
|
export { ConversationChain } from "./conversation.js";
|
|
5
5
|
export { SequentialChain, SequentialChainInput, SimpleSequentialChain, SimpleSequentialChainInput, } from "./sequential_chain.js";
|
|
6
6
|
export { StuffDocumentsChain, StuffDocumentsChainInput, MapReduceDocumentsChain, MapReduceDocumentsChainInput, RefineDocumentsChain, RefineDocumentsChainInput, } from "./combine_docs_chain.js";
|
|
@@ -8,6 +8,7 @@ const openai_1 = require("openai");
|
|
|
8
8
|
const base_js_1 = require("./base.cjs");
|
|
9
9
|
const axios_fetch_adapter_js_1 = __importDefault(require("../util/axios-fetch-adapter.cjs"));
|
|
10
10
|
const async_caller_js_1 = require("../util/async_caller.cjs");
|
|
11
|
+
const env_js_1 = require("../util/env.cjs");
|
|
11
12
|
class OpenAIModerationChain extends base_js_1.BaseChain {
|
|
12
13
|
constructor(fields) {
|
|
13
14
|
super(fields);
|
|
@@ -61,9 +62,7 @@ class OpenAIModerationChain extends base_js_1.BaseChain {
|
|
|
61
62
|
});
|
|
62
63
|
this.throwError = fields?.throwError ?? false;
|
|
63
64
|
this.openAIApiKey =
|
|
64
|
-
fields?.openAIApiKey ??
|
|
65
|
-
// eslint-disable-next-line no-process-env
|
|
66
|
-
(typeof process !== "undefined" ? process.env.OPENAI_API_KEY : undefined);
|
|
65
|
+
fields?.openAIApiKey ?? (0, env_js_1.getEnvironmentVariable)("OPENAI_API_KEY");
|
|
67
66
|
if (!this.openAIApiKey) {
|
|
68
67
|
throw new Error("OpenAI API key not found");
|
|
69
68
|
}
|
|
@@ -2,6 +2,7 @@ import { Configuration, OpenAIApi, } from "openai";
|
|
|
2
2
|
import { BaseChain } from "./base.js";
|
|
3
3
|
import fetchAdapter from "../util/axios-fetch-adapter.js";
|
|
4
4
|
import { AsyncCaller } from "../util/async_caller.js";
|
|
5
|
+
import { getEnvironmentVariable } from "../util/env.js";
|
|
5
6
|
export class OpenAIModerationChain extends BaseChain {
|
|
6
7
|
constructor(fields) {
|
|
7
8
|
super(fields);
|
|
@@ -55,9 +56,7 @@ export class OpenAIModerationChain extends BaseChain {
|
|
|
55
56
|
});
|
|
56
57
|
this.throwError = fields?.throwError ?? false;
|
|
57
58
|
this.openAIApiKey =
|
|
58
|
-
fields?.openAIApiKey ??
|
|
59
|
-
// eslint-disable-next-line no-process-env
|
|
60
|
-
(typeof process !== "undefined" ? process.env.OPENAI_API_KEY : undefined);
|
|
59
|
+
fields?.openAIApiKey ?? getEnvironmentVariable("OPENAI_API_KEY");
|
|
61
60
|
if (!this.openAIApiKey) {
|
|
62
61
|
throw new Error("OpenAI API key not found");
|
|
63
62
|
}
|
|
@@ -24,5 +24,5 @@ export declare class RetrievalQAChain extends BaseChain implements RetrievalQACh
|
|
|
24
24
|
_chainType(): "retrieval_qa";
|
|
25
25
|
static deserialize(_data: SerializedVectorDBQAChain, _values: LoadValues): Promise<RetrievalQAChain>;
|
|
26
26
|
serialize(): SerializedVectorDBQAChain;
|
|
27
|
-
static fromLLM(llm: BaseLanguageModel, retriever: BaseRetriever, options?: Partial<Omit<RetrievalQAChainInput, "combineDocumentsChain" | "index">> & StuffQAChainParams): RetrievalQAChain;
|
|
27
|
+
static fromLLM(llm: BaseLanguageModel, retriever: BaseRetriever, options?: Partial<Omit<RetrievalQAChainInput, "retriever" | "combineDocumentsChain" | "index">> & StuffQAChainParams): RetrievalQAChain;
|
|
28
28
|
}
|
|
@@ -12,7 +12,19 @@ const conversation_js_1 = require("../../chains/conversation.cjs");
|
|
|
12
12
|
const utils_js_1 = require("./utils.cjs");
|
|
13
13
|
const router_js_1 = require("../../output_parsers/router.cjs");
|
|
14
14
|
class MultiPromptChain extends multi_route_js_1.MultiRouteChain {
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `fromLLMAndPrompts` instead
|
|
17
|
+
*/
|
|
15
18
|
static fromPrompts(llm, promptNames, promptDescriptions, promptTemplates, defaultChain, options) {
|
|
19
|
+
return MultiPromptChain.fromLLMAndPrompts(llm, {
|
|
20
|
+
promptNames,
|
|
21
|
+
promptDescriptions,
|
|
22
|
+
promptTemplates,
|
|
23
|
+
defaultChain,
|
|
24
|
+
multiRouteChainOpts: options,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
static fromLLMAndPrompts(llm, { promptNames, promptDescriptions, promptTemplates, defaultChain, llmChainOpts, conversationChainOpts, multiRouteChainOpts, }) {
|
|
16
28
|
const destinations = (0, utils_js_1.zipEntries)(promptNames, promptDescriptions).map(([name, desc]) => `${name}: ${desc}`);
|
|
17
29
|
const structuredOutputParserSchema = zod_1.z.object({
|
|
18
30
|
destination: zod_1.z
|
|
@@ -53,20 +65,22 @@ class MultiPromptChain extends multi_route_js_1.MultiRouteChain {
|
|
|
53
65
|
throw new Error("Invalid prompt template");
|
|
54
66
|
}
|
|
55
67
|
acc[name] = new llm_chain_js_1.LLMChain({
|
|
68
|
+
...llmChainOpts,
|
|
56
69
|
llm,
|
|
57
70
|
prompt: myPrompt,
|
|
58
71
|
});
|
|
59
72
|
return acc;
|
|
60
73
|
}, {});
|
|
61
74
|
const convChain = new conversation_js_1.ConversationChain({
|
|
75
|
+
...conversationChainOpts,
|
|
62
76
|
llm,
|
|
63
77
|
outputKey: "text",
|
|
64
78
|
});
|
|
65
79
|
return new MultiPromptChain({
|
|
80
|
+
...multiRouteChainOpts,
|
|
66
81
|
routerChain,
|
|
67
82
|
destinationChains,
|
|
68
83
|
defaultChain: defaultChain ?? convChain,
|
|
69
|
-
...options,
|
|
70
84
|
});
|
|
71
85
|
}
|
|
72
86
|
_chainType() {
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import { BaseLanguageModel } from "../../base_language/index.js";
|
|
2
2
|
import { MultiRouteChain, MultiRouteChainInput } from "./multi_route.js";
|
|
3
3
|
import { BaseChain } from "../../chains/base.js";
|
|
4
|
+
import { LLMChainInput } from "../../chains/llm_chain.js";
|
|
4
5
|
import { PromptTemplate } from "../../prompts/prompt.js";
|
|
5
6
|
export declare class MultiPromptChain extends MultiRouteChain {
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `fromLLMAndPrompts` instead
|
|
9
|
+
*/
|
|
6
10
|
static fromPrompts(llm: BaseLanguageModel, promptNames: string[], promptDescriptions: string[], promptTemplates: string[] | PromptTemplate[], defaultChain?: BaseChain, options?: Omit<MultiRouteChainInput, "defaultChain">): MultiPromptChain;
|
|
11
|
+
static fromLLMAndPrompts(llm: BaseLanguageModel, { promptNames, promptDescriptions, promptTemplates, defaultChain, llmChainOpts, conversationChainOpts, multiRouteChainOpts, }: {
|
|
12
|
+
promptNames: string[];
|
|
13
|
+
promptDescriptions: string[];
|
|
14
|
+
promptTemplates: string[] | PromptTemplate[];
|
|
15
|
+
defaultChain?: BaseChain;
|
|
16
|
+
llmChainOpts?: Omit<LLMChainInput, "llm" | "prompt">;
|
|
17
|
+
conversationChainOpts?: Omit<LLMChainInput, "llm" | "outputKey">;
|
|
18
|
+
multiRouteChainOpts?: Omit<MultiRouteChainInput, "defaultChain">;
|
|
19
|
+
}): MultiPromptChain;
|
|
7
20
|
_chainType(): string;
|
|
8
21
|
}
|
|
@@ -9,7 +9,19 @@ import { ConversationChain } from "../../chains/conversation.js";
|
|
|
9
9
|
import { zipEntries } from "./utils.js";
|
|
10
10
|
import { RouterOutputParser } from "../../output_parsers/router.js";
|
|
11
11
|
export class MultiPromptChain extends MultiRouteChain {
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use `fromLLMAndPrompts` instead
|
|
14
|
+
*/
|
|
12
15
|
static fromPrompts(llm, promptNames, promptDescriptions, promptTemplates, defaultChain, options) {
|
|
16
|
+
return MultiPromptChain.fromLLMAndPrompts(llm, {
|
|
17
|
+
promptNames,
|
|
18
|
+
promptDescriptions,
|
|
19
|
+
promptTemplates,
|
|
20
|
+
defaultChain,
|
|
21
|
+
multiRouteChainOpts: options,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
static fromLLMAndPrompts(llm, { promptNames, promptDescriptions, promptTemplates, defaultChain, llmChainOpts, conversationChainOpts, multiRouteChainOpts, }) {
|
|
13
25
|
const destinations = zipEntries(promptNames, promptDescriptions).map(([name, desc]) => `${name}: ${desc}`);
|
|
14
26
|
const structuredOutputParserSchema = z.object({
|
|
15
27
|
destination: z
|
|
@@ -50,20 +62,22 @@ export class MultiPromptChain extends MultiRouteChain {
|
|
|
50
62
|
throw new Error("Invalid prompt template");
|
|
51
63
|
}
|
|
52
64
|
acc[name] = new LLMChain({
|
|
65
|
+
...llmChainOpts,
|
|
53
66
|
llm,
|
|
54
67
|
prompt: myPrompt,
|
|
55
68
|
});
|
|
56
69
|
return acc;
|
|
57
70
|
}, {});
|
|
58
71
|
const convChain = new ConversationChain({
|
|
72
|
+
...conversationChainOpts,
|
|
59
73
|
llm,
|
|
60
74
|
outputKey: "text",
|
|
61
75
|
});
|
|
62
76
|
return new MultiPromptChain({
|
|
77
|
+
...multiRouteChainOpts,
|
|
63
78
|
routerChain,
|
|
64
79
|
destinationChains,
|
|
65
80
|
defaultChain: defaultChain ?? convChain,
|
|
66
|
-
...options,
|
|
67
81
|
});
|
|
68
82
|
}
|
|
69
83
|
_chainType() {
|
|
@@ -15,7 +15,20 @@ class MultiRetrievalQAChain extends multi_route_js_1.MultiRouteChain {
|
|
|
15
15
|
get outputKeys() {
|
|
16
16
|
return ["result"];
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated Use `fromRetrieversAndPrompts` instead
|
|
20
|
+
*/
|
|
18
21
|
static fromRetrievers(llm, retrieverNames, retrieverDescriptions, retrievers, retrieverPrompts, defaults, options) {
|
|
22
|
+
return MultiRetrievalQAChain.fromLLMAndRetrievers(llm, {
|
|
23
|
+
retrieverNames,
|
|
24
|
+
retrieverDescriptions,
|
|
25
|
+
retrievers,
|
|
26
|
+
retrieverPrompts,
|
|
27
|
+
defaults,
|
|
28
|
+
multiRetrievalChainOpts: options,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
static fromLLMAndRetrievers(llm, { retrieverNames, retrieverDescriptions, retrievers, retrieverPrompts, defaults, multiRetrievalChainOpts, retrievalQAChainOpts, }) {
|
|
19
32
|
const { defaultRetriever, defaultPrompt, defaultChain } = defaults ?? {};
|
|
20
33
|
if (defaultPrompt && !defaultRetriever) {
|
|
21
34
|
throw new Error("`default_retriever` must be specified if `default_prompt` is \nprovided. Received only `default_prompt`.");
|
|
@@ -47,9 +60,9 @@ class MultiRetrievalQAChain extends multi_route_js_1.MultiRouteChain {
|
|
|
47
60
|
const routerChain = llm_router_js_1.LLMRouterChain.fromLLM(llm, routerPrompt);
|
|
48
61
|
const prompts = retrieverPrompts ?? retrievers.map(() => null);
|
|
49
62
|
const destinationChains = (0, utils_js_1.zipEntries)(retrieverNames, retrievers, prompts).reduce((acc, [name, retriever, prompt]) => {
|
|
50
|
-
|
|
63
|
+
const opt = retrievalQAChainOpts ?? {};
|
|
51
64
|
if (prompt) {
|
|
52
|
-
opt =
|
|
65
|
+
opt.prompt = prompt;
|
|
53
66
|
}
|
|
54
67
|
acc[name] = retrieval_qa_js_1.RetrievalQAChain.fromLLM(llm, retriever, opt);
|
|
55
68
|
return acc;
|
|
@@ -60,6 +73,7 @@ class MultiRetrievalQAChain extends multi_route_js_1.MultiRouteChain {
|
|
|
60
73
|
}
|
|
61
74
|
else if (defaultRetriever) {
|
|
62
75
|
_defaultChain = retrieval_qa_js_1.RetrievalQAChain.fromLLM(llm, defaultRetriever, {
|
|
76
|
+
...retrievalQAChainOpts,
|
|
63
77
|
prompt: defaultPrompt,
|
|
64
78
|
});
|
|
65
79
|
}
|
|
@@ -76,10 +90,10 @@ class MultiRetrievalQAChain extends multi_route_js_1.MultiRouteChain {
|
|
|
76
90
|
});
|
|
77
91
|
}
|
|
78
92
|
return new MultiRetrievalQAChain({
|
|
93
|
+
...multiRetrievalChainOpts,
|
|
79
94
|
routerChain,
|
|
80
95
|
destinationChains,
|
|
81
96
|
defaultChain: _defaultChain,
|
|
82
|
-
...options,
|
|
83
97
|
});
|
|
84
98
|
}
|
|
85
99
|
_chainType() {
|
|
@@ -3,6 +3,7 @@ import { MultiRouteChain, MultiRouteChainInput } from "./multi_route.js";
|
|
|
3
3
|
import { BaseChain } from "../../chains/base.js";
|
|
4
4
|
import { PromptTemplate } from "../../prompts/prompt.js";
|
|
5
5
|
import { BaseRetriever } from "../../schema/index.js";
|
|
6
|
+
import { RetrievalQAChainInput } from "../../chains/retrieval_qa.js";
|
|
6
7
|
export type MultiRetrievalDefaults = {
|
|
7
8
|
defaultRetriever?: BaseRetriever;
|
|
8
9
|
defaultPrompt?: PromptTemplate;
|
|
@@ -10,6 +11,20 @@ export type MultiRetrievalDefaults = {
|
|
|
10
11
|
};
|
|
11
12
|
export declare class MultiRetrievalQAChain extends MultiRouteChain {
|
|
12
13
|
get outputKeys(): string[];
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Use `fromRetrieversAndPrompts` instead
|
|
16
|
+
*/
|
|
13
17
|
static fromRetrievers(llm: BaseLanguageModel, retrieverNames: string[], retrieverDescriptions: string[], retrievers: BaseRetriever[], retrieverPrompts?: PromptTemplate[], defaults?: MultiRetrievalDefaults, options?: Omit<MultiRouteChainInput, "defaultChain">): MultiRetrievalQAChain;
|
|
18
|
+
static fromLLMAndRetrievers(llm: BaseLanguageModel, { retrieverNames, retrieverDescriptions, retrievers, retrieverPrompts, defaults, multiRetrievalChainOpts, retrievalQAChainOpts, }: {
|
|
19
|
+
retrieverNames: string[];
|
|
20
|
+
retrieverDescriptions: string[];
|
|
21
|
+
retrievers: BaseRetriever[];
|
|
22
|
+
retrieverPrompts?: PromptTemplate[];
|
|
23
|
+
defaults?: MultiRetrievalDefaults;
|
|
24
|
+
multiRetrievalChainOpts?: Omit<MultiRouteChainInput, "defaultChain">;
|
|
25
|
+
retrievalQAChainOpts?: Partial<Omit<RetrievalQAChainInput, "retriever" | "combineDocumentsChain">> & {
|
|
26
|
+
prompt?: PromptTemplate;
|
|
27
|
+
};
|
|
28
|
+
}): MultiRetrievalQAChain;
|
|
14
29
|
_chainType(): string;
|
|
15
30
|
}
|
|
@@ -6,13 +6,26 @@ import { LLMRouterChain } from "./llm_router.js";
|
|
|
6
6
|
import { ConversationChain, DEFAULT_TEMPLATE, } from "../../chains/conversation.js";
|
|
7
7
|
import { STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE } from "./multi_retrieval_prompt.js";
|
|
8
8
|
import { zipEntries } from "./utils.js";
|
|
9
|
-
import { RetrievalQAChain } from "../../chains/retrieval_qa.js";
|
|
9
|
+
import { RetrievalQAChain, } from "../../chains/retrieval_qa.js";
|
|
10
10
|
import { RouterOutputParser } from "../../output_parsers/router.js";
|
|
11
11
|
export class MultiRetrievalQAChain extends MultiRouteChain {
|
|
12
12
|
get outputKeys() {
|
|
13
13
|
return ["result"];
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `fromRetrieversAndPrompts` instead
|
|
17
|
+
*/
|
|
15
18
|
static fromRetrievers(llm, retrieverNames, retrieverDescriptions, retrievers, retrieverPrompts, defaults, options) {
|
|
19
|
+
return MultiRetrievalQAChain.fromLLMAndRetrievers(llm, {
|
|
20
|
+
retrieverNames,
|
|
21
|
+
retrieverDescriptions,
|
|
22
|
+
retrievers,
|
|
23
|
+
retrieverPrompts,
|
|
24
|
+
defaults,
|
|
25
|
+
multiRetrievalChainOpts: options,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
static fromLLMAndRetrievers(llm, { retrieverNames, retrieverDescriptions, retrievers, retrieverPrompts, defaults, multiRetrievalChainOpts, retrievalQAChainOpts, }) {
|
|
16
29
|
const { defaultRetriever, defaultPrompt, defaultChain } = defaults ?? {};
|
|
17
30
|
if (defaultPrompt && !defaultRetriever) {
|
|
18
31
|
throw new Error("`default_retriever` must be specified if `default_prompt` is \nprovided. Received only `default_prompt`.");
|
|
@@ -44,9 +57,9 @@ export class MultiRetrievalQAChain extends MultiRouteChain {
|
|
|
44
57
|
const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);
|
|
45
58
|
const prompts = retrieverPrompts ?? retrievers.map(() => null);
|
|
46
59
|
const destinationChains = zipEntries(retrieverNames, retrievers, prompts).reduce((acc, [name, retriever, prompt]) => {
|
|
47
|
-
|
|
60
|
+
const opt = retrievalQAChainOpts ?? {};
|
|
48
61
|
if (prompt) {
|
|
49
|
-
opt =
|
|
62
|
+
opt.prompt = prompt;
|
|
50
63
|
}
|
|
51
64
|
acc[name] = RetrievalQAChain.fromLLM(llm, retriever, opt);
|
|
52
65
|
return acc;
|
|
@@ -57,6 +70,7 @@ export class MultiRetrievalQAChain extends MultiRouteChain {
|
|
|
57
70
|
}
|
|
58
71
|
else if (defaultRetriever) {
|
|
59
72
|
_defaultChain = RetrievalQAChain.fromLLM(llm, defaultRetriever, {
|
|
73
|
+
...retrievalQAChainOpts,
|
|
60
74
|
prompt: defaultPrompt,
|
|
61
75
|
});
|
|
62
76
|
}
|
|
@@ -73,10 +87,10 @@ export class MultiRetrievalQAChain extends MultiRouteChain {
|
|
|
73
87
|
});
|
|
74
88
|
}
|
|
75
89
|
return new MultiRetrievalQAChain({
|
|
90
|
+
...multiRetrievalChainOpts,
|
|
76
91
|
routerChain,
|
|
77
92
|
destinationChains,
|
|
78
93
|
defaultChain: _defaultChain,
|
|
79
|
-
...options,
|
|
80
94
|
});
|
|
81
95
|
}
|
|
82
96
|
_chainType() {
|
|
@@ -4,6 +4,7 @@ exports.ChatAnthropic = void 0;
|
|
|
4
4
|
const sdk_1 = require("@anthropic-ai/sdk");
|
|
5
5
|
const base_js_1 = require("./base.cjs");
|
|
6
6
|
const index_js_1 = require("../schema/index.cjs");
|
|
7
|
+
const env_js_1 = require("../util/env.cjs");
|
|
7
8
|
function getAnthropicPromptFromMessage(type) {
|
|
8
9
|
switch (type) {
|
|
9
10
|
case "ai":
|
|
@@ -111,11 +112,7 @@ class ChatAnthropic extends base_js_1.BaseChatModel {
|
|
|
111
112
|
value: void 0
|
|
112
113
|
});
|
|
113
114
|
this.apiKey =
|
|
114
|
-
fields?.anthropicApiKey ??
|
|
115
|
-
(typeof process !== "undefined"
|
|
116
|
-
? // eslint-disable-next-line no-process-env
|
|
117
|
-
process.env?.ANTHROPIC_API_KEY
|
|
118
|
-
: undefined);
|
|
115
|
+
fields?.anthropicApiKey ?? (0, env_js_1.getEnvironmentVariable)("ANTHROPIC_API_KEY");
|
|
119
116
|
if (!this.apiKey) {
|
|
120
117
|
throw new Error("Anthropic API key not found");
|
|
121
118
|
}
|