langchain 0.0.4 → 0.0.5
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/cjs/agents/agent.d.ts +54 -0
- package/dist/cjs/agents/agent.js +81 -59
- package/dist/cjs/agents/agent.js.map +1 -1
- package/dist/cjs/agents/executor.d.ts +5 -0
- package/dist/cjs/agents/executor.js +36 -42
- package/dist/cjs/agents/executor.js.map +1 -1
- package/dist/cjs/agents/helpers.js +4 -13
- package/dist/cjs/agents/helpers.js.map +1 -1
- package/dist/cjs/agents/index.d.ts +1 -0
- package/dist/cjs/agents/index.js +5 -1
- package/dist/cjs/agents/index.js.map +1 -1
- package/dist/cjs/agents/initialize.d.ts +4 -0
- package/dist/cjs/agents/initialize.js +21 -0
- package/dist/cjs/agents/initialize.js.map +1 -0
- package/dist/cjs/agents/load.js +6 -15
- package/dist/cjs/agents/load.js.map +1 -1
- package/dist/cjs/agents/mrkl/index.d.ts +17 -0
- package/dist/cjs/agents/mrkl/index.js +21 -29
- package/dist/cjs/agents/mrkl/index.js.map +1 -1
- package/dist/cjs/agents/mrkl/prompt.js +0 -1
- package/dist/cjs/agents/mrkl/prompt.js.map +1 -1
- package/dist/cjs/agents/tests/agent.test.js +19 -15
- package/dist/cjs/agents/tests/agent.test.js.map +1 -1
- package/dist/cjs/agents/tests/calculator.test.d.ts +1 -0
- package/dist/cjs/agents/tests/calculator.test.js +30 -0
- package/dist/cjs/agents/tests/calculator.test.js.map +1 -0
- package/dist/cjs/agents/tools/base.d.ts +6 -0
- package/dist/cjs/agents/tools/base.js +15 -0
- package/dist/cjs/agents/tools/base.js.map +1 -0
- package/dist/cjs/agents/tools/calculator.d.ts +6 -0
- package/dist/cjs/agents/tools/calculator.js +33 -0
- package/dist/cjs/agents/tools/calculator.js.map +1 -0
- package/dist/cjs/agents/tools/index.d.ts +2 -6
- package/dist/cjs/agents/tools/index.js +5 -1
- package/dist/cjs/agents/tools/index.js.map +1 -1
- package/dist/cjs/agents/tools/serpapi.d.ts +18 -3
- package/dist/cjs/agents/tools/serpapi.js +88 -45
- package/dist/cjs/agents/tools/serpapi.js.map +1 -1
- package/dist/cjs/chains/base.d.ts +34 -4
- package/dist/cjs/chains/base.js +41 -3
- package/dist/cjs/chains/base.js.map +1 -1
- package/dist/cjs/chains/chat_vector_db_chain.d.ts +41 -0
- package/dist/cjs/chains/chat_vector_db_chain.js +132 -0
- package/dist/cjs/chains/chat_vector_db_chain.js.map +1 -0
- package/dist/cjs/chains/combine_docs_chain.d.ts +35 -0
- package/dist/cjs/chains/combine_docs_chain.js +75 -0
- package/dist/cjs/chains/combine_docs_chain.js.map +1 -0
- package/dist/cjs/chains/conversation.d.ts +12 -0
- package/dist/cjs/chains/conversation.js +29 -0
- package/dist/cjs/chains/conversation.js.map +1 -0
- package/dist/cjs/chains/index.d.ts +5 -1
- package/dist/cjs/chains/index.js +10 -1
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/chains/llm_chain.d.ts +35 -0
- package/dist/cjs/chains/llm_chain.js +66 -34
- package/dist/cjs/chains/llm_chain.js.map +1 -1
- package/dist/cjs/chains/load.d.ts +20 -1
- package/dist/cjs/chains/load.js +25 -17
- package/dist/cjs/chains/load.js.map +1 -1
- package/dist/cjs/chains/question_answering/load.d.ts +3 -0
- package/dist/cjs/chains/question_answering/load.js +13 -0
- package/dist/cjs/chains/question_answering/load.js.map +1 -0
- package/dist/cjs/chains/question_answering/stuff_prompts.d.ts +2 -0
- package/dist/cjs/chains/question_answering/stuff_prompts.js +10 -0
- package/dist/cjs/chains/question_answering/stuff_prompts.js.map +1 -0
- package/dist/cjs/chains/question_answering/tests/load.test.d.ts +1 -0
- package/dist/cjs/chains/question_answering/tests/load.test.js +14 -0
- package/dist/cjs/chains/question_answering/tests/load.test.js.map +1 -0
- package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.d.ts +1 -0
- package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js +35 -0
- package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
- package/dist/cjs/chains/tests/combine_docs_chain.test.d.ts +1 -0
- package/dist/cjs/chains/tests/combine_docs_chain.test.js +28 -0
- package/dist/cjs/chains/tests/combine_docs_chain.test.js.map +1 -0
- package/dist/cjs/chains/tests/llm_chain.test.js +13 -16
- package/dist/cjs/chains/tests/llm_chain.test.js.map +1 -1
- package/dist/cjs/chains/tests/vector_db_qa_chain.test.d.ts +1 -0
- package/dist/cjs/chains/tests/vector_db_qa_chain.test.js +46 -0
- package/dist/cjs/chains/tests/vector_db_qa_chain.test.js.map +1 -0
- package/dist/cjs/chains/vector_db_qa.d.ts +36 -0
- package/dist/cjs/chains/vector_db_qa.js +85 -0
- package/dist/cjs/chains/vector_db_qa.js.map +1 -0
- package/dist/cjs/document.d.ts +13 -0
- package/dist/cjs/document.js +28 -0
- package/dist/cjs/document.js.map +1 -0
- package/dist/cjs/embeddings/base.d.ts +4 -0
- package/dist/cjs/embeddings/base.js +7 -0
- package/dist/cjs/embeddings/base.js.map +1 -0
- package/dist/cjs/embeddings/index.d.ts +1 -0
- package/dist/cjs/embeddings/index.js +6 -0
- package/dist/cjs/embeddings/index.js.map +1 -0
- package/dist/cjs/embeddings/openai.d.ts +20 -0
- package/dist/cjs/embeddings/openai.js +86 -0
- package/dist/cjs/embeddings/openai.js.map +1 -0
- package/dist/cjs/embeddings/tests/openai.test.d.ts +1 -0
- package/dist/cjs/embeddings/tests/openai.test.js +17 -0
- package/dist/cjs/embeddings/tests/openai.test.js.map +1 -0
- package/dist/cjs/llms/base.d.ts +41 -0
- package/dist/cjs/llms/base.js +97 -92
- package/dist/cjs/llms/base.js.map +1 -1
- package/dist/cjs/llms/index.d.ts +19 -0
- package/dist/cjs/llms/load.d.ts +10 -2
- package/dist/cjs/llms/load.js +12 -4
- package/dist/cjs/llms/load.js.map +1 -1
- package/dist/cjs/llms/openai.d.ts +69 -7
- package/dist/cjs/llms/openai.js +96 -58
- package/dist/cjs/llms/openai.js.map +1 -1
- package/dist/cjs/llms/tests/openai.test.js +3 -12
- package/dist/cjs/llms/tests/openai.test.js.map +1 -1
- package/dist/cjs/memory/base.d.ts +7 -0
- package/dist/cjs/memory/base.js +7 -0
- package/dist/cjs/memory/base.js.map +1 -0
- package/dist/cjs/memory/buffer_memory.d.ts +15 -0
- package/dist/cjs/memory/buffer_memory.js +57 -0
- package/dist/cjs/memory/buffer_memory.js.map +1 -0
- package/dist/cjs/memory/index.d.ts +2 -0
- package/dist/cjs/memory/index.js +8 -0
- package/dist/cjs/memory/index.js.map +1 -0
- package/dist/cjs/memory/tests/buffer_memory.test.d.ts +1 -0
- package/dist/cjs/memory/tests/buffer_memory.test.js +17 -0
- package/dist/cjs/memory/tests/buffer_memory.test.js.map +1 -0
- package/dist/cjs/prompt/base.d.ts +39 -0
- package/dist/cjs/prompt/base.js +24 -25
- package/dist/cjs/prompt/base.js.map +1 -1
- package/dist/cjs/prompt/few_shot.d.ts +36 -1
- package/dist/cjs/prompt/few_shot.js +27 -33
- package/dist/cjs/prompt/few_shot.js.map +1 -1
- package/dist/cjs/prompt/index.d.ts +1 -0
- package/dist/cjs/prompt/index.js +3 -1
- package/dist/cjs/prompt/index.js.map +1 -1
- package/dist/cjs/prompt/load.d.ts +17 -0
- package/dist/cjs/prompt/load.js +21 -13
- package/dist/cjs/prompt/load.js.map +1 -1
- package/dist/cjs/prompt/parser.d.ts +30 -0
- package/dist/cjs/prompt/parser.js +21 -0
- package/dist/cjs/prompt/parser.js.map +1 -1
- package/dist/cjs/prompt/prompt.d.ts +48 -0
- package/dist/cjs/prompt/prompt.js +38 -18
- package/dist/cjs/prompt/prompt.js.map +1 -1
- package/dist/cjs/prompt/template.js.map +1 -1
- package/dist/cjs/prompt/tests/load.test.js +6 -15
- package/dist/cjs/prompt/tests/load.test.js.map +1 -1
- package/dist/cjs/text_splitter.d.ts +32 -0
- package/dist/cjs/text_splitter.js +165 -0
- package/dist/cjs/text_splitter.js.map +1 -0
- package/dist/cjs/text_splitter.test.d.ts +1 -0
- package/dist/cjs/text_splitter.test.js +87 -0
- package/dist/cjs/text_splitter.test.js.map +1 -0
- package/dist/cjs/util/hub.d.ts +2 -1
- package/dist/cjs/util/hub.js +5 -14
- package/dist/cjs/util/hub.js.map +1 -1
- package/dist/cjs/util/index.d.ts +1 -0
- package/dist/cjs/util/index.js +13 -25
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/cjs/vectorstores/base.d.ts +18 -0
- package/dist/cjs/vectorstores/base.js +38 -0
- package/dist/cjs/vectorstores/base.js.map +1 -0
- package/dist/cjs/vectorstores/hnswlib.d.ts +19 -0
- package/dist/cjs/vectorstores/hnswlib.js +126 -0
- package/dist/cjs/vectorstores/hnswlib.js.map +1 -0
- package/dist/cjs/vectorstores/index.d.ts +1 -0
- package/dist/cjs/vectorstores/index.js +6 -0
- package/dist/cjs/vectorstores/index.js.map +1 -0
- package/dist/cjs/vectorstores/tests/hnswlib.test.d.ts +1 -0
- package/dist/cjs/vectorstores/tests/hnswlib.test.js +44 -0
- package/dist/cjs/vectorstores/tests/hnswlib.test.js.map +1 -0
- package/dist/esm/agents/agent.d.ts +54 -0
- package/dist/esm/agents/agent.js +81 -59
- package/dist/esm/agents/agent.js.map +1 -1
- package/dist/esm/agents/executor.d.ts +5 -0
- package/dist/esm/agents/executor.js +36 -42
- package/dist/esm/agents/executor.js.map +1 -1
- package/dist/esm/agents/helpers.js +4 -13
- package/dist/esm/agents/helpers.js.map +1 -1
- package/dist/esm/agents/index.d.ts +1 -0
- package/dist/esm/agents/index.js +2 -0
- package/dist/esm/agents/index.js.map +1 -1
- package/dist/esm/agents/initialize.d.ts +4 -0
- package/dist/esm/agents/initialize.js +17 -0
- package/dist/esm/agents/initialize.js.map +1 -0
- package/dist/esm/agents/load.js +6 -15
- package/dist/esm/agents/load.js.map +1 -1
- package/dist/esm/agents/mrkl/index.d.ts +17 -0
- package/dist/esm/agents/mrkl/index.js +21 -29
- package/dist/esm/agents/mrkl/index.js.map +1 -1
- package/dist/esm/agents/mrkl/prompt.js +0 -1
- package/dist/esm/agents/mrkl/prompt.js.map +1 -1
- package/dist/esm/agents/tests/agent.test.js +19 -15
- package/dist/esm/agents/tests/agent.test.js.map +1 -1
- package/dist/esm/agents/tests/calculator.test.d.ts +1 -0
- package/dist/esm/agents/tests/calculator.test.js +28 -0
- package/dist/esm/agents/tests/calculator.test.js.map +1 -0
- package/dist/esm/agents/tools/base.d.ts +6 -0
- package/dist/esm/agents/tools/base.js +11 -0
- package/dist/esm/agents/tools/base.js.map +1 -0
- package/dist/esm/agents/tools/calculator.d.ts +6 -0
- package/dist/esm/agents/tools/calculator.js +29 -0
- package/dist/esm/agents/tools/calculator.js.map +1 -0
- package/dist/esm/agents/tools/index.d.ts +2 -6
- package/dist/esm/agents/tools/index.js +2 -0
- package/dist/esm/agents/tools/index.js.map +1 -1
- package/dist/esm/agents/tools/serpapi.d.ts +18 -3
- package/dist/esm/agents/tools/serpapi.js +88 -45
- package/dist/esm/agents/tools/serpapi.js.map +1 -1
- package/dist/esm/chains/base.d.ts +34 -4
- package/dist/esm/chains/base.js +42 -4
- package/dist/esm/chains/base.js.map +1 -1
- package/dist/esm/chains/chat_vector_db_chain.d.ts +41 -0
- package/dist/esm/chains/chat_vector_db_chain.js +128 -0
- package/dist/esm/chains/chat_vector_db_chain.js.map +1 -0
- package/dist/esm/chains/combine_docs_chain.d.ts +35 -0
- package/dist/esm/chains/combine_docs_chain.js +71 -0
- package/dist/esm/chains/combine_docs_chain.js.map +1 -0
- package/dist/esm/chains/conversation.d.ts +12 -0
- package/dist/esm/chains/conversation.js +25 -0
- package/dist/esm/chains/conversation.js.map +1 -0
- package/dist/esm/chains/index.d.ts +5 -1
- package/dist/esm/chains/index.js +5 -1
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/chains/llm_chain.d.ts +35 -0
- package/dist/esm/chains/llm_chain.js +65 -34
- package/dist/esm/chains/llm_chain.js.map +1 -1
- package/dist/esm/chains/load.d.ts +20 -1
- package/dist/esm/chains/load.js +25 -17
- package/dist/esm/chains/load.js.map +1 -1
- package/dist/esm/chains/question_answering/load.d.ts +3 -0
- package/dist/esm/chains/question_answering/load.js +9 -0
- package/dist/esm/chains/question_answering/load.js.map +1 -0
- package/dist/esm/chains/question_answering/stuff_prompts.d.ts +2 -0
- package/dist/esm/chains/question_answering/stuff_prompts.js +7 -0
- package/dist/esm/chains/question_answering/stuff_prompts.js.map +1 -0
- package/dist/esm/chains/question_answering/tests/load.test.d.ts +1 -0
- package/dist/esm/chains/question_answering/tests/load.test.js +12 -0
- package/dist/esm/chains/question_answering/tests/load.test.js.map +1 -0
- package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.d.ts +1 -0
- package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js +33 -0
- package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
- package/dist/esm/chains/tests/combine_docs_chain.test.d.ts +1 -0
- package/dist/esm/chains/tests/combine_docs_chain.test.js +26 -0
- package/dist/esm/chains/tests/combine_docs_chain.test.js.map +1 -0
- package/dist/esm/chains/tests/llm_chain.test.js +14 -17
- package/dist/esm/chains/tests/llm_chain.test.js.map +1 -1
- package/dist/esm/chains/tests/vector_db_qa_chain.test.d.ts +1 -0
- package/dist/esm/chains/tests/vector_db_qa_chain.test.js +44 -0
- package/dist/esm/chains/tests/vector_db_qa_chain.test.js.map +1 -0
- package/dist/esm/chains/vector_db_qa.d.ts +36 -0
- package/dist/esm/chains/vector_db_qa.js +81 -0
- package/dist/esm/chains/vector_db_qa.js.map +1 -0
- package/dist/esm/document.d.ts +13 -0
- package/dist/esm/document.js +24 -0
- package/dist/esm/document.js.map +1 -0
- package/dist/esm/embeddings/base.d.ts +4 -0
- package/dist/esm/embeddings/base.js +3 -0
- package/dist/esm/embeddings/base.js.map +1 -0
- package/dist/esm/embeddings/index.d.ts +1 -0
- package/dist/esm/embeddings/index.js +2 -0
- package/dist/esm/embeddings/index.js.map +1 -0
- package/dist/esm/embeddings/openai.d.ts +20 -0
- package/dist/esm/embeddings/openai.js +82 -0
- package/dist/esm/embeddings/openai.js.map +1 -0
- package/dist/esm/embeddings/tests/openai.test.d.ts +1 -0
- package/dist/esm/embeddings/tests/openai.test.js +15 -0
- package/dist/esm/embeddings/tests/openai.test.js.map +1 -0
- package/dist/esm/llms/base.d.ts +41 -0
- package/dist/esm/llms/base.js +97 -92
- package/dist/esm/llms/base.js.map +1 -1
- package/dist/esm/llms/index.d.ts +19 -0
- package/dist/esm/llms/load.d.ts +10 -2
- package/dist/esm/llms/load.js +10 -2
- package/dist/esm/llms/load.js.map +1 -1
- package/dist/esm/llms/openai.d.ts +69 -7
- package/dist/esm/llms/openai.js +96 -58
- package/dist/esm/llms/openai.js.map +1 -1
- package/dist/esm/llms/tests/openai.test.js +3 -12
- package/dist/esm/llms/tests/openai.test.js.map +1 -1
- package/dist/esm/memory/base.d.ts +7 -0
- package/dist/esm/memory/base.js +3 -0
- package/dist/esm/memory/base.js.map +1 -0
- package/dist/esm/memory/buffer_memory.d.ts +15 -0
- package/dist/esm/memory/buffer_memory.js +53 -0
- package/dist/esm/memory/buffer_memory.js.map +1 -0
- package/dist/esm/memory/index.d.ts +2 -0
- package/dist/esm/memory/index.js +3 -0
- package/dist/esm/memory/index.js.map +1 -0
- package/dist/esm/memory/tests/buffer_memory.test.d.ts +1 -0
- package/dist/esm/memory/tests/buffer_memory.test.js +15 -0
- package/dist/esm/memory/tests/buffer_memory.test.js.map +1 -0
- package/dist/esm/prompt/base.d.ts +39 -0
- package/dist/esm/prompt/base.js +24 -25
- package/dist/esm/prompt/base.js.map +1 -1
- package/dist/esm/prompt/few_shot.d.ts +36 -1
- package/dist/esm/prompt/few_shot.js +27 -33
- package/dist/esm/prompt/few_shot.js.map +1 -1
- package/dist/esm/prompt/index.d.ts +1 -0
- package/dist/esm/prompt/index.js +1 -0
- package/dist/esm/prompt/index.js.map +1 -1
- package/dist/esm/prompt/load.d.ts +17 -0
- package/dist/esm/prompt/load.js +21 -13
- package/dist/esm/prompt/load.js.map +1 -1
- package/dist/esm/prompt/parser.d.ts +30 -0
- package/dist/esm/prompt/parser.js +21 -0
- package/dist/esm/prompt/parser.js.map +1 -1
- package/dist/esm/prompt/prompt.d.ts +48 -0
- package/dist/esm/prompt/prompt.js +38 -18
- package/dist/esm/prompt/prompt.js.map +1 -1
- package/dist/esm/prompt/template.js.map +1 -1
- package/dist/esm/prompt/tests/load.test.js +6 -15
- package/dist/esm/prompt/tests/load.test.js.map +1 -1
- package/dist/esm/text_splitter.d.ts +32 -0
- package/dist/esm/text_splitter.js +160 -0
- package/dist/esm/text_splitter.js.map +1 -0
- package/dist/esm/text_splitter.test.d.ts +1 -0
- package/dist/esm/text_splitter.test.js +85 -0
- package/dist/esm/text_splitter.test.js.map +1 -0
- package/dist/esm/util/hub.d.ts +2 -1
- package/dist/esm/util/hub.js +5 -14
- package/dist/esm/util/hub.js.map +1 -1
- package/dist/esm/util/index.d.ts +1 -0
- package/dist/esm/util/index.js +11 -24
- package/dist/esm/util/index.js.map +1 -1
- package/dist/esm/vectorstores/base.d.ts +18 -0
- package/dist/esm/vectorstores/base.js +33 -0
- package/dist/esm/vectorstores/base.js.map +1 -0
- package/dist/esm/vectorstores/hnswlib.d.ts +19 -0
- package/dist/esm/vectorstores/hnswlib.js +119 -0
- package/dist/esm/vectorstores/hnswlib.js.map +1 -0
- package/dist/esm/vectorstores/index.d.ts +1 -0
- package/dist/esm/vectorstores/index.js +2 -0
- package/dist/esm/vectorstores/index.js.map +1 -0
- package/dist/esm/vectorstores/tests/hnswlib.test.d.ts +1 -0
- package/dist/esm/vectorstores/tests/hnswlib.test.js +39 -0
- package/dist/esm/vectorstores/tests/hnswlib.test.js.map +1 -0
- package/package.json +65 -38
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseChain, ChainValues, SerializedStuffDocumentsChain, StuffDocumentsChain, SerializedLLMChain, LLMChain } from "./index";
|
|
2
|
+
import { VectorStore } from "../vectorstores/base";
|
|
3
|
+
import { BaseLLM } from "../llms";
|
|
4
|
+
export type LoadValues = Record<string, any>;
|
|
5
|
+
export interface ChatVectorDBQAChainInput {
|
|
6
|
+
vectorstore: VectorStore;
|
|
7
|
+
k: number;
|
|
8
|
+
combineDocumentsChain: StuffDocumentsChain;
|
|
9
|
+
questionGeneratorChain: LLMChain;
|
|
10
|
+
outputKey: string;
|
|
11
|
+
inputKey: string;
|
|
12
|
+
}
|
|
13
|
+
export type SerializedChatVectorDBQAChain = {
|
|
14
|
+
_type: "chat-vector-db";
|
|
15
|
+
k: number;
|
|
16
|
+
combine_documents_chain: SerializedStuffDocumentsChain;
|
|
17
|
+
combine_documents_chain_path?: string;
|
|
18
|
+
question_generator: SerializedLLMChain;
|
|
19
|
+
};
|
|
20
|
+
export declare class ChatVectorDBQAChain extends BaseChain implements ChatVectorDBQAChainInput {
|
|
21
|
+
k: number;
|
|
22
|
+
inputKey: string;
|
|
23
|
+
chatHistoryKey: string;
|
|
24
|
+
outputKey: string;
|
|
25
|
+
vectorstore: VectorStore;
|
|
26
|
+
combineDocumentsChain: StuffDocumentsChain;
|
|
27
|
+
questionGeneratorChain: LLMChain;
|
|
28
|
+
constructor(fields: {
|
|
29
|
+
vectorstore: VectorStore;
|
|
30
|
+
combineDocumentsChain: StuffDocumentsChain;
|
|
31
|
+
questionGeneratorChain: LLMChain;
|
|
32
|
+
inputKey?: string;
|
|
33
|
+
outputKey?: string;
|
|
34
|
+
k?: number;
|
|
35
|
+
});
|
|
36
|
+
_call(values: ChainValues): Promise<ChainValues>;
|
|
37
|
+
_chainType(): "chat-vector-db";
|
|
38
|
+
static deserialize(data: SerializedChatVectorDBQAChain, values: LoadValues): Promise<ChatVectorDBQAChain>;
|
|
39
|
+
serialize(): SerializedChatVectorDBQAChain;
|
|
40
|
+
static fromLLM(llm: BaseLLM, vectorstore: VectorStore): ChatVectorDBQAChain;
|
|
41
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { BaseChain, StuffDocumentsChain, loadQAChain, LLMChain, } from "./index";
|
|
2
|
+
import { PromptTemplate } from "../prompt";
|
|
3
|
+
import { resolveConfigFromFile } from "../util";
|
|
4
|
+
const question_generator_template = `Given the following conversation and a follow up question, rephrase the follow up question to be a standalone question.
|
|
5
|
+
|
|
6
|
+
Chat History:
|
|
7
|
+
{chat_history}
|
|
8
|
+
Follow Up Input: {question}
|
|
9
|
+
Standalone question:`;
|
|
10
|
+
const question_generator_prompt = PromptTemplate.fromTemplate(question_generator_template);
|
|
11
|
+
const qa_template = `Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.
|
|
12
|
+
|
|
13
|
+
{context}
|
|
14
|
+
|
|
15
|
+
Question: {question}
|
|
16
|
+
Helpful Answer:`;
|
|
17
|
+
const qa_prompt = PromptTemplate.fromTemplate(qa_template);
|
|
18
|
+
export class ChatVectorDBQAChain extends BaseChain {
|
|
19
|
+
constructor(fields) {
|
|
20
|
+
var _a, _b, _c;
|
|
21
|
+
super();
|
|
22
|
+
Object.defineProperty(this, "k", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: 4
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(this, "inputKey", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: "question"
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(this, "chatHistoryKey", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true,
|
|
38
|
+
value: "chat_history"
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(this, "outputKey", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true,
|
|
44
|
+
value: "result"
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(this, "vectorstore", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: void 0
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(this, "combineDocumentsChain", {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
configurable: true,
|
|
55
|
+
writable: true,
|
|
56
|
+
value: void 0
|
|
57
|
+
});
|
|
58
|
+
Object.defineProperty(this, "questionGeneratorChain", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: true,
|
|
61
|
+
writable: true,
|
|
62
|
+
value: void 0
|
|
63
|
+
});
|
|
64
|
+
this.vectorstore = fields.vectorstore;
|
|
65
|
+
this.combineDocumentsChain = fields.combineDocumentsChain;
|
|
66
|
+
this.questionGeneratorChain = fields.questionGeneratorChain;
|
|
67
|
+
this.inputKey = (_a = fields.inputKey) !== null && _a !== void 0 ? _a : this.inputKey;
|
|
68
|
+
this.outputKey = (_b = fields.outputKey) !== null && _b !== void 0 ? _b : this.outputKey;
|
|
69
|
+
this.k = (_c = fields.k) !== null && _c !== void 0 ? _c : this.k;
|
|
70
|
+
}
|
|
71
|
+
async _call(values) {
|
|
72
|
+
if (!(this.inputKey in values)) {
|
|
73
|
+
throw new Error(`Question key ${this.inputKey} not found.`);
|
|
74
|
+
}
|
|
75
|
+
if (!(this.chatHistoryKey in values)) {
|
|
76
|
+
throw new Error(`chat history key ${this.inputKey} not found.`);
|
|
77
|
+
}
|
|
78
|
+
const question = values[this.inputKey];
|
|
79
|
+
const chatHistory = values[this.chatHistoryKey];
|
|
80
|
+
let newQuestion = question;
|
|
81
|
+
if (chatHistory.length > 0) {
|
|
82
|
+
const result = await this.questionGeneratorChain.call({ question, chat_history: chatHistory });
|
|
83
|
+
const keys = Object.keys(result);
|
|
84
|
+
if (keys.length === 1) {
|
|
85
|
+
newQuestion = result[keys[0]];
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
throw new Error("Return from llm chain has multiple values, only single values supported.");
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const docs = await this.vectorstore.similaritySearch(newQuestion, this.k);
|
|
92
|
+
const inputs = { question, input_documents: docs, chat_history: chatHistory };
|
|
93
|
+
const result = await this.combineDocumentsChain.call(inputs);
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
_chainType() {
|
|
97
|
+
return "chat-vector-db";
|
|
98
|
+
}
|
|
99
|
+
static async deserialize(data, values) {
|
|
100
|
+
if (!("vectorstore" in values)) {
|
|
101
|
+
throw new Error(`Need to pass in a vectorstore to deserialize VectorDBQAChain`);
|
|
102
|
+
}
|
|
103
|
+
const { vectorstore } = values;
|
|
104
|
+
const serializedCombineDocumentsChain = resolveConfigFromFile("combine_documents_chain", data);
|
|
105
|
+
const serializedQuestionGeneratorChain = resolveConfigFromFile("question_generator", data);
|
|
106
|
+
return new ChatVectorDBQAChain({
|
|
107
|
+
combineDocumentsChain: await StuffDocumentsChain.deserialize(serializedCombineDocumentsChain),
|
|
108
|
+
questionGeneratorChain: await LLMChain.deserialize(serializedQuestionGeneratorChain),
|
|
109
|
+
k: data.k,
|
|
110
|
+
vectorstore,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
serialize() {
|
|
114
|
+
return {
|
|
115
|
+
_type: this._chainType(),
|
|
116
|
+
combine_documents_chain: this.combineDocumentsChain.serialize(),
|
|
117
|
+
question_generator: this.questionGeneratorChain.serialize(),
|
|
118
|
+
k: this.k,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
static fromLLM(llm, vectorstore) {
|
|
122
|
+
const qaChain = loadQAChain(llm, qa_prompt);
|
|
123
|
+
const questionGeneratorChain = new LLMChain({ prompt: question_generator_prompt, llm });
|
|
124
|
+
const instance = new this({ vectorstore, combineDocumentsChain: qaChain, questionGeneratorChain });
|
|
125
|
+
return instance;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=chat_vector_db_chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat_vector_db_chain.js","sourceRoot":"","sources":["../../../chains/chat_vector_db_chain.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAGT,mBAAmB,EAEnB,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAK3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIlD,MAAM,2BAA2B,GAAG;;;;;qBAKf,CAAC;AACtB,MAAM,yBAAyB,GAAG,cAAc,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;AAE3F,MAAM,WAAW,GAAG;;;;;gBAKJ,CAAC;AACjB,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAoBzD,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAehD,YAAY,MAOX;;QACC,KAAK,EAAE,CAAC;QAtBV;;;;mBAAI,CAAC;WAAC;QAEN;;;;mBAAW,UAAU;WAAC;QAEtB;;;;mBAAiB,cAAc;WAAC;QAEhC;;;;mBAAY,QAAQ;WAAC;QAErB;;;;;WAAyB;QAEzB;;;;;WAA2C;QAE3C;;;;;WAAiC;QAW/B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC1D,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,CAAC,GAAG,MAAA,MAAM,CAAC,CAAC,mCAAI,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAC;SAC7D;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAC;SACjE;QACD,MAAM,QAAQ,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAW,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,WAAW,GAAG,QAAQ,CAAC;QAC3B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAC,CAAC,CAAC;YAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACjC;iBAAM;gBACH,MAAM,IAAI,KAAK,CACX,0EAA0E,CAC7E,CAAC;aAEL;SACF;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,OAAO,gBAAyB,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,IAAmC,EACnC,MAAkB;QAElB,IAAI,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;SACH;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAC/B,MAAM,+BAA+B,GAAG,qBAAqB,CAG3D,yBAAyB,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,gCAAgC,GAAG,qBAAqB,CAG5D,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,IAAI,mBAAmB,CAAC;YAC7B,qBAAqB,EAAE,MAAM,mBAAmB,CAAC,WAAW,CAC1D,+BAA+B,CAChC;YACD,sBAAsB,EAAE,MAAM,QAAQ,CAAC,WAAW,CAChD,gCAAgC,CACjC;YACD,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACxB,uBAAuB,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE;YAC/D,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE;YAC3D,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAY,EAAE,WAAwB;QACnD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,MAAM,sBAAsB,GAAG,IAAI,QAAQ,CAAC,EAAC,MAAM,EAAE,yBAAyB,EAAE,GAAG,EAAC,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,EAAE,sBAAsB,EAAC,CAAC,CAAC;QAClG,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BaseChain, ChainValues, LLMChain, SerializedLLMChain } from "./index";
|
|
2
|
+
export interface StuffDocumentsChainInput {
|
|
3
|
+
/** LLM Wrapper to use after formatting documents */
|
|
4
|
+
llmChain: LLMChain;
|
|
5
|
+
inputKey: string;
|
|
6
|
+
outputKey: string;
|
|
7
|
+
/** Variable name in the LLM chain to put the documents in */
|
|
8
|
+
documentVariableName: string;
|
|
9
|
+
}
|
|
10
|
+
export type SerializedStuffDocumentsChain = {
|
|
11
|
+
_type: "stuff_documents_chain";
|
|
12
|
+
llm_chain?: SerializedLLMChain;
|
|
13
|
+
llm_chain_path?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Chain that combines documents by stuffing into context.
|
|
17
|
+
* @augments BaseChain
|
|
18
|
+
* @augments StuffDocumentsChainInput
|
|
19
|
+
*/
|
|
20
|
+
export declare class StuffDocumentsChain extends BaseChain implements StuffDocumentsChainInput {
|
|
21
|
+
llmChain: LLMChain;
|
|
22
|
+
inputKey: string;
|
|
23
|
+
outputKey: string;
|
|
24
|
+
documentVariableName: string;
|
|
25
|
+
constructor(fields: {
|
|
26
|
+
llmChain: LLMChain;
|
|
27
|
+
inputKey?: string;
|
|
28
|
+
outputKey?: string;
|
|
29
|
+
documentVariableName?: string;
|
|
30
|
+
});
|
|
31
|
+
_call(values: ChainValues): Promise<ChainValues>;
|
|
32
|
+
_chainType(): "stuff_documents_chain";
|
|
33
|
+
static deserialize(data: SerializedStuffDocumentsChain): Promise<StuffDocumentsChain>;
|
|
34
|
+
serialize(): SerializedStuffDocumentsChain;
|
|
35
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { BaseChain, LLMChain } from "./index";
|
|
2
|
+
import { resolveConfigFromFile } from "../util";
|
|
3
|
+
/**
|
|
4
|
+
* Chain that combines documents by stuffing into context.
|
|
5
|
+
* @augments BaseChain
|
|
6
|
+
* @augments StuffDocumentsChainInput
|
|
7
|
+
*/
|
|
8
|
+
export class StuffDocumentsChain extends BaseChain {
|
|
9
|
+
constructor(fields) {
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
super();
|
|
12
|
+
Object.defineProperty(this, "llmChain", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
writable: true,
|
|
16
|
+
value: void 0
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(this, "inputKey", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: "input_documents"
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(this, "outputKey", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true,
|
|
27
|
+
writable: true,
|
|
28
|
+
value: "output_text"
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(this, "documentVariableName", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
configurable: true,
|
|
33
|
+
writable: true,
|
|
34
|
+
value: "context"
|
|
35
|
+
});
|
|
36
|
+
this.llmChain = fields.llmChain;
|
|
37
|
+
this.documentVariableName =
|
|
38
|
+
(_a = fields.documentVariableName) !== null && _a !== void 0 ? _a : this.documentVariableName;
|
|
39
|
+
this.inputKey = (_b = fields.inputKey) !== null && _b !== void 0 ? _b : this.inputKey;
|
|
40
|
+
this.outputKey = (_c = fields.outputKey) !== null && _c !== void 0 ? _c : this.outputKey;
|
|
41
|
+
}
|
|
42
|
+
async _call(values) {
|
|
43
|
+
if (!(this.inputKey in values)) {
|
|
44
|
+
throw new Error(`Document key ${this.inputKey} not found.`);
|
|
45
|
+
}
|
|
46
|
+
const { [this.inputKey]: docs, ...rest } = values;
|
|
47
|
+
const texts = docs.map(({ pageContent }) => pageContent);
|
|
48
|
+
const text = texts.join("\n\n");
|
|
49
|
+
const result = await this.llmChain.call({
|
|
50
|
+
...rest,
|
|
51
|
+
[this.documentVariableName]: text,
|
|
52
|
+
});
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
_chainType() {
|
|
56
|
+
return "stuff_documents_chain";
|
|
57
|
+
}
|
|
58
|
+
static async deserialize(data) {
|
|
59
|
+
const SerializedLLMChain = resolveConfigFromFile("llm_chain", data);
|
|
60
|
+
return new StuffDocumentsChain({
|
|
61
|
+
llmChain: await LLMChain.deserialize(SerializedLLMChain),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
serialize() {
|
|
65
|
+
return {
|
|
66
|
+
_type: this._chainType(),
|
|
67
|
+
llm_chain: this.llmChain.serialize(),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=combine_docs_chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combine_docs_chain.js","sourceRoot":"","sources":["../../../chains/combine_docs_chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,QAAQ,EAAsB,MAAM,SAAS,CAAC;AAI/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAiBhD;;;;GAIG;AACH,MAAM,OAAO,mBACX,SAAQ,SAAS;IAWjB,YAAY,MAKX;;QACC,KAAK,EAAE,CAAC;QAdV;;;;;WAAmB;QAEnB;;;;mBAAW,iBAAiB;WAAC;QAE7B;;;;mBAAY,aAAa;WAAC;QAE1B;;;;mBAAuB,SAAS;WAAC;QAS/B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,oBAAoB;YACvB,MAAA,MAAM,CAAC,oBAAoB,mCAAI,IAAI,CAAC,oBAAoB,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAC;SAC7D;QACD,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAClD,MAAM,KAAK,GAAI,IAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtC,GAAG,IAAI;YACP,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI;SAClC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,OAAO,uBAAgC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAmC;QAC1D,MAAM,kBAAkB,GAAG,qBAAqB,CAG9C,WAAW,EAAE,IAAI,CAAC,CAAC;QAErB,OAAO,IAAI,mBAAmB,CAAC;YAC7B,QAAQ,EAAE,MAAM,QAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC;SACzD,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;SACrC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LLMChain } from "./llm_chain";
|
|
2
|
+
import { BaseLLM } from "../llms";
|
|
3
|
+
import { BasePromptTemplate } from "../prompt";
|
|
4
|
+
import { BaseMemory } from "../memory";
|
|
5
|
+
export declare class ConversationChain extends LLMChain {
|
|
6
|
+
constructor(fields: {
|
|
7
|
+
llm: BaseLLM;
|
|
8
|
+
prompt?: BasePromptTemplate;
|
|
9
|
+
outputKey?: string;
|
|
10
|
+
memory?: BaseMemory;
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LLMChain } from "./llm_chain";
|
|
2
|
+
import { PromptTemplate } from "../prompt";
|
|
3
|
+
import { BufferMemory } from "../memory";
|
|
4
|
+
const defaultTemplate = `The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
|
|
5
|
+
|
|
6
|
+
Current conversation:
|
|
7
|
+
{history}
|
|
8
|
+
Human: {input}
|
|
9
|
+
AI:`;
|
|
10
|
+
const defaultPrompt = new PromptTemplate({
|
|
11
|
+
template: defaultTemplate,
|
|
12
|
+
inputVariables: ["history", "input"],
|
|
13
|
+
});
|
|
14
|
+
export class ConversationChain extends LLMChain {
|
|
15
|
+
constructor(fields) {
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
super({
|
|
18
|
+
prompt: (_a = fields.prompt) !== null && _a !== void 0 ? _a : defaultPrompt,
|
|
19
|
+
llm: fields.llm,
|
|
20
|
+
outputKey: (_b = fields.outputKey) !== null && _b !== void 0 ? _b : "response",
|
|
21
|
+
});
|
|
22
|
+
this.memory = (_c = fields.memory) !== null && _c !== void 0 ? _c : new BufferMemory();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../../chains/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAsB,cAAc,EAAE,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAc,YAAY,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,eAAe,GAAG;;;;;IAKpB,CAAC;AAEL,MAAM,aAAa,GAAG,IAAI,cAAc,CAAC;IACvC,QAAQ,EAAE,eAAe;IACzB,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,MAKX;;QACC,KAAK,CAAC;YACJ,MAAM,EAAE,MAAA,MAAM,CAAC,MAAM,mCAAI,aAAa;YACtC,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,SAAS,EAAE,MAAA,MAAM,CAAC,SAAS,mCAAI,UAAU;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,IAAI,YAAY,EAAE,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
export { BaseChain, ChainValues } from "./base";
|
|
2
|
-
export { SerializedLLMChain, LLMChain } from "./llm_chain";
|
|
2
|
+
export { SerializedLLMChain, LLMChain, ConversationChain } from "./llm_chain";
|
|
3
|
+
export { SerializedStuffDocumentsChain, StuffDocumentsChain, } from "./combine_docs_chain";
|
|
4
|
+
export { ChatVectorDBQAChain, SerializedChatVectorDBQAChain } from "./chat_vector_db_chain";
|
|
5
|
+
export { VectorDBQAChain, SerializedVectorDBQAChain } from "./vector_db_qa";
|
|
3
6
|
export { loadChain } from "./load";
|
|
7
|
+
export { loadQAChain } from "./question_answering/load";
|
package/dist/esm/chains/index.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export { BaseChain } from "./base";
|
|
2
|
-
export { LLMChain } from "./llm_chain";
|
|
2
|
+
export { LLMChain, ConversationChain } from "./llm_chain";
|
|
3
|
+
export { StuffDocumentsChain, } from "./combine_docs_chain";
|
|
4
|
+
export { ChatVectorDBQAChain } from "./chat_vector_db_chain";
|
|
5
|
+
export { VectorDBQAChain } from "./vector_db_qa";
|
|
3
6
|
export { loadChain } from "./load";
|
|
7
|
+
export { loadQAChain } from "./question_answering/load";
|
|
4
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAsB,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAsB,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAEL,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAgC,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAA6B,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { BaseChain, ChainValues } from "./index";
|
|
2
2
|
import { BaseLLM, SerializedLLM } from "../llms";
|
|
3
|
+
import { BaseMemory } from "../memory";
|
|
3
4
|
import { BasePromptTemplate, SerializedBasePromptTemplate } from "../prompt";
|
|
4
5
|
export interface LLMChainInput {
|
|
6
|
+
/** Prompt object to use */
|
|
5
7
|
prompt: BasePromptTemplate;
|
|
8
|
+
/** LLM Wrapper to use */
|
|
6
9
|
llm: BaseLLM;
|
|
10
|
+
/** @ignore */
|
|
7
11
|
outputKey: string;
|
|
8
12
|
}
|
|
9
13
|
export type SerializedLLMChain = {
|
|
@@ -13,6 +17,18 @@ export type SerializedLLMChain = {
|
|
|
13
17
|
prompt?: SerializedBasePromptTemplate;
|
|
14
18
|
prompt_path?: string;
|
|
15
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Chain to run queries against LLMs.
|
|
22
|
+
* @augments BaseChain
|
|
23
|
+
* @augments LLMChainInput
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { LLMChain, OpenAI, PromptTemplate } from "langchain";
|
|
28
|
+
* const prompt = PromptTemplate.fromTemplate("Tell me a {adjective} joke");
|
|
29
|
+
* const llm = LLMChain({ llm: new OpenAI(), prompt });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
16
32
|
export declare class LLMChain extends BaseChain implements LLMChainInput {
|
|
17
33
|
prompt: BasePromptTemplate;
|
|
18
34
|
llm: BaseLLM;
|
|
@@ -23,8 +39,27 @@ export declare class LLMChain extends BaseChain implements LLMChainInput {
|
|
|
23
39
|
outputKey?: string;
|
|
24
40
|
});
|
|
25
41
|
_call(values: ChainValues): Promise<ChainValues>;
|
|
42
|
+
/**
|
|
43
|
+
* Format prompt with values and pass to LLM
|
|
44
|
+
*
|
|
45
|
+
* @param values - keys to pass to prompt template
|
|
46
|
+
* @returns Completion from LLM.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* llm.predict({ adjective: "funny" })
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
26
53
|
predict(values: ChainValues): Promise<string>;
|
|
27
54
|
_chainType(): "llm_chain";
|
|
28
55
|
static deserialize(data: SerializedLLMChain): Promise<LLMChain>;
|
|
29
56
|
serialize(): SerializedLLMChain;
|
|
30
57
|
}
|
|
58
|
+
export declare class ConversationChain extends LLMChain {
|
|
59
|
+
constructor(fields: {
|
|
60
|
+
llm: BaseLLM;
|
|
61
|
+
prompt?: BasePromptTemplate;
|
|
62
|
+
outputKey?: string;
|
|
63
|
+
memory?: BaseMemory;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { BaseChain } from "./index";
|
|
11
2
|
import { BaseLLM } from "../llms";
|
|
12
|
-
import {
|
|
3
|
+
import { BufferMemory } from "../memory";
|
|
4
|
+
import { BasePromptTemplate, PromptTemplate } from "../prompt";
|
|
13
5
|
import { resolveConfigFromFile } from "../util";
|
|
6
|
+
/**
|
|
7
|
+
* Chain to run queries against LLMs.
|
|
8
|
+
* @augments BaseChain
|
|
9
|
+
* @augments LLMChainInput
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { LLMChain, OpenAI, PromptTemplate } from "langchain";
|
|
14
|
+
* const prompt = PromptTemplate.fromTemplate("Tell me a {adjective} joke");
|
|
15
|
+
* const llm = LLMChain({ llm: new OpenAI(), prompt });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
14
18
|
export class LLMChain extends BaseChain {
|
|
15
19
|
constructor(fields) {
|
|
16
20
|
var _a;
|
|
@@ -37,35 +41,40 @@ export class LLMChain extends BaseChain {
|
|
|
37
41
|
this.llm = fields.llm;
|
|
38
42
|
this.outputKey = (_a = fields.outputKey) !== null && _a !== void 0 ? _a : this.outputKey;
|
|
39
43
|
}
|
|
40
|
-
_call(values) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return result;
|
|
50
|
-
});
|
|
44
|
+
async _call(values) {
|
|
45
|
+
let stop;
|
|
46
|
+
if ("stop" in values && Array.isArray(values.stop)) {
|
|
47
|
+
stop = values.stop;
|
|
48
|
+
}
|
|
49
|
+
const formattedString = this.prompt.format(values);
|
|
50
|
+
const llmResult = await this.llm.call(formattedString, stop);
|
|
51
|
+
const result = { [this.outputKey]: llmResult };
|
|
52
|
+
return result;
|
|
51
53
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Format prompt with values and pass to LLM
|
|
56
|
+
*
|
|
57
|
+
* @param values - keys to pass to prompt template
|
|
58
|
+
* @returns Completion from LLM.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* llm.predict({ adjective: "funny" })
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
async predict(values) {
|
|
66
|
+
const output = await this.call(values);
|
|
67
|
+
return output[this.outputKey];
|
|
57
68
|
}
|
|
58
69
|
_chainType() {
|
|
59
70
|
return "llm_chain";
|
|
60
71
|
}
|
|
61
|
-
static deserialize(data) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
prompt: yield BasePromptTemplate.deserialize(serializedPrompt),
|
|
68
|
-
});
|
|
72
|
+
static async deserialize(data) {
|
|
73
|
+
const serializedLLM = resolveConfigFromFile("llm", data);
|
|
74
|
+
const serializedPrompt = resolveConfigFromFile("prompt", data);
|
|
75
|
+
return new LLMChain({
|
|
76
|
+
llm: await BaseLLM.deserialize(serializedLLM),
|
|
77
|
+
prompt: await BasePromptTemplate.deserialize(serializedPrompt),
|
|
69
78
|
});
|
|
70
79
|
}
|
|
71
80
|
serialize() {
|
|
@@ -76,4 +85,26 @@ export class LLMChain extends BaseChain {
|
|
|
76
85
|
};
|
|
77
86
|
}
|
|
78
87
|
}
|
|
88
|
+
// eslint-disable-next-line max-len
|
|
89
|
+
const defaultTemplate = `The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
|
|
90
|
+
|
|
91
|
+
Current conversation:
|
|
92
|
+
{history}
|
|
93
|
+
Human: {input}
|
|
94
|
+
AI:`;
|
|
95
|
+
const defaultPrompt = new PromptTemplate({
|
|
96
|
+
template: defaultTemplate,
|
|
97
|
+
inputVariables: ["history", "input"],
|
|
98
|
+
});
|
|
99
|
+
export class ConversationChain extends LLMChain {
|
|
100
|
+
constructor(fields) {
|
|
101
|
+
var _a, _b, _c;
|
|
102
|
+
super({
|
|
103
|
+
prompt: (_a = fields.prompt) !== null && _a !== void 0 ? _a : defaultPrompt,
|
|
104
|
+
llm: fields.llm,
|
|
105
|
+
outputKey: (_b = fields.outputKey) !== null && _b !== void 0 ? _b : "response",
|
|
106
|
+
});
|
|
107
|
+
this.memory = (_c = fields.memory) !== null && _c !== void 0 ? _c : new BufferMemory();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
79
110
|
//# sourceMappingURL=llm_chain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm_chain.js","sourceRoot":"","sources":["../../../chains/llm_chain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm_chain.js","sourceRoot":"","sources":["../../../chains/llm_chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,21 @@
|
|
|
1
1
|
import { BaseChain } from ".";
|
|
2
|
-
export
|
|
2
|
+
export type LoadValues = Record<string, any>;
|
|
3
|
+
/**
|
|
4
|
+
* Load a chain from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* Loading from LangchainHub:
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { loadChain } from "langchain/chains";
|
|
10
|
+
* const chain = await loadChain("lc://chains/hello-world/chain.json");
|
|
11
|
+
* const res = await chain.call({ topic: "my favorite color" });
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* Loading from local filesystem:
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { loadChain } from "langchain/chains";
|
|
18
|
+
* const chain = await loadChain("/path/to/chain.json");
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare const loadChain: (uri: string, values?: LoadValues) => Promise<BaseChain>;
|
package/dist/esm/chains/load.js
CHANGED
|
@@ -1,25 +1,33 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { BaseChain } from ".";
|
|
11
2
|
import { loadFromHub } from "../util/hub";
|
|
12
3
|
import { parseFileConfig } from "../util";
|
|
13
|
-
const loadChainFromFile = (file
|
|
4
|
+
const loadChainFromFile = async (file, values = {}) => {
|
|
14
5
|
const serialized = parseFileConfig(file);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
6
|
+
return BaseChain.deserialize(serialized, values);
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Load a chain from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* Loading from LangchainHub:
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { loadChain } from "langchain/chains";
|
|
15
|
+
* const chain = await loadChain("lc://chains/hello-world/chain.json");
|
|
16
|
+
* const res = await chain.call({ topic: "my favorite color" });
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* Loading from local filesystem:
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { loadChain } from "langchain/chains";
|
|
23
|
+
* const chain = await loadChain("/path/to/chain.json");
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export const loadChain = async (uri, values = {}) => {
|
|
27
|
+
const hubResult = await loadFromHub(uri, (uri) => loadChainFromFile(uri, values), "chains", new Set(["json", "yaml"]), values);
|
|
20
28
|
if (hubResult) {
|
|
21
29
|
return hubResult;
|
|
22
30
|
}
|
|
23
|
-
return loadChainFromFile(uri);
|
|
24
|
-
}
|
|
31
|
+
return loadChainFromFile(uri, values);
|
|
32
|
+
};
|
|
25
33
|
//# sourceMappingURL=load.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../chains/load.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../chains/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK1C,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAE,SAAqB,EAAE,EAAE,EAAE;IACxE,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,GAAW,EACX,SAAqB,EAAE,EACH,EAAE;IACtB,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,GAAG,EACH,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,EACvC,QAAQ,EACR,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzB,MAAM,CACP,CAAC;IACF,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC,CAAC"}
|