langchain 0.0.4 → 0.0.6
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/README.md +33 -0
- package/agents.d.ts +1 -0
- package/agents.js +1 -0
- package/chains.d.ts +1 -0
- package/chains.js +1 -0
- package/dist/agents/agent.d.ts +96 -0
- package/dist/agents/agent.js +151 -0
- package/dist/agents/agent.js.map +1 -0
- package/dist/{esm/agents → agents}/executor.d.ts +5 -0
- package/dist/agents/executor.js +99 -0
- package/dist/agents/executor.js.map +1 -0
- package/dist/{cjs/agents → agents}/helpers.d.ts +0 -0
- package/dist/agents/helpers.js +21 -0
- package/dist/agents/helpers.js.map +1 -0
- package/dist/{cjs/agents → agents}/index.d.ts +1 -0
- package/dist/{cjs/agents → agents}/index.js +5 -1
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/initialize.d.ts +4 -0
- package/dist/agents/initialize.js +19 -0
- package/dist/agents/initialize.js.map +1 -0
- package/dist/{cjs/agents → agents}/load.d.ts +0 -0
- package/dist/agents/load.js +19 -0
- package/dist/agents/load.js.map +1 -0
- package/dist/{esm/agents → agents}/mrkl/index.d.ts +18 -1
- package/dist/{cjs/agents → agents}/mrkl/index.js +26 -34
- package/dist/agents/mrkl/index.js.map +1 -0
- package/dist/{cjs/agents → agents}/mrkl/prompt.d.ts +0 -0
- package/dist/{cjs/agents → agents}/mrkl/prompt.js +0 -1
- package/dist/agents/mrkl/prompt.js.map +1 -0
- package/dist/{cjs/agents → agents}/tests/agent.test.d.ts +0 -0
- package/dist/agents/tests/agent.test.js +35 -0
- package/dist/agents/tests/agent.test.js.map +1 -0
- package/dist/{cjs/chains/tests/llm_chain.test.d.ts → agents/tests/calculator.test.d.ts} +0 -0
- package/dist/agents/tests/calculator.test.js +30 -0
- package/dist/agents/tests/calculator.test.js.map +1 -0
- package/dist/agents/tools/base.d.ts +6 -0
- package/dist/agents/tools/base.js +15 -0
- package/dist/agents/tools/base.js.map +1 -0
- package/dist/agents/tools/calculator.d.ts +6 -0
- package/dist/agents/tools/calculator.js +33 -0
- package/dist/agents/tools/calculator.js.map +1 -0
- package/dist/agents/tools/index.d.ts +3 -0
- package/dist/agents/tools/index.js +10 -0
- package/dist/agents/tools/index.js.map +1 -0
- package/dist/{cjs/agents → agents}/tools/llm-math.d.ts +0 -0
- package/dist/{cjs/agents → agents}/tools/llm-math.js +0 -0
- package/dist/{cjs/agents → agents}/tools/llm-math.js.map +1 -1
- package/dist/agents/tools/serpapi.d.ts +18 -0
- package/dist/agents/tools/serpapi.js +93 -0
- package/dist/agents/tools/serpapi.js.map +1 -0
- package/dist/{cjs/agents → agents}/types.d.ts +0 -0
- package/dist/{cjs/agents → agents}/types.js +0 -0
- package/dist/{cjs/agents → agents}/types.js.map +1 -1
- package/dist/{cjs/cache.d.ts → cache.d.ts} +0 -0
- package/dist/{cjs/cache.js → cache.js} +0 -0
- package/dist/cache.js.map +1 -0
- package/dist/chains/base.d.ts +42 -0
- package/dist/chains/base.js +67 -0
- package/dist/chains/base.js.map +1 -0
- package/dist/chains/chat_vector_db_chain.d.ts +41 -0
- package/dist/chains/chat_vector_db_chain.js +146 -0
- package/dist/chains/chat_vector_db_chain.js.map +1 -0
- package/dist/chains/combine_docs_chain.d.ts +35 -0
- package/dist/chains/combine_docs_chain.js +75 -0
- package/dist/chains/combine_docs_chain.js.map +1 -0
- package/dist/chains/conversation.d.ts +12 -0
- package/dist/chains/conversation.js +29 -0
- package/dist/chains/conversation.js.map +1 -0
- package/dist/chains/index.d.ts +7 -0
- package/dist/chains/index.js +19 -0
- package/dist/chains/index.js.map +1 -0
- package/dist/{cjs/chains → chains}/llm_chain.d.ts +36 -1
- package/dist/chains/llm_chain.js +115 -0
- package/dist/chains/llm_chain.js.map +1 -0
- package/dist/chains/load.d.ts +21 -0
- package/dist/chains/load.js +37 -0
- package/dist/chains/load.js.map +1 -0
- package/dist/chains/question_answering/load.d.ts +3 -0
- package/dist/chains/question_answering/load.js +13 -0
- package/dist/chains/question_answering/load.js.map +1 -0
- package/dist/chains/question_answering/stuff_prompts.d.ts +2 -0
- package/dist/chains/question_answering/stuff_prompts.js +10 -0
- package/dist/chains/question_answering/stuff_prompts.js.map +1 -0
- package/dist/{cjs/prompt → chains/question_answering}/tests/load.test.d.ts +0 -0
- package/dist/chains/question_answering/tests/load.test.js +18 -0
- package/dist/chains/question_answering/tests/load.test.js.map +1 -0
- package/dist/{cjs/llms/tests/openai.test.d.ts → chains/tests/chat_vector_db_qa_chain.test.d.ts} +0 -0
- package/dist/chains/tests/chat_vector_db_qa_chain.test.js +35 -0
- package/dist/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
- package/dist/{cjs/prompt/tests/template.test.d.ts → chains/tests/combine_docs_chain.test.d.ts} +0 -0
- package/dist/chains/tests/combine_docs_chain.test.js +39 -0
- package/dist/chains/tests/combine_docs_chain.test.js.map +1 -0
- package/dist/{esm/chains → chains}/tests/llm_chain.test.d.ts +0 -0
- package/dist/chains/tests/llm_chain.test.js +29 -0
- package/dist/chains/tests/llm_chain.test.js.map +1 -0
- package/dist/{esm/agents/tests/agent.test.d.ts → chains/tests/vector_db_qa_chain.test.d.ts} +0 -0
- package/dist/chains/tests/vector_db_qa_chain.test.js +46 -0
- package/dist/chains/tests/vector_db_qa_chain.test.js.map +1 -0
- package/dist/chains/vector_db_qa.d.ts +36 -0
- package/dist/chains/vector_db_qa.js +85 -0
- package/dist/chains/vector_db_qa.js.map +1 -0
- package/dist/document.d.ts +13 -0
- package/dist/document.js +28 -0
- package/dist/document.js.map +1 -0
- package/dist/embeddings/base.d.ts +4 -0
- package/dist/embeddings/base.js +7 -0
- package/dist/embeddings/base.js.map +1 -0
- package/dist/embeddings/index.d.ts +1 -0
- package/dist/embeddings/index.js +6 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/openai.d.ts +20 -0
- package/dist/embeddings/openai.js +86 -0
- package/dist/embeddings/openai.js.map +1 -0
- package/dist/{esm/llms → embeddings}/tests/openai.test.d.ts +0 -0
- package/dist/embeddings/tests/openai.test.js +17 -0
- package/dist/embeddings/tests/openai.test.js.map +1 -0
- package/dist/{cjs/index.d.ts → index.d.ts} +1 -1
- package/dist/{cjs/index.js → index.js} +4 -4
- package/dist/index.js.map +1 -0
- package/dist/llms/base.d.ts +64 -0
- package/dist/llms/base.js +164 -0
- package/dist/llms/base.js.map +1 -0
- package/dist/llms/cohere.d.ts +24 -0
- package/dist/llms/cohere.js +55 -0
- package/dist/llms/cohere.js.map +1 -0
- package/dist/{esm/llms → llms}/index.d.ts +20 -0
- package/dist/{cjs/llms → llms}/index.js +3 -1
- package/dist/llms/index.js.map +1 -0
- package/dist/llms/load.d.ts +11 -0
- package/dist/llms/load.js +17 -0
- package/dist/llms/load.js.map +1 -0
- package/dist/llms/openai.d.ts +125 -0
- package/dist/{cjs/llms → llms}/openai.js +96 -58
- package/dist/llms/openai.js.map +1 -0
- package/dist/{esm/prompt/tests/load.test.d.ts → llms/tests/cohere.test.d.ts} +0 -0
- package/dist/llms/tests/cohere.test.js +10 -0
- package/dist/llms/tests/cohere.test.js.map +1 -0
- package/dist/{esm/prompt/tests/template.test.d.ts → llms/tests/openai.test.d.ts} +0 -0
- package/dist/llms/tests/openai.test.js +10 -0
- package/dist/llms/tests/openai.test.js.map +1 -0
- package/dist/memory/base.d.ts +7 -0
- package/dist/memory/base.js +7 -0
- package/dist/memory/base.js.map +1 -0
- package/dist/memory/buffer_memory.d.ts +15 -0
- package/dist/memory/buffer_memory.js +57 -0
- package/dist/memory/buffer_memory.js.map +1 -0
- package/dist/memory/index.d.ts +2 -0
- package/dist/memory/index.js +8 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/tests/buffer_memory.test.d.ts +1 -0
- package/dist/memory/tests/buffer_memory.test.js +17 -0
- package/dist/memory/tests/buffer_memory.test.js.map +1 -0
- package/dist/prompts/base.d.ts +58 -0
- package/dist/prompts/base.js +53 -0
- package/dist/prompts/base.js.map +1 -0
- package/dist/{esm/prompt → prompts}/few_shot.d.ts +36 -1
- package/dist/{cjs/prompt → prompts}/few_shot.js +27 -33
- package/dist/prompts/few_shot.js.map +1 -0
- package/dist/{cjs/prompt → prompts}/index.d.ts +1 -0
- package/dist/{cjs/prompt → prompts}/index.js +3 -1
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/load.d.ts +19 -0
- package/dist/prompts/load.js +33 -0
- package/dist/prompts/load.js.map +1 -0
- package/dist/{cjs/prompt → prompts}/parser.d.ts +30 -0
- package/dist/{cjs/prompt → prompts}/parser.js +21 -0
- package/dist/prompts/parser.js.map +1 -0
- package/dist/prompts/prompt.d.ts +76 -0
- package/dist/{cjs/prompt → prompts}/prompt.js +38 -18
- package/dist/prompts/prompt.js.map +1 -0
- package/dist/{cjs/prompt → prompts}/template.d.ts +0 -0
- package/dist/{cjs/prompt → prompts}/template.js +0 -0
- package/dist/prompts/template.js.map +1 -0
- package/dist/prompts/tests/load.test.d.ts +1 -0
- package/dist/prompts/tests/load.test.js +21 -0
- package/dist/prompts/tests/load.test.js.map +1 -0
- package/dist/prompts/tests/template.test.d.ts +1 -0
- package/dist/{cjs/prompt → prompts}/tests/template.test.js +0 -0
- package/dist/prompts/tests/template.test.js.map +1 -0
- package/dist/text_splitter.d.ts +32 -0
- package/dist/text_splitter.js +167 -0
- package/dist/text_splitter.js.map +1 -0
- package/dist/util/hub.d.ts +2 -0
- package/dist/{cjs/util → util}/hub.js +5 -14
- package/dist/util/hub.js.map +1 -0
- package/dist/{esm/util → util}/index.d.ts +1 -0
- package/dist/{cjs/util → util}/index.js +13 -25
- package/dist/util/index.js.map +1 -0
- package/dist/vectorstores/base.d.ts +18 -0
- package/dist/vectorstores/base.js +38 -0
- package/dist/vectorstores/base.js.map +1 -0
- package/dist/vectorstores/hnswlib.d.ts +19 -0
- package/dist/vectorstores/hnswlib.js +129 -0
- package/dist/vectorstores/hnswlib.js.map +1 -0
- package/dist/vectorstores/index.d.ts +1 -0
- package/dist/vectorstores/index.js +6 -0
- package/dist/vectorstores/index.js.map +1 -0
- package/dist/vectorstores/tests/hnswlib.test.d.ts +1 -0
- package/dist/vectorstores/tests/hnswlib.test.js +44 -0
- package/dist/vectorstores/tests/hnswlib.test.js.map +1 -0
- package/document.d.ts +1 -0
- package/document.js +1 -0
- package/embeddings.d.ts +1 -0
- package/embeddings.js +1 -0
- package/llms.d.ts +1 -0
- package/llms.js +1 -0
- package/memory.d.ts +1 -0
- package/memory.js +1 -0
- package/package.json +53 -44
- package/prompts.d.ts +1 -0
- package/prompts.js +1 -0
- package/text_splitter.d.ts +1 -0
- package/text_splitter.js +1 -0
- package/tools.d.ts +1 -0
- package/tools.js +1 -0
- package/vectorstores.d.ts +1 -0
- package/vectorstores.js +1 -0
- package/dist/cjs/agents/agent.d.ts +0 -42
- package/dist/cjs/agents/agent.js +0 -129
- package/dist/cjs/agents/agent.js.map +0 -1
- package/dist/cjs/agents/executor.d.ts +0 -27
- package/dist/cjs/agents/executor.js +0 -105
- package/dist/cjs/agents/executor.js.map +0 -1
- package/dist/cjs/agents/helpers.js +0 -30
- package/dist/cjs/agents/helpers.js.map +0 -1
- package/dist/cjs/agents/index.js.map +0 -1
- package/dist/cjs/agents/load.js +0 -28
- package/dist/cjs/agents/load.js.map +0 -1
- package/dist/cjs/agents/mrkl/index.d.ts +0 -33
- package/dist/cjs/agents/mrkl/index.js.map +0 -1
- package/dist/cjs/agents/mrkl/prompt.js.map +0 -1
- package/dist/cjs/agents/tests/agent.test.js +0 -31
- package/dist/cjs/agents/tests/agent.test.js.map +0 -1
- package/dist/cjs/agents/tools/index.d.ts +0 -7
- package/dist/cjs/agents/tools/index.js +0 -6
- package/dist/cjs/agents/tools/index.js.map +0 -1
- package/dist/cjs/agents/tools/serpapi.d.ts +0 -3
- package/dist/cjs/agents/tools/serpapi.js +0 -50
- package/dist/cjs/agents/tools/serpapi.js.map +0 -1
- package/dist/cjs/cache.js.map +0 -1
- package/dist/cjs/chains/base.d.ts +0 -12
- package/dist/cjs/chains/base.js +0 -23
- package/dist/cjs/chains/base.js.map +0 -1
- package/dist/cjs/chains/index.d.ts +0 -3
- package/dist/cjs/chains/index.js +0 -10
- package/dist/cjs/chains/index.js.map +0 -1
- package/dist/cjs/chains/llm_chain.js +0 -83
- package/dist/cjs/chains/llm_chain.js.map +0 -1
- package/dist/cjs/chains/llm_math_chain.d.ts +0 -0
- package/dist/cjs/chains/llm_math_chain.js +0 -129
- package/dist/cjs/chains/llm_math_chain.js.map +0 -1
- package/dist/cjs/chains/load.d.ts +0 -2
- package/dist/cjs/chains/load.js +0 -29
- package/dist/cjs/chains/load.js.map +0 -1
- package/dist/cjs/chains/tests/llm_chain.test.js +0 -32
- package/dist/cjs/chains/tests/llm_chain.test.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/llms/base.d.ts +0 -23
- package/dist/cjs/llms/base.js +0 -159
- package/dist/cjs/llms/base.js.map +0 -1
- package/dist/cjs/llms/index.d.ts +0 -18
- package/dist/cjs/llms/index.js.map +0 -1
- package/dist/cjs/llms/load.d.ts +0 -3
- package/dist/cjs/llms/load.js +0 -9
- package/dist/cjs/llms/load.js.map +0 -1
- package/dist/cjs/llms/openai.d.ts +0 -63
- package/dist/cjs/llms/openai.js.map +0 -1
- package/dist/cjs/llms/tests/openai.test.js +0 -19
- package/dist/cjs/llms/tests/openai.test.js.map +0 -1
- package/dist/cjs/prompt/base.d.ts +0 -19
- package/dist/cjs/prompt/base.js +0 -54
- package/dist/cjs/prompt/base.js.map +0 -1
- package/dist/cjs/prompt/few_shot.d.ts +0 -47
- package/dist/cjs/prompt/few_shot.js.map +0 -1
- package/dist/cjs/prompt/index.js.map +0 -1
- package/dist/cjs/prompt/load.d.ts +0 -2
- package/dist/cjs/prompt/load.js +0 -25
- package/dist/cjs/prompt/load.js.map +0 -1
- package/dist/cjs/prompt/parser.js.map +0 -1
- package/dist/cjs/prompt/prompt.d.ts +0 -28
- package/dist/cjs/prompt/prompt.js.map +0 -1
- package/dist/cjs/prompt/template.js.map +0 -1
- package/dist/cjs/prompt/tests/load.test.js +0 -30
- package/dist/cjs/prompt/tests/load.test.js.map +0 -1
- package/dist/cjs/prompt/tests/template.test.js.map +0 -1
- package/dist/cjs/util/hub.d.ts +0 -1
- package/dist/cjs/util/hub.js.map +0 -1
- package/dist/cjs/util/index.d.ts +0 -12
- package/dist/cjs/util/index.js.map +0 -1
- package/dist/esm/agents/agent.d.ts +0 -42
- package/dist/esm/agents/agent.js +0 -124
- package/dist/esm/agents/agent.js.map +0 -1
- package/dist/esm/agents/executor.js +0 -101
- package/dist/esm/agents/executor.js.map +0 -1
- package/dist/esm/agents/helpers.d.ts +0 -3
- package/dist/esm/agents/helpers.js +0 -26
- package/dist/esm/agents/helpers.js.map +0 -1
- package/dist/esm/agents/index.d.ts +0 -6
- package/dist/esm/agents/index.js +0 -5
- package/dist/esm/agents/index.js.map +0 -1
- package/dist/esm/agents/load.d.ts +0 -6
- package/dist/esm/agents/load.js +0 -24
- package/dist/esm/agents/load.js.map +0 -1
- package/dist/esm/agents/mrkl/index.js +0 -106
- package/dist/esm/agents/mrkl/index.js.map +0 -1
- package/dist/esm/agents/mrkl/prompt.d.ts +0 -3
- package/dist/esm/agents/mrkl/prompt.js +0 -17
- package/dist/esm/agents/mrkl/prompt.js.map +0 -1
- package/dist/esm/agents/tests/agent.test.js +0 -29
- package/dist/esm/agents/tests/agent.test.js.map +0 -1
- package/dist/esm/agents/tools/index.d.ts +0 -7
- package/dist/esm/agents/tools/index.js +0 -2
- package/dist/esm/agents/tools/index.js.map +0 -1
- package/dist/esm/agents/tools/llm-math.d.ts +0 -0
- package/dist/esm/agents/tools/llm-math.js +0 -2
- package/dist/esm/agents/tools/llm-math.js.map +0 -1
- package/dist/esm/agents/tools/serpapi.d.ts +0 -3
- package/dist/esm/agents/tools/serpapi.js +0 -46
- package/dist/esm/agents/tools/serpapi.js.map +0 -1
- package/dist/esm/agents/types.d.ts +0 -25
- package/dist/esm/agents/types.js +0 -2
- package/dist/esm/agents/types.js.map +0 -1
- package/dist/esm/cache.d.ts +0 -11
- package/dist/esm/cache.js +0 -22
- package/dist/esm/cache.js.map +0 -1
- package/dist/esm/chains/base.d.ts +0 -12
- package/dist/esm/chains/base.js +0 -19
- package/dist/esm/chains/base.js.map +0 -1
- package/dist/esm/chains/index.d.ts +0 -3
- package/dist/esm/chains/index.js +0 -4
- package/dist/esm/chains/index.js.map +0 -1
- package/dist/esm/chains/llm_chain.d.ts +0 -30
- package/dist/esm/chains/llm_chain.js +0 -79
- package/dist/esm/chains/llm_chain.js.map +0 -1
- package/dist/esm/chains/llm_math_chain.d.ts +0 -0
- package/dist/esm/chains/llm_math_chain.js +0 -129
- package/dist/esm/chains/llm_math_chain.js.map +0 -1
- package/dist/esm/chains/load.d.ts +0 -2
- package/dist/esm/chains/load.js +0 -25
- package/dist/esm/chains/load.js.map +0 -1
- package/dist/esm/chains/tests/llm_chain.test.js +0 -30
- package/dist/esm/chains/tests/llm_chain.test.js.map +0 -1
- package/dist/esm/index.d.ts +0 -3
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/llms/base.d.ts +0 -23
- package/dist/esm/llms/base.js +0 -154
- package/dist/esm/llms/base.js.map +0 -1
- package/dist/esm/llms/index.js +0 -4
- package/dist/esm/llms/index.js.map +0 -1
- package/dist/esm/llms/load.d.ts +0 -3
- package/dist/esm/llms/load.js +0 -5
- package/dist/esm/llms/load.js.map +0 -1
- package/dist/esm/llms/openai.d.ts +0 -63
- package/dist/esm/llms/openai.js +0 -198
- package/dist/esm/llms/openai.js.map +0 -1
- package/dist/esm/llms/tests/openai.test.js +0 -17
- package/dist/esm/llms/tests/openai.test.js.map +0 -1
- package/dist/esm/prompt/base.d.ts +0 -19
- package/dist/esm/prompt/base.js +0 -50
- package/dist/esm/prompt/base.js.map +0 -1
- package/dist/esm/prompt/few_shot.js +0 -139
- package/dist/esm/prompt/few_shot.js.map +0 -1
- package/dist/esm/prompt/index.d.ts +0 -3
- package/dist/esm/prompt/index.js +0 -4
- package/dist/esm/prompt/index.js.map +0 -1
- package/dist/esm/prompt/load.d.ts +0 -2
- package/dist/esm/prompt/load.js +0 -21
- package/dist/esm/prompt/load.js.map +0 -1
- package/dist/esm/prompt/parser.d.ts +0 -40
- package/dist/esm/prompt/parser.js +0 -86
- package/dist/esm/prompt/parser.js.map +0 -1
- package/dist/esm/prompt/prompt.d.ts +0 -28
- package/dist/esm/prompt/prompt.js +0 -87
- package/dist/esm/prompt/prompt.js.map +0 -1
- package/dist/esm/prompt/template.d.ts +0 -16
- package/dist/esm/prompt/template.js +0 -80
- package/dist/esm/prompt/template.js.map +0 -1
- package/dist/esm/prompt/tests/load.test.js +0 -25
- package/dist/esm/prompt/tests/load.test.js.map +0 -1
- package/dist/esm/prompt/tests/template.test.js +0 -25
- package/dist/esm/prompt/tests/template.test.js.map +0 -1
- package/dist/esm/util/hub.d.ts +0 -1
- package/dist/esm/util/hub.js +0 -43
- package/dist/esm/util/hub.js.map +0 -1
- package/dist/esm/util/index.js +0 -74
- package/dist/esm/util/index.js.map +0 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatVectorDBQAChain = void 0;
|
|
4
|
+
const index_1 = require("./index");
|
|
5
|
+
const prompts_1 = require("../prompts");
|
|
6
|
+
const util_1 = require("../util");
|
|
7
|
+
const question_generator_template = `Given the following conversation and a follow up question, rephrase the follow up question to be a standalone question.
|
|
8
|
+
|
|
9
|
+
Chat History:
|
|
10
|
+
{chat_history}
|
|
11
|
+
Follow Up Input: {question}
|
|
12
|
+
Standalone question:`;
|
|
13
|
+
const question_generator_prompt = prompts_1.PromptTemplate.fromTemplate(question_generator_template);
|
|
14
|
+
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.
|
|
15
|
+
|
|
16
|
+
{context}
|
|
17
|
+
|
|
18
|
+
Question: {question}
|
|
19
|
+
Helpful Answer:`;
|
|
20
|
+
const qa_prompt = prompts_1.PromptTemplate.fromTemplate(qa_template);
|
|
21
|
+
class ChatVectorDBQAChain extends index_1.BaseChain {
|
|
22
|
+
constructor(fields) {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
super();
|
|
25
|
+
Object.defineProperty(this, "k", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true,
|
|
29
|
+
value: 4
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(this, "inputKey", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
writable: true,
|
|
35
|
+
value: "question"
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(this, "chatHistoryKey", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
value: "chat_history"
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(this, "outputKey", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
value: "result"
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(this, "vectorstore", {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
configurable: true,
|
|
52
|
+
writable: true,
|
|
53
|
+
value: void 0
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(this, "combineDocumentsChain", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
configurable: true,
|
|
58
|
+
writable: true,
|
|
59
|
+
value: void 0
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(this, "questionGeneratorChain", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
configurable: true,
|
|
64
|
+
writable: true,
|
|
65
|
+
value: void 0
|
|
66
|
+
});
|
|
67
|
+
this.vectorstore = fields.vectorstore;
|
|
68
|
+
this.combineDocumentsChain = fields.combineDocumentsChain;
|
|
69
|
+
this.questionGeneratorChain = fields.questionGeneratorChain;
|
|
70
|
+
this.inputKey = (_a = fields.inputKey) !== null && _a !== void 0 ? _a : this.inputKey;
|
|
71
|
+
this.outputKey = (_b = fields.outputKey) !== null && _b !== void 0 ? _b : this.outputKey;
|
|
72
|
+
this.k = (_c = fields.k) !== null && _c !== void 0 ? _c : this.k;
|
|
73
|
+
}
|
|
74
|
+
async _call(values) {
|
|
75
|
+
if (!(this.inputKey in values)) {
|
|
76
|
+
throw new Error(`Question key ${this.inputKey} not found.`);
|
|
77
|
+
}
|
|
78
|
+
if (!(this.chatHistoryKey in values)) {
|
|
79
|
+
throw new Error(`chat history key ${this.inputKey} not found.`);
|
|
80
|
+
}
|
|
81
|
+
const question = values[this.inputKey];
|
|
82
|
+
const chatHistory = values[this.chatHistoryKey];
|
|
83
|
+
let newQuestion = question;
|
|
84
|
+
if (chatHistory.length > 0) {
|
|
85
|
+
const result = await this.questionGeneratorChain.call({
|
|
86
|
+
question,
|
|
87
|
+
chat_history: chatHistory,
|
|
88
|
+
});
|
|
89
|
+
const keys = Object.keys(result);
|
|
90
|
+
if (keys.length === 1) {
|
|
91
|
+
newQuestion = result[keys[0]];
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
throw new Error("Return from llm chain has multiple values, only single values supported.");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const docs = await this.vectorstore.similaritySearch(newQuestion, this.k);
|
|
98
|
+
const inputs = {
|
|
99
|
+
question,
|
|
100
|
+
input_documents: docs,
|
|
101
|
+
chat_history: chatHistory,
|
|
102
|
+
};
|
|
103
|
+
const result = await this.combineDocumentsChain.call(inputs);
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
_chainType() {
|
|
107
|
+
return "chat-vector-db";
|
|
108
|
+
}
|
|
109
|
+
static async deserialize(data, values) {
|
|
110
|
+
if (!("vectorstore" in values)) {
|
|
111
|
+
throw new Error(`Need to pass in a vectorstore to deserialize VectorDBQAChain`);
|
|
112
|
+
}
|
|
113
|
+
const { vectorstore } = values;
|
|
114
|
+
const serializedCombineDocumentsChain = (0, util_1.resolveConfigFromFile)("combine_documents_chain", data);
|
|
115
|
+
const serializedQuestionGeneratorChain = (0, util_1.resolveConfigFromFile)("question_generator", data);
|
|
116
|
+
return new ChatVectorDBQAChain({
|
|
117
|
+
combineDocumentsChain: await index_1.StuffDocumentsChain.deserialize(serializedCombineDocumentsChain),
|
|
118
|
+
questionGeneratorChain: await index_1.LLMChain.deserialize(serializedQuestionGeneratorChain),
|
|
119
|
+
k: data.k,
|
|
120
|
+
vectorstore,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
serialize() {
|
|
124
|
+
return {
|
|
125
|
+
_type: this._chainType(),
|
|
126
|
+
combine_documents_chain: this.combineDocumentsChain.serialize(),
|
|
127
|
+
question_generator: this.questionGeneratorChain.serialize(),
|
|
128
|
+
k: this.k,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
static fromLLM(llm, vectorstore) {
|
|
132
|
+
const qaChain = (0, index_1.loadQAChain)(llm, qa_prompt);
|
|
133
|
+
const questionGeneratorChain = new index_1.LLMChain({
|
|
134
|
+
prompt: question_generator_prompt,
|
|
135
|
+
llm,
|
|
136
|
+
});
|
|
137
|
+
const instance = new this({
|
|
138
|
+
vectorstore,
|
|
139
|
+
combineDocumentsChain: qaChain,
|
|
140
|
+
questionGeneratorChain,
|
|
141
|
+
});
|
|
142
|
+
return instance;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
exports.ChatVectorDBQAChain = ChatVectorDBQAChain;
|
|
146
|
+
//# 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,mCAQiB;AAEjB,wCAA4C;AAK5C,kCAAgD;AAIhD,MAAM,2BAA2B,GAAG;;;;;qBAKf,CAAC;AACtB,MAAM,yBAAyB,GAAG,wBAAc,CAAC,YAAY,CAC3D,2BAA2B,CAC5B,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;gBAKJ,CAAC;AACjB,MAAM,SAAS,GAAG,wBAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAmB3D,MAAa,mBACX,SAAQ,iBAAS;IAiBjB,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,EAAE;YAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBACpD,QAAQ;gBACR,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/B;iBAAM;gBACL,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;aACH;SACF;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG;YACb,QAAQ;YACR,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,WAAW;SAC1B,CAAC;QACF,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,IAAA,4BAAqB,EAG3D,yBAAyB,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,gCAAgC,GAAG,IAAA,4BAAqB,EAG5D,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,IAAI,mBAAmB,CAAC;YAC7B,qBAAqB,EAAE,MAAM,2BAAmB,CAAC,WAAW,CAC1D,+BAA+B,CAChC;YACD,sBAAsB,EAAE,MAAM,gBAAQ,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,IAAA,mBAAW,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,MAAM,sBAAsB,GAAG,IAAI,gBAAQ,CAAC;YAC1C,MAAM,EAAE,yBAAyB;YACjC,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC;YACxB,WAAW;YACX,qBAAqB,EAAE,OAAO;YAC9B,sBAAsB;SACvB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA9HD,kDA8HC"}
|
|
@@ -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,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StuffDocumentsChain = void 0;
|
|
4
|
+
const index_1 = require("./index");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
/**
|
|
7
|
+
* Chain that combines documents by stuffing into context.
|
|
8
|
+
* @augments BaseChain
|
|
9
|
+
* @augments StuffDocumentsChainInput
|
|
10
|
+
*/
|
|
11
|
+
class StuffDocumentsChain extends index_1.BaseChain {
|
|
12
|
+
constructor(fields) {
|
|
13
|
+
var _a, _b, _c;
|
|
14
|
+
super();
|
|
15
|
+
Object.defineProperty(this, "llmChain", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(this, "inputKey", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
writable: true,
|
|
25
|
+
value: "input_documents"
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(this, "outputKey", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
configurable: true,
|
|
30
|
+
writable: true,
|
|
31
|
+
value: "output_text"
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(this, "documentVariableName", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: "context"
|
|
38
|
+
});
|
|
39
|
+
this.llmChain = fields.llmChain;
|
|
40
|
+
this.documentVariableName =
|
|
41
|
+
(_a = fields.documentVariableName) !== null && _a !== void 0 ? _a : this.documentVariableName;
|
|
42
|
+
this.inputKey = (_b = fields.inputKey) !== null && _b !== void 0 ? _b : this.inputKey;
|
|
43
|
+
this.outputKey = (_c = fields.outputKey) !== null && _c !== void 0 ? _c : this.outputKey;
|
|
44
|
+
}
|
|
45
|
+
async _call(values) {
|
|
46
|
+
if (!(this.inputKey in values)) {
|
|
47
|
+
throw new Error(`Document key ${this.inputKey} not found.`);
|
|
48
|
+
}
|
|
49
|
+
const { [this.inputKey]: docs, ...rest } = values;
|
|
50
|
+
const texts = docs.map(({ pageContent }) => pageContent);
|
|
51
|
+
const text = texts.join("\n\n");
|
|
52
|
+
const result = await this.llmChain.call({
|
|
53
|
+
...rest,
|
|
54
|
+
[this.documentVariableName]: text,
|
|
55
|
+
});
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
_chainType() {
|
|
59
|
+
return "stuff_documents_chain";
|
|
60
|
+
}
|
|
61
|
+
static async deserialize(data) {
|
|
62
|
+
const SerializedLLMChain = (0, util_1.resolveConfigFromFile)("llm_chain", data);
|
|
63
|
+
return new StuffDocumentsChain({
|
|
64
|
+
llmChain: await index_1.LLMChain.deserialize(SerializedLLMChain),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
serialize() {
|
|
68
|
+
return {
|
|
69
|
+
_type: this._chainType(),
|
|
70
|
+
llm_chain: this.llmChain.serialize(),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.StuffDocumentsChain = StuffDocumentsChain;
|
|
75
|
+
//# 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,mCAA+E;AAI/E,kCAAgD;AAiBhD;;;;GAIG;AACH,MAAa,mBACX,SAAQ,iBAAS;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,IAAA,4BAAqB,EAG9C,WAAW,EAAE,IAAI,CAAC,CAAC;QAErB,OAAO,IAAI,mBAAmB,CAAC;YAC7B,QAAQ,EAAE,MAAM,gBAAQ,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;AA7DD,kDA6DC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { LLMChain } from "./llm_chain";
|
|
2
|
+
import { BaseLLM } from "../llms";
|
|
3
|
+
import { BasePromptTemplate } from "../prompts";
|
|
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,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConversationChain = void 0;
|
|
4
|
+
const llm_chain_1 = require("./llm_chain");
|
|
5
|
+
const prompts_1 = require("../prompts");
|
|
6
|
+
const memory_1 = require("../memory");
|
|
7
|
+
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.
|
|
8
|
+
|
|
9
|
+
Current conversation:
|
|
10
|
+
{history}
|
|
11
|
+
Human: {input}
|
|
12
|
+
AI:`;
|
|
13
|
+
const defaultPrompt = new prompts_1.PromptTemplate({
|
|
14
|
+
template: defaultTemplate,
|
|
15
|
+
inputVariables: ["history", "input"],
|
|
16
|
+
});
|
|
17
|
+
class ConversationChain extends llm_chain_1.LLMChain {
|
|
18
|
+
constructor(fields) {
|
|
19
|
+
var _a, _b, _c;
|
|
20
|
+
super({
|
|
21
|
+
prompt: (_a = fields.prompt) !== null && _a !== void 0 ? _a : defaultPrompt,
|
|
22
|
+
llm: fields.llm,
|
|
23
|
+
outputKey: (_b = fields.outputKey) !== null && _b !== void 0 ? _b : "response",
|
|
24
|
+
});
|
|
25
|
+
this.memory = (_c = fields.memory) !== null && _c !== void 0 ? _c : new memory_1.BufferMemory();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.ConversationChain = ConversationChain;
|
|
29
|
+
//# sourceMappingURL=conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../chains/conversation.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAEvC,wCAAgE;AAEhE,sCAAqD;AAErD,MAAM,eAAe,GAAG;;;;;IAKpB,CAAC;AAEL,MAAM,aAAa,GAAG,IAAI,wBAAc,CAAC;IACvC,QAAQ,EAAE,eAAe;IACzB,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;CACrC,CAAC,CAAC;AAEH,MAAa,iBAAkB,SAAQ,oBAAQ;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,qBAAY,EAAE,CAAC;IACpD,CAAC;CACF;AAdD,8CAcC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { BaseChain, ChainValues } from "./base";
|
|
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";
|
|
6
|
+
export { loadChain } from "./load";
|
|
7
|
+
export { loadQAChain } from "./question_answering/load";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadQAChain = exports.loadChain = exports.VectorDBQAChain = exports.ChatVectorDBQAChain = exports.StuffDocumentsChain = exports.ConversationChain = exports.LLMChain = exports.BaseChain = void 0;
|
|
4
|
+
var base_1 = require("./base");
|
|
5
|
+
Object.defineProperty(exports, "BaseChain", { enumerable: true, get: function () { return base_1.BaseChain; } });
|
|
6
|
+
var llm_chain_1 = require("./llm_chain");
|
|
7
|
+
Object.defineProperty(exports, "LLMChain", { enumerable: true, get: function () { return llm_chain_1.LLMChain; } });
|
|
8
|
+
Object.defineProperty(exports, "ConversationChain", { enumerable: true, get: function () { return llm_chain_1.ConversationChain; } });
|
|
9
|
+
var combine_docs_chain_1 = require("./combine_docs_chain");
|
|
10
|
+
Object.defineProperty(exports, "StuffDocumentsChain", { enumerable: true, get: function () { return combine_docs_chain_1.StuffDocumentsChain; } });
|
|
11
|
+
var chat_vector_db_chain_1 = require("./chat_vector_db_chain");
|
|
12
|
+
Object.defineProperty(exports, "ChatVectorDBQAChain", { enumerable: true, get: function () { return chat_vector_db_chain_1.ChatVectorDBQAChain; } });
|
|
13
|
+
var vector_db_qa_1 = require("./vector_db_qa");
|
|
14
|
+
Object.defineProperty(exports, "VectorDBQAChain", { enumerable: true, get: function () { return vector_db_qa_1.VectorDBQAChain; } });
|
|
15
|
+
var load_1 = require("./load");
|
|
16
|
+
Object.defineProperty(exports, "loadChain", { enumerable: true, get: function () { return load_1.loadChain; } });
|
|
17
|
+
var load_2 = require("./question_answering/load");
|
|
18
|
+
Object.defineProperty(exports, "loadQAChain", { enumerable: true, get: function () { return load_2.loadQAChain; } });
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../chains/index.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAAvC,iGAAA,SAAS,OAAA;AAClB,yCAA8E;AAAjD,qGAAA,QAAQ,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AACxD,2DAG8B;AAD5B,yHAAA,mBAAmB,OAAA;AAErB,+DAGgC;AAF9B,2HAAA,mBAAmB,OAAA;AAGrB,+CAA4E;AAAnE,+GAAA,eAAe,OAAA;AACxB,+BAAmC;AAA1B,iGAAA,SAAS,OAAA;AAClB,kDAAwD;AAA/C,mGAAA,WAAW,OAAA"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { BaseChain, ChainValues } from "./index";
|
|
2
2
|
import { BaseLLM, SerializedLLM } from "../llms";
|
|
3
|
-
import {
|
|
3
|
+
import { BaseMemory } from "../memory";
|
|
4
|
+
import { BasePromptTemplate, SerializedBasePromptTemplate } from "../prompts";
|
|
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
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConversationChain = exports.LLMChain = void 0;
|
|
4
|
+
const index_1 = require("./index");
|
|
5
|
+
const llms_1 = require("../llms");
|
|
6
|
+
const memory_1 = require("../memory");
|
|
7
|
+
const prompts_1 = require("../prompts");
|
|
8
|
+
const util_1 = require("../util");
|
|
9
|
+
/**
|
|
10
|
+
* Chain to run queries against LLMs.
|
|
11
|
+
* @augments BaseChain
|
|
12
|
+
* @augments LLMChainInput
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { LLMChain, OpenAI, PromptTemplate } from "langchain";
|
|
17
|
+
* const prompt = PromptTemplate.fromTemplate("Tell me a {adjective} joke");
|
|
18
|
+
* const llm = LLMChain({ llm: new OpenAI(), prompt });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
class LLMChain extends index_1.BaseChain {
|
|
22
|
+
constructor(fields) {
|
|
23
|
+
var _a;
|
|
24
|
+
super();
|
|
25
|
+
Object.defineProperty(this, "prompt", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true,
|
|
29
|
+
value: void 0
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(this, "llm", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
writable: true,
|
|
35
|
+
value: void 0
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(this, "outputKey", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
value: "text"
|
|
42
|
+
});
|
|
43
|
+
this.prompt = fields.prompt;
|
|
44
|
+
this.llm = fields.llm;
|
|
45
|
+
this.outputKey = (_a = fields.outputKey) !== null && _a !== void 0 ? _a : this.outputKey;
|
|
46
|
+
}
|
|
47
|
+
async _call(values) {
|
|
48
|
+
let stop;
|
|
49
|
+
if ("stop" in values && Array.isArray(values.stop)) {
|
|
50
|
+
stop = values.stop;
|
|
51
|
+
}
|
|
52
|
+
const formattedString = this.prompt.format(values);
|
|
53
|
+
const llmResult = await this.llm.call(formattedString, stop);
|
|
54
|
+
const result = { [this.outputKey]: llmResult };
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Format prompt with values and pass to LLM
|
|
59
|
+
*
|
|
60
|
+
* @param values - keys to pass to prompt template
|
|
61
|
+
* @returns Completion from LLM.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* llm.predict({ adjective: "funny" })
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
async predict(values) {
|
|
69
|
+
const output = await this.call(values);
|
|
70
|
+
return output[this.outputKey];
|
|
71
|
+
}
|
|
72
|
+
_chainType() {
|
|
73
|
+
return "llm_chain";
|
|
74
|
+
}
|
|
75
|
+
static async deserialize(data) {
|
|
76
|
+
const serializedLLM = (0, util_1.resolveConfigFromFile)("llm", data);
|
|
77
|
+
const serializedPrompt = (0, util_1.resolveConfigFromFile)("prompt", data);
|
|
78
|
+
return new LLMChain({
|
|
79
|
+
llm: await llms_1.BaseLLM.deserialize(serializedLLM),
|
|
80
|
+
prompt: await prompts_1.BasePromptTemplate.deserialize(serializedPrompt),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
serialize() {
|
|
84
|
+
return {
|
|
85
|
+
_type: this._chainType(),
|
|
86
|
+
llm: this.llm.serialize(),
|
|
87
|
+
prompt: this.prompt.serialize(),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.LLMChain = LLMChain;
|
|
92
|
+
// eslint-disable-next-line max-len
|
|
93
|
+
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.
|
|
94
|
+
|
|
95
|
+
Current conversation:
|
|
96
|
+
{history}
|
|
97
|
+
Human: {input}
|
|
98
|
+
AI:`;
|
|
99
|
+
const defaultPrompt = new prompts_1.PromptTemplate({
|
|
100
|
+
template: defaultTemplate,
|
|
101
|
+
inputVariables: ["history", "input"],
|
|
102
|
+
});
|
|
103
|
+
class ConversationChain extends LLMChain {
|
|
104
|
+
constructor(fields) {
|
|
105
|
+
var _a, _b, _c;
|
|
106
|
+
super({
|
|
107
|
+
prompt: (_a = fields.prompt) !== null && _a !== void 0 ? _a : defaultPrompt,
|
|
108
|
+
llm: fields.llm,
|
|
109
|
+
outputKey: (_b = fields.outputKey) !== null && _b !== void 0 ? _b : "response",
|
|
110
|
+
});
|
|
111
|
+
this.memory = (_c = fields.memory) !== null && _c !== void 0 ? _c : new memory_1.BufferMemory();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.ConversationChain = ConversationChain;
|
|
115
|
+
//# sourceMappingURL=llm_chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm_chain.js","sourceRoot":"","sources":["../../chains/llm_chain.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,kCAAiD;AAEjD,sCAAqD;AACrD,wCAIoB;AAEpB,kCAAgD;AAoBhD;;;;;;;;;;;GAWG;AACH,MAAa,QAAS,SAAQ,iBAAS;IAOrC,YAAY,MAIX;;QACC,KAAK,EAAE,CAAC;QAXV;;;;;WAA2B;QAE3B;;;;;WAAa;QAEb;;;;mBAAY,MAAM;WAAC;QAQjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,IAAI,IAAI,CAAC;QACT,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAClD,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;SACpB;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,MAAmB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,UAAU;QACR,OAAO,WAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAwB;QAC/C,MAAM,aAAa,GAAG,IAAA,4BAAqB,EACzC,KAAK,EACL,IAAI,CACL,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAA,4BAAqB,EAG5C,QAAQ,EAAE,IAAI,CAAC,CAAC;QAElB,OAAO,IAAI,QAAQ,CAAC;YAClB,GAAG,EAAE,MAAM,cAAO,CAAC,WAAW,CAAC,aAAa,CAAC;YAC7C,MAAM,EAAE,MAAM,4BAAkB,CAAC,WAAW,CAAC,gBAAgB,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;SAChC,CAAC;IACJ,CAAC;CACF;AAxED,4BAwEC;AAED,mCAAmC;AACnC,MAAM,eAAe,GAAG;;;;;IAKpB,CAAC;AAEL,MAAM,aAAa,GAAG,IAAI,wBAAc,CAAC;IACvC,QAAQ,EAAE,eAAe;IACzB,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;CACrC,CAAC,CAAC;AAEH,MAAa,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,qBAAY,EAAE,CAAC;IACpD,CAAC;CACF;AAdD,8CAcC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseChain } from ".";
|
|
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>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadChain = void 0;
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
const hub_1 = require("../util/hub");
|
|
6
|
+
const util_1 = require("../util");
|
|
7
|
+
const loadChainFromFile = async (file, values = {}) => {
|
|
8
|
+
const serialized = (0, util_1.parseFileConfig)(file);
|
|
9
|
+
return _1.BaseChain.deserialize(serialized, values);
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Load a chain from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* Loading from LangchainHub:
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { loadChain } from "langchain/chains";
|
|
18
|
+
* const chain = await loadChain("lc://chains/hello-world/chain.json");
|
|
19
|
+
* const res = await chain.call({ topic: "my favorite color" });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* Loading from local filesystem:
|
|
24
|
+
* ```ts
|
|
25
|
+
* import { loadChain } from "langchain/chains";
|
|
26
|
+
* const chain = await loadChain("/path/to/chain.json");
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
const loadChain = async (uri, values = {}) => {
|
|
30
|
+
const hubResult = await (0, hub_1.loadFromHub)(uri, (uri) => loadChainFromFile(uri, values), "chains", new Set(["json", "yaml"]), values);
|
|
31
|
+
if (hubResult) {
|
|
32
|
+
return hubResult;
|
|
33
|
+
}
|
|
34
|
+
return loadChainFromFile(uri, values);
|
|
35
|
+
};
|
|
36
|
+
exports.loadChain = loadChain;
|
|
37
|
+
//# sourceMappingURL=load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../chains/load.ts"],"names":[],"mappings":";;;AAAA,wBAA8B;AAC9B,qCAA0C;AAC1C,kCAA0C;AAK1C,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAE,SAAqB,EAAE,EAAE,EAAE;IACxE,MAAM,UAAU,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACzC,OAAO,YAAS,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,SAAS,GAAG,KAAK,EAC5B,GAAW,EACX,SAAqB,EAAE,EACH,EAAE;IACtB,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAW,EACjC,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;AAhBW,QAAA,SAAS,aAgBpB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadQAChain = void 0;
|
|
4
|
+
const llm_chain_1 = require("../llm_chain");
|
|
5
|
+
const combine_docs_chain_1 = require("../combine_docs_chain");
|
|
6
|
+
const stuff_prompts_1 = require("./stuff_prompts");
|
|
7
|
+
const loadQAChain = (llm, prompt = stuff_prompts_1.DEFAULT_QA_PROMPT) => {
|
|
8
|
+
const llmChain = new llm_chain_1.LLMChain({ prompt, llm });
|
|
9
|
+
const chain = new combine_docs_chain_1.StuffDocumentsChain({ llmChain });
|
|
10
|
+
return chain;
|
|
11
|
+
};
|
|
12
|
+
exports.loadQAChain = loadQAChain;
|
|
13
|
+
//# sourceMappingURL=load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../chains/question_answering/load.ts"],"names":[],"mappings":";;;AACA,4CAAwC;AACxC,8DAA4D;AAC5D,mDAAoD;AAE7C,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,MAAM,GAAG,iCAAiB,EAAE,EAAE;IACtE,MAAM,QAAQ,GAAG,IAAI,oBAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,wCAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_QA_PROMPT = void 0;
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
const prompts_1 = require("../../prompts");
|
|
6
|
+
exports.DEFAULT_QA_PROMPT = new prompts_1.PromptTemplate({
|
|
7
|
+
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.\n\n{context}\n\nQuestion: {question}\nHelpful Answer:",
|
|
8
|
+
inputVariables: ["context", "question"],
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=stuff_prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stuff_prompts.js","sourceRoot":"","sources":["../../../chains/question_answering/stuff_prompts.ts"],"names":[],"mappings":";;;AAAA,oBAAoB;AACpB,2CAA+C;AAElC,QAAA,iBAAiB,GAAG,IAAI,wBAAc,CAAC;IAClD,QAAQ,EACN,0NAA0N;IAC5N,cAAc,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;CACxC,CAAC,CAAC"}
|
|
File without changes
|