langchain 0.0.63 → 0.0.65
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/agents/agent.cjs +3 -4
- package/dist/agents/agent.js +3 -4
- package/dist/agents/chat_convo/prompt.cjs +1 -1
- package/dist/agents/chat_convo/prompt.d.ts +1 -1
- package/dist/agents/chat_convo/prompt.js +1 -1
- package/dist/agents/initialize.cjs +1 -1
- package/dist/agents/initialize.d.ts +1 -1
- package/dist/agents/initialize.js +1 -1
- package/dist/agents/types.cjs +2 -2
- package/dist/agents/types.d.ts +2 -1
- package/dist/agents/types.js +1 -1
- package/dist/base_language/index.d.ts +4 -1
- package/dist/callbacks/manager.cjs +5 -1
- package/dist/callbacks/manager.js +5 -1
- package/dist/chains/analyze_documents_chain.cjs +3 -3
- package/dist/chains/analyze_documents_chain.d.ts +2 -1
- package/dist/chains/analyze_documents_chain.js +3 -3
- package/dist/chains/base.cjs +30 -11
- package/dist/chains/base.d.ts +7 -3
- package/dist/chains/base.js +30 -11
- package/dist/chains/chat_vector_db_chain.cjs +4 -4
- package/dist/chains/chat_vector_db_chain.d.ts +9 -15
- package/dist/chains/chat_vector_db_chain.js +4 -4
- package/dist/chains/combine_docs_chain.cjs +11 -11
- package/dist/chains/combine_docs_chain.d.ts +6 -5
- package/dist/chains/combine_docs_chain.js +11 -11
- package/dist/chains/conversational_retrieval_chain.cjs +4 -4
- package/dist/chains/conversational_retrieval_chain.d.ts +2 -1
- package/dist/chains/conversational_retrieval_chain.js +4 -4
- package/dist/chains/index.cjs +4 -3
- package/dist/chains/index.d.ts +2 -2
- package/dist/chains/index.js +1 -1
- package/dist/chains/llm_chain.cjs +4 -4
- package/dist/chains/llm_chain.d.ts +3 -2
- package/dist/chains/llm_chain.js +4 -4
- package/dist/chains/retrieval_qa.cjs +3 -3
- package/dist/chains/retrieval_qa.d.ts +2 -1
- package/dist/chains/retrieval_qa.js +3 -3
- package/dist/chains/sequential_chain.cjs +262 -0
- package/dist/chains/{simple_sequential_chain.d.ts → sequential_chain.d.ts} +31 -2
- package/dist/chains/sequential_chain.js +257 -0
- package/dist/chains/serde.d.ts +7 -1
- package/dist/chains/sql_db/sql_db_chain.cjs +7 -5
- package/dist/chains/sql_db/sql_db_chain.d.ts +2 -1
- package/dist/chains/sql_db/sql_db_chain.js +7 -5
- package/dist/chains/vector_db_qa.cjs +3 -3
- package/dist/chains/vector_db_qa.d.ts +2 -1
- package/dist/chains/vector_db_qa.js +3 -3
- package/dist/chat_models/base.d.ts +10 -8
- package/dist/chat_models/openai.cjs +9 -5
- package/dist/chat_models/openai.d.ts +14 -5
- package/dist/chat_models/openai.js +10 -6
- package/dist/document_loaders/fs/unstructured.cjs +48 -1
- package/dist/document_loaders/fs/unstructured.d.ts +9 -1
- package/dist/document_loaders/fs/unstructured.js +46 -0
- package/dist/embeddings/tensorflow.cjs +67 -0
- package/dist/embeddings/tensorflow.d.ts +12 -0
- package/dist/embeddings/tensorflow.js +40 -0
- package/dist/experimental/autogpt/output_parser.cjs +2 -2
- package/dist/experimental/autogpt/output_parser.d.ts +1 -1
- package/dist/experimental/autogpt/output_parser.js +1 -1
- package/dist/experimental/babyagi/agent.cjs +194 -0
- package/dist/experimental/babyagi/agent.d.ts +47 -0
- package/dist/experimental/babyagi/agent.js +190 -0
- package/dist/experimental/babyagi/index.cjs +11 -0
- package/dist/experimental/babyagi/index.d.ts +4 -0
- package/dist/experimental/babyagi/index.js +4 -0
- package/dist/experimental/babyagi/task_creation.cjs +29 -0
- package/dist/experimental/babyagi/task_creation.d.ts +5 -0
- package/dist/experimental/babyagi/task_creation.js +25 -0
- package/dist/experimental/babyagi/task_execution.cjs +20 -0
- package/dist/experimental/babyagi/task_execution.d.ts +5 -0
- package/dist/experimental/babyagi/task_execution.js +16 -0
- package/dist/experimental/babyagi/task_prioritization.cjs +23 -0
- package/dist/experimental/babyagi/task_prioritization.d.ts +5 -0
- package/dist/experimental/babyagi/task_prioritization.js +19 -0
- package/dist/llms/base.cjs +0 -9
- package/dist/llms/base.d.ts +11 -12
- package/dist/llms/base.js +0 -9
- package/dist/llms/openai-chat.cjs +9 -5
- package/dist/llms/openai-chat.d.ts +16 -7
- package/dist/llms/openai-chat.js +9 -5
- package/dist/llms/openai.cjs +9 -5
- package/dist/llms/openai.d.ts +15 -12
- package/dist/llms/openai.js +10 -6
- package/dist/memory/base.d.ts +1 -0
- package/dist/memory/buffer_memory.cjs +3 -0
- package/dist/memory/buffer_memory.d.ts +1 -0
- package/dist/memory/buffer_memory.js +3 -0
- package/dist/memory/buffer_window_memory.cjs +5 -0
- package/dist/memory/buffer_window_memory.d.ts +1 -0
- package/dist/memory/buffer_window_memory.js +5 -0
- package/dist/memory/motorhead_memory.cjs +3 -0
- package/dist/memory/motorhead_memory.d.ts +1 -0
- package/dist/memory/motorhead_memory.js +3 -0
- package/dist/memory/summary.cjs +3 -0
- package/dist/memory/summary.d.ts +1 -0
- package/dist/memory/summary.js +3 -0
- package/dist/output_parsers/combining.cjs +4 -4
- package/dist/output_parsers/combining.d.ts +3 -2
- package/dist/output_parsers/combining.js +3 -3
- package/dist/output_parsers/fix.cjs +6 -6
- package/dist/output_parsers/fix.d.ts +3 -2
- package/dist/output_parsers/fix.js +4 -4
- package/dist/output_parsers/list.cjs +3 -3
- package/dist/output_parsers/list.d.ts +1 -1
- package/dist/output_parsers/list.js +1 -1
- package/dist/output_parsers/regex.cjs +3 -3
- package/dist/output_parsers/regex.d.ts +1 -1
- package/dist/output_parsers/regex.js +1 -1
- package/dist/output_parsers/structured.cjs +10 -4
- package/dist/output_parsers/structured.d.ts +1 -1
- package/dist/output_parsers/structured.js +9 -3
- package/dist/prompts/base.d.ts +2 -1
- package/dist/prompts/chat.cjs +16 -2
- package/dist/prompts/chat.d.ts +2 -2
- package/dist/prompts/chat.js +16 -2
- package/dist/retrievers/supabase.cjs +2 -2
- package/dist/retrievers/supabase.js +2 -2
- package/dist/schema/index.cjs +1 -21
- package/dist/schema/index.d.ts +0 -30
- package/dist/schema/index.js +0 -18
- package/dist/schema/output_parser.cjs +23 -0
- package/dist/schema/output_parser.d.ts +32 -0
- package/dist/schema/output_parser.js +18 -0
- package/dist/tools/base.cjs +4 -4
- package/dist/tools/base.d.ts +4 -7
- package/dist/tools/base.js +4 -4
- package/dist/tools/fs.cjs +4 -4
- package/dist/tools/fs.d.ts +2 -2
- package/dist/tools/fs.js +4 -4
- package/dist/tools/serpapi.cjs +17 -10
- package/dist/tools/serpapi.d.ts +4 -1
- package/dist/tools/serpapi.js +17 -10
- package/dist/tools/webbrowser.cjs +5 -5
- package/dist/tools/webbrowser.d.ts +6 -6
- package/dist/tools/webbrowser.js +5 -5
- package/dist/util/async_caller.cjs +9 -0
- package/dist/util/async_caller.js +9 -0
- package/dist/util/axios-fetch-adapter.cjs +6 -0
- package/dist/util/axios-fetch-adapter.js +6 -0
- package/dist/util/axios-types.d.ts +3 -1
- package/dist/util/flatten.cjs +21 -0
- package/dist/util/flatten.d.ts +1 -0
- package/dist/util/flatten.js +17 -0
- package/dist/util/set.cjs +41 -0
- package/dist/util/set.d.ts +15 -0
- package/dist/util/set.js +35 -0
- package/dist/vectorstores/pinecone.cjs +4 -0
- package/dist/vectorstores/pinecone.js +4 -0
- package/dist/vectorstores/supabase.cjs +1 -1
- package/dist/vectorstores/supabase.js +1 -1
- package/dist/vectorstores/weaviate.cjs +15 -9
- package/dist/vectorstores/weaviate.js +15 -9
- package/embeddings/tensorflow.cjs +1 -0
- package/embeddings/tensorflow.d.ts +1 -0
- package/embeddings/tensorflow.js +1 -0
- package/experimental/babyagi.cjs +1 -0
- package/experimental/babyagi.d.ts +1 -0
- package/experimental/babyagi.js +1 -0
- package/package.json +36 -5
- package/dist/chains/simple_sequential_chain.cjs +0 -124
- package/dist/chains/simple_sequential_chain.js +0 -120
|
@@ -11,7 +11,7 @@ class VectorDBQAChain extends base_js_1.BaseChain {
|
|
|
11
11
|
return this.combineDocumentsChain.outputKeys.concat(this.returnSourceDocuments ? ["sourceDocuments"] : []);
|
|
12
12
|
}
|
|
13
13
|
constructor(fields) {
|
|
14
|
-
super(
|
|
14
|
+
super(fields);
|
|
15
15
|
Object.defineProperty(this, "k", {
|
|
16
16
|
enumerable: true,
|
|
17
17
|
configurable: true,
|
|
@@ -50,14 +50,14 @@ class VectorDBQAChain extends base_js_1.BaseChain {
|
|
|
50
50
|
fields.returnSourceDocuments ?? this.returnSourceDocuments;
|
|
51
51
|
}
|
|
52
52
|
/** @ignore */
|
|
53
|
-
async _call(values) {
|
|
53
|
+
async _call(values, runManager) {
|
|
54
54
|
if (!(this.inputKey in values)) {
|
|
55
55
|
throw new Error(`Question key ${this.inputKey} not found.`);
|
|
56
56
|
}
|
|
57
57
|
const question = values[this.inputKey];
|
|
58
58
|
const docs = await this.vectorstore.similaritySearch(question, this.k);
|
|
59
59
|
const inputs = { question, input_documents: docs };
|
|
60
|
-
const result = await this.combineDocumentsChain.call(inputs);
|
|
60
|
+
const result = await this.combineDocumentsChain.call(inputs, runManager?.getChild());
|
|
61
61
|
if (this.returnSourceDocuments) {
|
|
62
62
|
return {
|
|
63
63
|
...result,
|
|
@@ -2,6 +2,7 @@ import { BaseChain, ChainInputs } from "./base.js";
|
|
|
2
2
|
import { VectorStore } from "../vectorstores/base.js";
|
|
3
3
|
import { SerializedVectorDBQAChain } from "./serde.js";
|
|
4
4
|
import { BaseLanguageModel } from "../base_language/index.js";
|
|
5
|
+
import { CallbackManagerForChainRun } from "../callbacks/manager.js";
|
|
5
6
|
import { ChainValues } from "../schema/index.js";
|
|
6
7
|
export type LoadValues = Record<string, any>;
|
|
7
8
|
export interface VectorDBQAChainInput extends Omit<ChainInputs, "memory"> {
|
|
@@ -21,7 +22,7 @@ export declare class VectorDBQAChain extends BaseChain implements VectorDBQAChai
|
|
|
21
22
|
returnSourceDocuments: boolean;
|
|
22
23
|
constructor(fields: VectorDBQAChainInput);
|
|
23
24
|
/** @ignore */
|
|
24
|
-
_call(values: ChainValues): Promise<ChainValues>;
|
|
25
|
+
_call(values: ChainValues, runManager?: CallbackManagerForChainRun): Promise<ChainValues>;
|
|
25
26
|
_chainType(): "vector_db_qa";
|
|
26
27
|
static deserialize(data: SerializedVectorDBQAChain, values: LoadValues): Promise<VectorDBQAChain>;
|
|
27
28
|
serialize(): SerializedVectorDBQAChain;
|
|
@@ -8,7 +8,7 @@ export class VectorDBQAChain extends BaseChain {
|
|
|
8
8
|
return this.combineDocumentsChain.outputKeys.concat(this.returnSourceDocuments ? ["sourceDocuments"] : []);
|
|
9
9
|
}
|
|
10
10
|
constructor(fields) {
|
|
11
|
-
super(
|
|
11
|
+
super(fields);
|
|
12
12
|
Object.defineProperty(this, "k", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
configurable: true,
|
|
@@ -47,14 +47,14 @@ export class VectorDBQAChain extends BaseChain {
|
|
|
47
47
|
fields.returnSourceDocuments ?? this.returnSourceDocuments;
|
|
48
48
|
}
|
|
49
49
|
/** @ignore */
|
|
50
|
-
async _call(values) {
|
|
50
|
+
async _call(values, runManager) {
|
|
51
51
|
if (!(this.inputKey in values)) {
|
|
52
52
|
throw new Error(`Question key ${this.inputKey} not found.`);
|
|
53
53
|
}
|
|
54
54
|
const question = values[this.inputKey];
|
|
55
55
|
const docs = await this.vectorstore.similaritySearch(question, this.k);
|
|
56
56
|
const inputs = { question, input_documents: docs };
|
|
57
|
-
const result = await this.combineDocumentsChain.call(inputs);
|
|
57
|
+
const result = await this.combineDocumentsChain.call(inputs, runManager?.getChild());
|
|
58
58
|
if (this.returnSourceDocuments) {
|
|
59
59
|
return {
|
|
60
60
|
...result,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseChatMessage, BasePromptValue, ChatResult, LLMResult } from "../schema/index.js";
|
|
2
|
-
import { BaseLanguageModel, BaseLanguageModelParams } from "../base_language/index.js";
|
|
2
|
+
import { BaseLanguageModel, BaseLanguageModelCallOptions, BaseLanguageModelParams } from "../base_language/index.js";
|
|
3
3
|
import { CallbackManagerForLLMRun, Callbacks } from "../callbacks/manager.js";
|
|
4
4
|
export type SerializedChatModel = {
|
|
5
5
|
_model: string;
|
|
@@ -10,18 +10,20 @@ export type SerializedLLM = {
|
|
|
10
10
|
_type: string;
|
|
11
11
|
} & Record<string, any>;
|
|
12
12
|
export type BaseChatModelParams = BaseLanguageModelParams;
|
|
13
|
+
export type BaseChatModelCallOptions = BaseLanguageModelCallOptions;
|
|
13
14
|
export declare abstract class BaseChatModel extends BaseLanguageModel {
|
|
15
|
+
CallOptions: BaseChatModelCallOptions;
|
|
14
16
|
constructor(fields: BaseChatModelParams);
|
|
15
17
|
abstract _combineLLMOutput?(...llmOutputs: LLMResult["llmOutput"][]): LLMResult["llmOutput"];
|
|
16
|
-
generate(messages: BaseChatMessage[][], stop?: string[], callbacks?: Callbacks): Promise<LLMResult>;
|
|
18
|
+
generate(messages: BaseChatMessage[][], stop?: string[] | this["CallOptions"], callbacks?: Callbacks): Promise<LLMResult>;
|
|
17
19
|
_modelType(): string;
|
|
18
20
|
abstract _llmType(): string;
|
|
19
|
-
generatePrompt(promptValues: BasePromptValue[], stop?: string[], callbacks?: Callbacks): Promise<LLMResult>;
|
|
20
|
-
abstract _generate(messages: BaseChatMessage[], stop?: string[], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
|
|
21
|
-
call(messages: BaseChatMessage[], stop?: string[], callbacks?: Callbacks): Promise<BaseChatMessage>;
|
|
22
|
-
callPrompt(promptValue: BasePromptValue, stop?: string[], callbacks?: Callbacks): Promise<BaseChatMessage>;
|
|
21
|
+
generatePrompt(promptValues: BasePromptValue[], stop?: string[] | this["CallOptions"], callbacks?: Callbacks): Promise<LLMResult>;
|
|
22
|
+
abstract _generate(messages: BaseChatMessage[], stop?: string[] | this["CallOptions"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
|
|
23
|
+
call(messages: BaseChatMessage[], stop?: string[] | this["CallOptions"], callbacks?: Callbacks): Promise<BaseChatMessage>;
|
|
24
|
+
callPrompt(promptValue: BasePromptValue, stop?: string[] | this["CallOptions"], callbacks?: Callbacks): Promise<BaseChatMessage>;
|
|
23
25
|
}
|
|
24
26
|
export declare abstract class SimpleChatModel extends BaseChatModel {
|
|
25
|
-
abstract _call(messages: BaseChatMessage[], stop?: string[], runManager?: CallbackManagerForLLMRun): Promise<string>;
|
|
26
|
-
_generate(messages: BaseChatMessage[], stop?: string[], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
|
|
27
|
+
abstract _call(messages: BaseChatMessage[], stop?: string[] | this["CallOptions"], runManager?: CallbackManagerForLLMRun): Promise<string>;
|
|
28
|
+
_generate(messages: BaseChatMessage[], stop?: string[] | this["CallOptions"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
|
|
27
29
|
}
|
|
@@ -44,9 +44,6 @@ function openAIResponseToChatMessage(role, text) {
|
|
|
44
44
|
* https://platform.openai.com/docs/api-reference/chat/create |
|
|
45
45
|
* `openai.createCompletion`} can be passed through {@link modelKwargs}, even
|
|
46
46
|
* if not explicitly available on this class.
|
|
47
|
-
*
|
|
48
|
-
* @augments BaseLLM
|
|
49
|
-
* @augments OpenAIInput
|
|
50
47
|
*/
|
|
51
48
|
class ChatOpenAI extends base_js_1.BaseChatModel {
|
|
52
49
|
constructor(fields, configuration) {
|
|
@@ -196,7 +193,13 @@ class ChatOpenAI extends base_js_1.BaseChatModel {
|
|
|
196
193
|
return this._identifyingParams();
|
|
197
194
|
}
|
|
198
195
|
/** @ignore */
|
|
199
|
-
async _generate(messages,
|
|
196
|
+
async _generate(messages, stopOrOptions, runManager) {
|
|
197
|
+
const stop = Array.isArray(stopOrOptions)
|
|
198
|
+
? stopOrOptions
|
|
199
|
+
: stopOrOptions?.stop;
|
|
200
|
+
const options = Array.isArray(stopOrOptions)
|
|
201
|
+
? {}
|
|
202
|
+
: stopOrOptions?.options ?? {};
|
|
200
203
|
const tokenUsage = {};
|
|
201
204
|
if (this.stop && stop) {
|
|
202
205
|
throw new Error("Stop found in input and default params");
|
|
@@ -216,6 +219,7 @@ class ChatOpenAI extends base_js_1.BaseChatModel {
|
|
|
216
219
|
...params,
|
|
217
220
|
messages: messagesMapped,
|
|
218
221
|
}, {
|
|
222
|
+
...options,
|
|
219
223
|
responseType: "stream",
|
|
220
224
|
onmessage: (event) => {
|
|
221
225
|
if (event.data?.trim?.() === "[DONE]") {
|
|
@@ -267,7 +271,7 @@ class ChatOpenAI extends base_js_1.BaseChatModel {
|
|
|
267
271
|
: await this.completionWithRetry({
|
|
268
272
|
...params,
|
|
269
273
|
messages: messagesMapped,
|
|
270
|
-
});
|
|
274
|
+
}, options);
|
|
271
275
|
const { completion_tokens: completionTokens, prompt_tokens: promptTokens, total_tokens: totalTokens, } = data.usage ?? {};
|
|
272
276
|
if (completionTokens) {
|
|
273
277
|
tokenUsage.completionTokens =
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CreateChatCompletionRequest, ConfigurationParameters, CreateChatCompletionResponse } from "openai";
|
|
2
|
+
import type { AxiosRequestConfig } from "axios";
|
|
2
3
|
import type { StreamingAxiosConfiguration } from "../util/axios-types.js";
|
|
3
|
-
import { BaseChatModel, BaseChatModelParams } from "./base.js";
|
|
4
|
+
import { BaseChatModel, BaseChatModelCallOptions, BaseChatModelParams } from "./base.js";
|
|
4
5
|
import { BaseChatMessage, ChatResult } from "../schema/index.js";
|
|
5
6
|
import { CallbackManagerForLLMRun } from "../callbacks/manager.js";
|
|
6
7
|
interface TokenUsage {
|
|
@@ -45,6 +46,16 @@ export interface OpenAIInput {
|
|
|
45
46
|
*/
|
|
46
47
|
timeout?: number;
|
|
47
48
|
}
|
|
49
|
+
export interface ChatOpenAICallOptions extends BaseChatModelCallOptions {
|
|
50
|
+
/**
|
|
51
|
+
* List of stop words to use when generating
|
|
52
|
+
*/
|
|
53
|
+
stop?: string[];
|
|
54
|
+
/**
|
|
55
|
+
* Additional options to pass to the underlying axios request.
|
|
56
|
+
*/
|
|
57
|
+
options?: AxiosRequestConfig;
|
|
58
|
+
}
|
|
48
59
|
type Kwargs = Record<string, any>;
|
|
49
60
|
/**
|
|
50
61
|
* Wrapper around OpenAI large language models that use the Chat endpoint.
|
|
@@ -57,11 +68,9 @@ type Kwargs = Record<string, any>;
|
|
|
57
68
|
* https://platform.openai.com/docs/api-reference/chat/create |
|
|
58
69
|
* `openai.createCompletion`} can be passed through {@link modelKwargs}, even
|
|
59
70
|
* if not explicitly available on this class.
|
|
60
|
-
*
|
|
61
|
-
* @augments BaseLLM
|
|
62
|
-
* @augments OpenAIInput
|
|
63
71
|
*/
|
|
64
72
|
export declare class ChatOpenAI extends BaseChatModel implements OpenAIInput {
|
|
73
|
+
CallOptions: ChatOpenAICallOptions;
|
|
65
74
|
temperature: number;
|
|
66
75
|
topP: number;
|
|
67
76
|
frequencyPenalty: number;
|
|
@@ -134,7 +143,7 @@ export declare class ChatOpenAI extends BaseChatModel implements OpenAIInput {
|
|
|
134
143
|
model_name: string;
|
|
135
144
|
};
|
|
136
145
|
/** @ignore */
|
|
137
|
-
_generate(messages: BaseChatMessage[],
|
|
146
|
+
_generate(messages: BaseChatMessage[], stopOrOptions?: string[] | this["CallOptions"], runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
|
|
138
147
|
getNumTokensFromMessages(messages: BaseChatMessage[]): Promise<{
|
|
139
148
|
totalCount: number;
|
|
140
149
|
countPerMessage: number[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Configuration, OpenAIApi, } from "openai";
|
|
2
2
|
import fetchAdapter from "../util/axios-fetch-adapter.js";
|
|
3
|
-
import { BaseChatModel } from "./base.js";
|
|
3
|
+
import { BaseChatModel, } from "./base.js";
|
|
4
4
|
import { AIChatMessage, ChatMessage, HumanChatMessage, SystemChatMessage, } from "../schema/index.js";
|
|
5
5
|
import { getModelNameForTiktoken } from "../base_language/count_tokens.js";
|
|
6
6
|
function messageTypeToOpenAIRole(type) {
|
|
@@ -38,9 +38,6 @@ function openAIResponseToChatMessage(role, text) {
|
|
|
38
38
|
* https://platform.openai.com/docs/api-reference/chat/create |
|
|
39
39
|
* `openai.createCompletion`} can be passed through {@link modelKwargs}, even
|
|
40
40
|
* if not explicitly available on this class.
|
|
41
|
-
*
|
|
42
|
-
* @augments BaseLLM
|
|
43
|
-
* @augments OpenAIInput
|
|
44
41
|
*/
|
|
45
42
|
export class ChatOpenAI extends BaseChatModel {
|
|
46
43
|
constructor(fields, configuration) {
|
|
@@ -190,7 +187,13 @@ export class ChatOpenAI extends BaseChatModel {
|
|
|
190
187
|
return this._identifyingParams();
|
|
191
188
|
}
|
|
192
189
|
/** @ignore */
|
|
193
|
-
async _generate(messages,
|
|
190
|
+
async _generate(messages, stopOrOptions, runManager) {
|
|
191
|
+
const stop = Array.isArray(stopOrOptions)
|
|
192
|
+
? stopOrOptions
|
|
193
|
+
: stopOrOptions?.stop;
|
|
194
|
+
const options = Array.isArray(stopOrOptions)
|
|
195
|
+
? {}
|
|
196
|
+
: stopOrOptions?.options ?? {};
|
|
194
197
|
const tokenUsage = {};
|
|
195
198
|
if (this.stop && stop) {
|
|
196
199
|
throw new Error("Stop found in input and default params");
|
|
@@ -210,6 +213,7 @@ export class ChatOpenAI extends BaseChatModel {
|
|
|
210
213
|
...params,
|
|
211
214
|
messages: messagesMapped,
|
|
212
215
|
}, {
|
|
216
|
+
...options,
|
|
213
217
|
responseType: "stream",
|
|
214
218
|
onmessage: (event) => {
|
|
215
219
|
if (event.data?.trim?.() === "[DONE]") {
|
|
@@ -261,7 +265,7 @@ export class ChatOpenAI extends BaseChatModel {
|
|
|
261
265
|
: await this.completionWithRetry({
|
|
262
266
|
...params,
|
|
263
267
|
messages: messagesMapped,
|
|
264
|
-
});
|
|
268
|
+
}, options);
|
|
265
269
|
const { completion_tokens: completionTokens, prompt_tokens: promptTokens, total_tokens: totalTokens, } = data.usage ?? {};
|
|
266
270
|
if (completionTokens) {
|
|
267
271
|
tokenUsage.completionTokens =
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnstructuredLoader = void 0;
|
|
3
|
+
exports.UnknownHandling = exports.UnstructuredDirectoryLoader = exports.UnstructuredLoader = void 0;
|
|
4
|
+
const directory_js_1 = require("./directory.cjs");
|
|
5
|
+
Object.defineProperty(exports, "UnknownHandling", { enumerable: true, get: function () { return directory_js_1.UnknownHandling; } });
|
|
4
6
|
const env_js_1 = require("../../util/env.cjs");
|
|
5
7
|
const document_js_1 = require("../../document.cjs");
|
|
6
8
|
const base_js_1 = require("../base.cjs");
|
|
@@ -72,3 +74,48 @@ class UnstructuredLoader extends base_js_1.BaseDocumentLoader {
|
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
exports.UnstructuredLoader = UnstructuredLoader;
|
|
77
|
+
class UnstructuredDirectoryLoader extends directory_js_1.DirectoryLoader {
|
|
78
|
+
constructor(webPath, directoryPath, recursive = true, unknown = directory_js_1.UnknownHandling.Warn) {
|
|
79
|
+
const loaders = {
|
|
80
|
+
".txt": (p) => new UnstructuredLoader(webPath, p),
|
|
81
|
+
".text": (p) => new UnstructuredLoader(webPath, p),
|
|
82
|
+
".pdf": (p) => new UnstructuredLoader(webPath, p),
|
|
83
|
+
".docx": (p) => new UnstructuredLoader(webPath, p),
|
|
84
|
+
".doc": (p) => new UnstructuredLoader(webPath, p),
|
|
85
|
+
".jpg": (p) => new UnstructuredLoader(webPath, p),
|
|
86
|
+
".jpeg": (p) => new UnstructuredLoader(webPath, p),
|
|
87
|
+
".eml": (p) => new UnstructuredLoader(webPath, p),
|
|
88
|
+
".html": (p) => new UnstructuredLoader(webPath, p),
|
|
89
|
+
".md": (p) => new UnstructuredLoader(webPath, p),
|
|
90
|
+
".pptx": (p) => new UnstructuredLoader(webPath, p),
|
|
91
|
+
".ppt": (p) => new UnstructuredLoader(webPath, p),
|
|
92
|
+
".msg": (p) => new UnstructuredLoader(webPath, p),
|
|
93
|
+
};
|
|
94
|
+
super(directoryPath, loaders, recursive, unknown);
|
|
95
|
+
Object.defineProperty(this, "webPath", {
|
|
96
|
+
enumerable: true,
|
|
97
|
+
configurable: true,
|
|
98
|
+
writable: true,
|
|
99
|
+
value: webPath
|
|
100
|
+
});
|
|
101
|
+
Object.defineProperty(this, "directoryPath", {
|
|
102
|
+
enumerable: true,
|
|
103
|
+
configurable: true,
|
|
104
|
+
writable: true,
|
|
105
|
+
value: directoryPath
|
|
106
|
+
});
|
|
107
|
+
Object.defineProperty(this, "recursive", {
|
|
108
|
+
enumerable: true,
|
|
109
|
+
configurable: true,
|
|
110
|
+
writable: true,
|
|
111
|
+
value: recursive
|
|
112
|
+
});
|
|
113
|
+
Object.defineProperty(this, "unknown", {
|
|
114
|
+
enumerable: true,
|
|
115
|
+
configurable: true,
|
|
116
|
+
writable: true,
|
|
117
|
+
value: unknown
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
exports.UnstructuredDirectoryLoader = UnstructuredDirectoryLoader;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/// <reference types="node" resolution-mode="require"/>
|
|
3
3
|
import type { basename as BasenameT } from "node:path";
|
|
4
4
|
import type { readFile as ReaFileT } from "node:fs/promises";
|
|
5
|
+
import { DirectoryLoader, UnknownHandling } from "./directory.js";
|
|
5
6
|
import { Document } from "../../document.js";
|
|
6
7
|
import { BaseDocumentLoader } from "../base.js";
|
|
7
8
|
interface Element {
|
|
@@ -22,4 +23,11 @@ export declare class UnstructuredLoader extends BaseDocumentLoader {
|
|
|
22
23
|
basename: typeof BasenameT;
|
|
23
24
|
}>;
|
|
24
25
|
}
|
|
25
|
-
export {
|
|
26
|
+
export declare class UnstructuredDirectoryLoader extends DirectoryLoader {
|
|
27
|
+
webPath: string;
|
|
28
|
+
directoryPath: string;
|
|
29
|
+
recursive: boolean;
|
|
30
|
+
unknown: UnknownHandling;
|
|
31
|
+
constructor(webPath: string, directoryPath: string, recursive?: boolean, unknown?: UnknownHandling);
|
|
32
|
+
}
|
|
33
|
+
export { UnknownHandling };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DirectoryLoader, UnknownHandling } from "./directory.js";
|
|
1
2
|
import { getEnv } from "../../util/env.js";
|
|
2
3
|
import { Document } from "../../document.js";
|
|
3
4
|
import { BaseDocumentLoader } from "../base.js";
|
|
@@ -68,3 +69,48 @@ export class UnstructuredLoader extends BaseDocumentLoader {
|
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
}
|
|
72
|
+
export class UnstructuredDirectoryLoader extends DirectoryLoader {
|
|
73
|
+
constructor(webPath, directoryPath, recursive = true, unknown = UnknownHandling.Warn) {
|
|
74
|
+
const loaders = {
|
|
75
|
+
".txt": (p) => new UnstructuredLoader(webPath, p),
|
|
76
|
+
".text": (p) => new UnstructuredLoader(webPath, p),
|
|
77
|
+
".pdf": (p) => new UnstructuredLoader(webPath, p),
|
|
78
|
+
".docx": (p) => new UnstructuredLoader(webPath, p),
|
|
79
|
+
".doc": (p) => new UnstructuredLoader(webPath, p),
|
|
80
|
+
".jpg": (p) => new UnstructuredLoader(webPath, p),
|
|
81
|
+
".jpeg": (p) => new UnstructuredLoader(webPath, p),
|
|
82
|
+
".eml": (p) => new UnstructuredLoader(webPath, p),
|
|
83
|
+
".html": (p) => new UnstructuredLoader(webPath, p),
|
|
84
|
+
".md": (p) => new UnstructuredLoader(webPath, p),
|
|
85
|
+
".pptx": (p) => new UnstructuredLoader(webPath, p),
|
|
86
|
+
".ppt": (p) => new UnstructuredLoader(webPath, p),
|
|
87
|
+
".msg": (p) => new UnstructuredLoader(webPath, p),
|
|
88
|
+
};
|
|
89
|
+
super(directoryPath, loaders, recursive, unknown);
|
|
90
|
+
Object.defineProperty(this, "webPath", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
configurable: true,
|
|
93
|
+
writable: true,
|
|
94
|
+
value: webPath
|
|
95
|
+
});
|
|
96
|
+
Object.defineProperty(this, "directoryPath", {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
configurable: true,
|
|
99
|
+
writable: true,
|
|
100
|
+
value: directoryPath
|
|
101
|
+
});
|
|
102
|
+
Object.defineProperty(this, "recursive", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
configurable: true,
|
|
105
|
+
writable: true,
|
|
106
|
+
value: recursive
|
|
107
|
+
});
|
|
108
|
+
Object.defineProperty(this, "unknown", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
configurable: true,
|
|
111
|
+
writable: true,
|
|
112
|
+
value: unknown
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
export { UnknownHandling };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
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]; } };
|
|
7
|
+
}
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.TensorFlowEmbeddings = void 0;
|
|
27
|
+
const universal_sentence_encoder_1 = require("@tensorflow-models/universal-sentence-encoder");
|
|
28
|
+
const tf = __importStar(require("@tensorflow/tfjs-core"));
|
|
29
|
+
const base_js_1 = require("./base.cjs");
|
|
30
|
+
class TensorFlowEmbeddings extends base_js_1.Embeddings {
|
|
31
|
+
constructor(fields) {
|
|
32
|
+
super(fields ?? {});
|
|
33
|
+
Object.defineProperty(this, "_cached", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
try {
|
|
40
|
+
tf.backend();
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
throw new Error("No TensorFlow backend found, see instructions at ...");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async load() {
|
|
47
|
+
if (this._cached === undefined) {
|
|
48
|
+
this._cached = (0, universal_sentence_encoder_1.load)();
|
|
49
|
+
}
|
|
50
|
+
return this._cached;
|
|
51
|
+
}
|
|
52
|
+
_embed(texts) {
|
|
53
|
+
return this.caller.call(async () => {
|
|
54
|
+
const model = await this.load();
|
|
55
|
+
return model.embed(texts);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
embedQuery(document) {
|
|
59
|
+
return this._embed([document])
|
|
60
|
+
.then((embeddings) => embeddings.array())
|
|
61
|
+
.then((embeddings) => embeddings[0]);
|
|
62
|
+
}
|
|
63
|
+
embedDocuments(documents) {
|
|
64
|
+
return this._embed(documents).then((embeddings) => embeddings.array());
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.TensorFlowEmbeddings = TensorFlowEmbeddings;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { load } from "@tensorflow-models/universal-sentence-encoder";
|
|
2
|
+
import { Embeddings, EmbeddingsParams } from "./base.js";
|
|
3
|
+
export interface TensorFlowEmbeddingsParams extends EmbeddingsParams {
|
|
4
|
+
}
|
|
5
|
+
export declare class TensorFlowEmbeddings extends Embeddings {
|
|
6
|
+
constructor(fields?: TensorFlowEmbeddingsParams);
|
|
7
|
+
_cached: ReturnType<typeof load>;
|
|
8
|
+
private load;
|
|
9
|
+
private _embed;
|
|
10
|
+
embedQuery(document: string): Promise<number[]>;
|
|
11
|
+
embedDocuments(documents: string[]): Promise<number[][]>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { load } from "@tensorflow-models/universal-sentence-encoder";
|
|
2
|
+
import * as tf from "@tensorflow/tfjs-core";
|
|
3
|
+
import { Embeddings } from "./base.js";
|
|
4
|
+
export class TensorFlowEmbeddings extends Embeddings {
|
|
5
|
+
constructor(fields) {
|
|
6
|
+
super(fields ?? {});
|
|
7
|
+
Object.defineProperty(this, "_cached", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
configurable: true,
|
|
10
|
+
writable: true,
|
|
11
|
+
value: void 0
|
|
12
|
+
});
|
|
13
|
+
try {
|
|
14
|
+
tf.backend();
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
throw new Error("No TensorFlow backend found, see instructions at ...");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async load() {
|
|
21
|
+
if (this._cached === undefined) {
|
|
22
|
+
this._cached = load();
|
|
23
|
+
}
|
|
24
|
+
return this._cached;
|
|
25
|
+
}
|
|
26
|
+
_embed(texts) {
|
|
27
|
+
return this.caller.call(async () => {
|
|
28
|
+
const model = await this.load();
|
|
29
|
+
return model.embed(texts);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
embedQuery(document) {
|
|
33
|
+
return this._embed([document])
|
|
34
|
+
.then((embeddings) => embeddings.array())
|
|
35
|
+
.then((embeddings) => embeddings[0]);
|
|
36
|
+
}
|
|
37
|
+
embedDocuments(documents) {
|
|
38
|
+
return this._embed(documents).then((embeddings) => embeddings.array());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AutoGPTOutputParser = exports.preprocessJsonInput = void 0;
|
|
4
|
-
const
|
|
4
|
+
const output_parser_js_1 = require("../../schema/output_parser.cjs");
|
|
5
5
|
function preprocessJsonInput(inputStr) {
|
|
6
6
|
// Replace single backslashes with double backslashes,
|
|
7
7
|
// while leaving already escaped ones intact
|
|
@@ -9,7 +9,7 @@ function preprocessJsonInput(inputStr) {
|
|
|
9
9
|
return correctedStr;
|
|
10
10
|
}
|
|
11
11
|
exports.preprocessJsonInput = preprocessJsonInput;
|
|
12
|
-
class AutoGPTOutputParser extends
|
|
12
|
+
class AutoGPTOutputParser extends output_parser_js_1.BaseOutputParser {
|
|
13
13
|
getFormatInstructions() {
|
|
14
14
|
throw new Error("Method not implemented.");
|
|
15
15
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseOutputParser } from "../../schema/
|
|
1
|
+
import { BaseOutputParser } from "../../schema/output_parser.js";
|
|
2
2
|
import { AutoGPTAction } from "./schema.js";
|
|
3
3
|
export declare function preprocessJsonInput(inputStr: string): string;
|
|
4
4
|
export declare class AutoGPTOutputParser extends BaseOutputParser<AutoGPTAction> {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseOutputParser } from "../../schema/
|
|
1
|
+
import { BaseOutputParser } from "../../schema/output_parser.js";
|
|
2
2
|
export function preprocessJsonInput(inputStr) {
|
|
3
3
|
// Replace single backslashes with double backslashes,
|
|
4
4
|
// while leaving already escaped ones intact
|