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
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { BasePromptTemplate, BasePromptTemplateInput, SerializedBasePromptTemplate, InputValues, } from "./base";
|
|
2
2
|
export { PromptTemplate, PromptTemplateInput, SerializedPromptTemplate, } from "./prompt";
|
|
3
3
|
export { FewShotPromptTemplate, FewShotPromptTemplateInput, SerializedFewShotTemplate, } from "./few_shot";
|
|
4
|
+
export { loadPrompt } from "./load";
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FewShotPromptTemplate = exports.PromptTemplate = exports.BasePromptTemplate = void 0;
|
|
3
|
+
exports.loadPrompt = exports.FewShotPromptTemplate = exports.PromptTemplate = exports.BasePromptTemplate = void 0;
|
|
4
4
|
var base_1 = require("./base");
|
|
5
5
|
Object.defineProperty(exports, "BasePromptTemplate", { enumerable: true, get: function () { return base_1.BasePromptTemplate; } });
|
|
6
6
|
var prompt_1 = require("./prompt");
|
|
7
7
|
Object.defineProperty(exports, "PromptTemplate", { enumerable: true, get: function () { return prompt_1.PromptTemplate; } });
|
|
8
8
|
var few_shot_1 = require("./few_shot");
|
|
9
9
|
Object.defineProperty(exports, "FewShotPromptTemplate", { enumerable: true, get: function () { return few_shot_1.FewShotPromptTemplate; } });
|
|
10
|
+
var load_1 = require("./load");
|
|
11
|
+
Object.defineProperty(exports, "loadPrompt", { enumerable: true, get: function () { return load_1.loadPrompt; } });
|
|
10
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../prompts/index.ts"],"names":[],"mappings":";;;AAAA,+BAKgB;AAJd,0GAAA,kBAAkB,OAAA;AAKpB,mCAIkB;AAHhB,wGAAA,cAAc,OAAA;AAIhB,uCAIoB;AAHlB,iHAAA,qBAAqB,OAAA;AAIvB,+BAAoC;AAA3B,kGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BasePromptTemplate } from ".";
|
|
2
|
+
/**
|
|
3
|
+
* Load a prompt from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* Loading from LangchainHub:
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { loadPrompt } from "langchain/prompts";
|
|
9
|
+
* const prompt = await loadPrompt("lc://prompts/hello-world/prompt.yaml");
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* Loading from local filesystem:
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { loadPrompt } from "langchain/prompts";
|
|
16
|
+
* const prompt = await loadPrompt("/path/to/prompt.json");
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const loadPrompt: (uri: string) => Promise<BasePromptTemplate>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadPrompt = void 0;
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
const hub_1 = require("../util/hub");
|
|
6
|
+
const util_1 = require("../util");
|
|
7
|
+
const loadPromptFromFile = async (file) => _1.BasePromptTemplate.deserialize((0, util_1.parseFileConfig)(file));
|
|
8
|
+
/**
|
|
9
|
+
* Load a prompt from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* Loading from LangchainHub:
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { loadPrompt } from "langchain/prompts";
|
|
15
|
+
* const prompt = await loadPrompt("lc://prompts/hello-world/prompt.yaml");
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* Loading from local filesystem:
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { loadPrompt } from "langchain/prompts";
|
|
22
|
+
* const prompt = await loadPrompt("/path/to/prompt.json");
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
const loadPrompt = async (uri) => {
|
|
26
|
+
const hubResult = await (0, hub_1.loadFromHub)(uri, loadPromptFromFile, "prompts", new Set(["py", "json", "yaml"]));
|
|
27
|
+
if (hubResult) {
|
|
28
|
+
return hubResult;
|
|
29
|
+
}
|
|
30
|
+
return loadPromptFromFile(uri);
|
|
31
|
+
};
|
|
32
|
+
exports.loadPrompt = loadPrompt;
|
|
33
|
+
//# sourceMappingURL=load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../prompts/load.ts"],"names":[],"mappings":";;;AAAA,wBAAuC;AACvC,qCAA0C;AAC1C,kCAA0C;AAE1C,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE,CAChD,qBAAkB,CAAC,WAAW,CAAC,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAA+B,EAAE;IAC3E,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAW,EACjC,GAAG,EACH,kBAAkB,EAClB,SAAS,EACT,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAChC,CAAC;IACF,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB"}
|
|
@@ -1,16 +1,42 @@
|
|
|
1
1
|
export type SerializedOutputParser = SerializedRegexParser | SerializedCommaSeparatedListOutputParser;
|
|
2
|
+
/**
|
|
3
|
+
* Class to parse the output of an LLM call.
|
|
4
|
+
*/
|
|
2
5
|
export declare abstract class BaseOutputParser {
|
|
6
|
+
/**
|
|
7
|
+
* Parse the output of an LLM call.
|
|
8
|
+
*
|
|
9
|
+
* @param text - LLM output to parse.
|
|
10
|
+
* @returns Parsed output.
|
|
11
|
+
*/
|
|
3
12
|
abstract parse(text: string): string | string[] | Record<string, string>;
|
|
13
|
+
/**
|
|
14
|
+
* Return the string type key uniquely identifying this class of parser
|
|
15
|
+
*/
|
|
4
16
|
_type(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Return a json-like object representing this output parser.
|
|
19
|
+
*/
|
|
5
20
|
abstract serialize(): SerializedOutputParser;
|
|
21
|
+
/**
|
|
22
|
+
* Load an output parser from a json-like object describing the parser.
|
|
23
|
+
*/
|
|
6
24
|
static deserialize(data: SerializedOutputParser): BaseOutputParser;
|
|
7
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Class to parse the output of an LLM call to a list.
|
|
28
|
+
* @augments BaseOutputParser
|
|
29
|
+
*/
|
|
8
30
|
export declare abstract class ListOutputParser extends BaseOutputParser {
|
|
9
31
|
abstract parse(text: string): string[];
|
|
10
32
|
}
|
|
11
33
|
type SerializedCommaSeparatedListOutputParser = {
|
|
12
34
|
_type: "comma_separated_list";
|
|
13
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Class to parse the output of an LLM call as a comma-separated list.
|
|
38
|
+
* @augments ListOutputParser
|
|
39
|
+
*/
|
|
14
40
|
export declare class CommaSeparatedListOutputParser extends ListOutputParser {
|
|
15
41
|
parse(text: string): string[];
|
|
16
42
|
serialize(): SerializedCommaSeparatedListOutputParser;
|
|
@@ -22,6 +48,10 @@ type SerializedRegexParser = {
|
|
|
22
48
|
output_keys: string[];
|
|
23
49
|
default_output_key?: string;
|
|
24
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Class to parse the output of an LLM call into a dictionary.
|
|
53
|
+
* @augments BaseOutputParser
|
|
54
|
+
*/
|
|
25
55
|
export declare class RegexParser extends BaseOutputParser {
|
|
26
56
|
regex: string | RegExp;
|
|
27
57
|
outputKeys: string[];
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RegexParser = exports.CommaSeparatedListOutputParser = exports.ListOutputParser = exports.BaseOutputParser = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Class to parse the output of an LLM call.
|
|
6
|
+
*/
|
|
4
7
|
class BaseOutputParser {
|
|
8
|
+
/**
|
|
9
|
+
* Return the string type key uniquely identifying this class of parser
|
|
10
|
+
*/
|
|
5
11
|
_type() {
|
|
6
12
|
throw new Error("_type not implemented");
|
|
7
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Load an output parser from a json-like object describing the parser.
|
|
16
|
+
*/
|
|
8
17
|
static deserialize(data) {
|
|
9
18
|
switch (data._type) {
|
|
10
19
|
case "regex_parser":
|
|
@@ -16,9 +25,17 @@ class BaseOutputParser {
|
|
|
16
25
|
}
|
|
17
26
|
}
|
|
18
27
|
exports.BaseOutputParser = BaseOutputParser;
|
|
28
|
+
/**
|
|
29
|
+
* Class to parse the output of an LLM call to a list.
|
|
30
|
+
* @augments BaseOutputParser
|
|
31
|
+
*/
|
|
19
32
|
class ListOutputParser extends BaseOutputParser {
|
|
20
33
|
}
|
|
21
34
|
exports.ListOutputParser = ListOutputParser;
|
|
35
|
+
/**
|
|
36
|
+
* Class to parse the output of an LLM call as a comma-separated list.
|
|
37
|
+
* @augments ListOutputParser
|
|
38
|
+
*/
|
|
22
39
|
class CommaSeparatedListOutputParser extends ListOutputParser {
|
|
23
40
|
parse(text) {
|
|
24
41
|
return text.trim().split(", ");
|
|
@@ -33,6 +50,10 @@ class CommaSeparatedListOutputParser extends ListOutputParser {
|
|
|
33
50
|
}
|
|
34
51
|
}
|
|
35
52
|
exports.CommaSeparatedListOutputParser = CommaSeparatedListOutputParser;
|
|
53
|
+
/**
|
|
54
|
+
* Class to parse the output of an LLM call into a dictionary.
|
|
55
|
+
* @augments BaseOutputParser
|
|
56
|
+
*/
|
|
36
57
|
class RegexParser extends BaseOutputParser {
|
|
37
58
|
constructor(regex, outputKeys, defaultOutputKey) {
|
|
38
59
|
super();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../prompts/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { BasePromptTemplate, BasePromptTemplateInput, InputValues } from "./index";
|
|
2
|
+
import { TemplateFormat } from "./template";
|
|
3
|
+
import { SerializedOutputParser } from "./parser";
|
|
4
|
+
export type SerializedPromptTemplate = {
|
|
5
|
+
_type?: "prompt";
|
|
6
|
+
input_variables: string[];
|
|
7
|
+
output_parser?: SerializedOutputParser;
|
|
8
|
+
template?: string;
|
|
9
|
+
template_path?: string;
|
|
10
|
+
template_format?: TemplateFormat;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Inputs to create a {@link PromptTemplate}
|
|
14
|
+
* @augments BasePromptTemplateInput
|
|
15
|
+
*/
|
|
16
|
+
export interface PromptTemplateInput extends BasePromptTemplateInput {
|
|
17
|
+
/**
|
|
18
|
+
* The propmt template
|
|
19
|
+
*/
|
|
20
|
+
template: string;
|
|
21
|
+
/**
|
|
22
|
+
* The format of the prompt template. Options are 'f-string', 'jinja-2'
|
|
23
|
+
*
|
|
24
|
+
* @defaultValue 'f-string'
|
|
25
|
+
*/
|
|
26
|
+
templateFormat?: TemplateFormat;
|
|
27
|
+
/**
|
|
28
|
+
* Whether or not to try validating the template on initialization
|
|
29
|
+
*
|
|
30
|
+
* @defaultValue `true`
|
|
31
|
+
*/
|
|
32
|
+
validateTemplate?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Schema to represent a basic prompt for an LLM.
|
|
36
|
+
* @augments BasePromptTemplate
|
|
37
|
+
* @augments PromptTemplateInput
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* import { PromptTemplate } from "langchain/prompts";
|
|
42
|
+
*
|
|
43
|
+
* const prompt = new PromptTemplate({
|
|
44
|
+
* inputVariables: ["foo"],
|
|
45
|
+
* template: "Say {foo}",
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare class PromptTemplate extends BasePromptTemplate implements PromptTemplateInput {
|
|
50
|
+
template: string;
|
|
51
|
+
templateFormat: TemplateFormat;
|
|
52
|
+
validateTemplate: boolean;
|
|
53
|
+
constructor(input: PromptTemplateInput);
|
|
54
|
+
_getPromptType(): "prompt";
|
|
55
|
+
format(values: InputValues): string;
|
|
56
|
+
/**
|
|
57
|
+
* Take examples in list format with prefix and suffix to create a prompt.
|
|
58
|
+
*
|
|
59
|
+
* Intendend to be used a a way to dynamically create a prompt from examples.
|
|
60
|
+
*
|
|
61
|
+
* @param examples - List of examples to use in the prompt.
|
|
62
|
+
* @param suffix - String to go after the list of examples. Should generally set up the user's input.
|
|
63
|
+
* @param inputVariables - A list of variable names the final prompt template will expect
|
|
64
|
+
* @param exampleSeparator - The separator to use in between examples
|
|
65
|
+
* @param prefix - String that should go before any examples. Generally includes examples.
|
|
66
|
+
*
|
|
67
|
+
* @returns The final prompt template generated.
|
|
68
|
+
*/
|
|
69
|
+
static fromExamples(examples: string[], suffix: string, inputVariables: string[], exampleSeparator?: string, prefix?: string): PromptTemplate;
|
|
70
|
+
/**
|
|
71
|
+
* Load prompt template from a template f-string
|
|
72
|
+
*/
|
|
73
|
+
static fromTemplate(template: string): PromptTemplate;
|
|
74
|
+
serialize(): SerializedPromptTemplate;
|
|
75
|
+
static deserialize(data: SerializedPromptTemplate): Promise<PromptTemplate>;
|
|
76
|
+
}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.PromptTemplate = void 0;
|
|
13
4
|
const index_1 = require("./index");
|
|
14
5
|
const template_1 = require("./template");
|
|
15
6
|
const util_1 = require("../util");
|
|
16
7
|
const parser_1 = require("./parser");
|
|
8
|
+
/**
|
|
9
|
+
* Schema to represent a basic prompt for an LLM.
|
|
10
|
+
* @augments BasePromptTemplate
|
|
11
|
+
* @augments PromptTemplateInput
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { PromptTemplate } from "langchain/prompts";
|
|
16
|
+
*
|
|
17
|
+
* const prompt = new PromptTemplate({
|
|
18
|
+
* inputVariables: ["foo"],
|
|
19
|
+
* template: "Say {foo}",
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
17
23
|
class PromptTemplate extends index_1.BasePromptTemplate {
|
|
18
24
|
constructor(input) {
|
|
19
25
|
super(input);
|
|
@@ -46,6 +52,19 @@ class PromptTemplate extends index_1.BasePromptTemplate {
|
|
|
46
52
|
format(values) {
|
|
47
53
|
return (0, template_1.renderTemplate)(this.template, this.templateFormat, values);
|
|
48
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Take examples in list format with prefix and suffix to create a prompt.
|
|
57
|
+
*
|
|
58
|
+
* Intendend to be used a a way to dynamically create a prompt from examples.
|
|
59
|
+
*
|
|
60
|
+
* @param examples - List of examples to use in the prompt.
|
|
61
|
+
* @param suffix - String to go after the list of examples. Should generally set up the user's input.
|
|
62
|
+
* @param inputVariables - A list of variable names the final prompt template will expect
|
|
63
|
+
* @param exampleSeparator - The separator to use in between examples
|
|
64
|
+
* @param prefix - String that should go before any examples. Generally includes examples.
|
|
65
|
+
*
|
|
66
|
+
* @returns The final prompt template generated.
|
|
67
|
+
*/
|
|
49
68
|
static fromExamples(examples, suffix, inputVariables, exampleSeparator = "\n\n", prefix = "") {
|
|
50
69
|
const template = [prefix, ...examples, suffix].join(exampleSeparator);
|
|
51
70
|
return new PromptTemplate({
|
|
@@ -53,6 +72,9 @@ class PromptTemplate extends index_1.BasePromptTemplate {
|
|
|
53
72
|
template,
|
|
54
73
|
});
|
|
55
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Load prompt template from a template f-string
|
|
77
|
+
*/
|
|
56
78
|
static fromTemplate(template) {
|
|
57
79
|
const names = new Set();
|
|
58
80
|
(0, template_1.parseFString)(template).forEach((node) => {
|
|
@@ -75,16 +97,14 @@ class PromptTemplate extends index_1.BasePromptTemplate {
|
|
|
75
97
|
template_format: this.templateFormat,
|
|
76
98
|
};
|
|
77
99
|
}
|
|
78
|
-
static deserialize(data) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
templateFormat: data.template_format,
|
|
85
|
-
});
|
|
86
|
-
return res;
|
|
100
|
+
static async deserialize(data) {
|
|
101
|
+
const res = new PromptTemplate({
|
|
102
|
+
inputVariables: data.input_variables,
|
|
103
|
+
outputParser: data.output_parser && parser_1.BaseOutputParser.deserialize(data.output_parser),
|
|
104
|
+
template: (0, util_1.resolveTemplateFromFile)("template", data),
|
|
105
|
+
templateFormat: data.template_format,
|
|
87
106
|
});
|
|
107
|
+
return res;
|
|
88
108
|
}
|
|
89
109
|
}
|
|
90
110
|
exports.PromptTemplate = PromptTemplate;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../prompts/prompt.ts"],"names":[],"mappings":";;;AAAA,mCAIiB;AACjB,yCAKoB;AACpB,kCAAkD;AAClD,qCAAoE;AAoCpE;;;;;;;;;;;;;;GAcG;AACH,MAAa,cACX,SAAQ,0BAAkB;IAS1B,YAAY,KAA0B;QACpC,KAAK,CAAC,KAAK,CAAC,CAAC;QAPf;;;;;WAAiB;QAEjB;;;;mBAAiC,UAAU;WAAC;QAE5C;;;;mBAAmB,IAAI;WAAC;QAItB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAA,6BAAkB,EAChB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,cAAc,CACpB,CAAC;SACH;IACH,CAAC;IAED,cAAc;QACZ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,MAAmB;QACxB,OAAO,IAAA,yBAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,YAAY,CACjB,QAAkB,EAClB,MAAc,EACd,cAAwB,EACxB,gBAAgB,GAAG,MAAM,EACzB,MAAM,GAAG,EAAE;QAEX,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtE,OAAO,IAAI,cAAc,CAAC;YACxB,cAAc;YACd,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAgB;QAClC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC5B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CAAC;YACxB,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC;YAC1B,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,SAAS;;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE;YAC5B,eAAe,EAAE,IAAI,CAAC,cAAc;YACpC,aAAa,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,SAAS,EAAE;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,eAAe,EAAE,IAAI,CAAC,cAAc;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,IAA8B;QAE9B,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC;YAC7B,cAAc,EAAE,IAAI,CAAC,eAAe;YACpC,YAAY,EACV,IAAI,CAAC,aAAa,IAAI,yBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;YACxE,QAAQ,EAAE,IAAA,8BAAuB,EAAC,UAAU,EAAE,IAAI,CAAC;YACnD,cAAc,EAAE,IAAI,CAAC,eAAe;SACrC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;CAGF;AAnGD,wCAmGC"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../prompts/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const globals_1 = require("@jest/globals");
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const load_1 = require("../load");
|
|
9
|
+
const PROMPTS_DIR = path_1.default.join(__dirname, "prompts");
|
|
10
|
+
(0, globals_1.test)("Load Hello World Prompt", async () => {
|
|
11
|
+
const helloWorld = path_1.default.join(PROMPTS_DIR, "hello_world.yaml");
|
|
12
|
+
const prompt = await (0, load_1.loadPrompt)(helloWorld);
|
|
13
|
+
(0, globals_1.expect)(prompt._getPromptType()).toBe("prompt");
|
|
14
|
+
(0, globals_1.expect)(prompt.format({})).toBe("Say hello world.");
|
|
15
|
+
});
|
|
16
|
+
(0, globals_1.test)("Load hub prompt", async () => {
|
|
17
|
+
const prompt = await (0, load_1.loadPrompt)("lc@abb92d8://prompts/hello-world/prompt.yaml");
|
|
18
|
+
(0, globals_1.expect)(prompt._getPromptType()).toBe("prompt");
|
|
19
|
+
(0, globals_1.expect)(prompt.format({})).toBe("Say hello world.");
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=load.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.test.js","sourceRoot":"","sources":["../../../prompts/tests/load.test.ts"],"names":[],"mappings":";;;;;AAAA,2CAA6C;AAC7C,gDAAwB;AACxB,kCAAqC;AAErC,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAEpD,IAAA,cAAI,EAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;IACzC,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAU,EAAC,UAAU,CAAC,CAAC;IAC5C,IAAA,gBAAM,EAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAA,gBAAM,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,IAAA,cAAI,EAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IACjC,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAU,EAC7B,8CAA8C,CAC/C,CAAC;IACF,IAAA,gBAAM,EAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAA,gBAAM,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.test.js","sourceRoot":"","sources":["../../../prompts/tests/template.test.ts"],"names":[],"mappings":";;AAAA,2CAAuD;AACvD,0CAAiD;AAEjD,kBAAQ,CAAC,IAAI,CAAC;IACZ,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC;IAChC,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,YAAY,CAAC;IAC9C,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,cAAc,CAAC;IACpD,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC;IACpB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC;IAClB,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC;CACjE,CAAC,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;IACnD,IAAA,cAAI,EAAC,wBAAwB,QAAQ,EAAE,EAAE,GAAG,EAAE;QAC5C,IAAA,gBAAM,EAAC,IAAA,6BAAkB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,kBAAQ,CAAC,IAAI,CAAC;IACZ,CAAC,GAAG,EAAE,EAAE,CAAC;IACT,CAAC,GAAG,EAAE,EAAE,CAAC;IACT,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,MAAM,EAAE,EAAE,CAAC;CACb,CAAC,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;IAC7C,IAAA,cAAI,EAAC,yBAAyB,QAAQ,EAAE,EAAE,GAAG,EAAE;QAC7C,IAAA,gBAAM,EAAC,GAAG,EAAE,CAAC,IAAA,6BAAkB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Document } from "./document";
|
|
2
|
+
interface TextSplitterParams {
|
|
3
|
+
chunkSize: number;
|
|
4
|
+
chunkOverlap: number;
|
|
5
|
+
}
|
|
6
|
+
declare abstract class TextSplitter implements TextSplitterParams {
|
|
7
|
+
chunkSize: number;
|
|
8
|
+
chunkOverlap: number;
|
|
9
|
+
constructor(fields?: Partial<TextSplitterParams>);
|
|
10
|
+
abstract splitText(text: string): string[];
|
|
11
|
+
createDocuments(texts: string[], metadatas?: Record<string, any>[]): Document[];
|
|
12
|
+
splitDocuments(documents: Document[]): Document[];
|
|
13
|
+
private joinDocs;
|
|
14
|
+
mergeSplits(splits: string[], separator: string): string[];
|
|
15
|
+
}
|
|
16
|
+
export interface CharacterTextSplitterParams extends TextSplitterParams {
|
|
17
|
+
separator: string;
|
|
18
|
+
}
|
|
19
|
+
export declare class CharacterTextSplitter extends TextSplitter implements CharacterTextSplitterParams {
|
|
20
|
+
separator: string;
|
|
21
|
+
constructor(fields?: Partial<CharacterTextSplitterParams>);
|
|
22
|
+
splitText(text: string): string[];
|
|
23
|
+
}
|
|
24
|
+
export interface RecursiveCharacterTextSplitterParams extends TextSplitterParams {
|
|
25
|
+
separators: string[];
|
|
26
|
+
}
|
|
27
|
+
export declare class RecursiveCharacterTextSplitter extends TextSplitter implements RecursiveCharacterTextSplitterParams {
|
|
28
|
+
separators: string[];
|
|
29
|
+
constructor(fields?: Partial<RecursiveCharacterTextSplitterParams>);
|
|
30
|
+
splitText(text: string): string[];
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RecursiveCharacterTextSplitter = exports.CharacterTextSplitter = void 0;
|
|
4
|
+
const document_1 = require("./document");
|
|
5
|
+
class TextSplitter {
|
|
6
|
+
constructor(fields) {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
Object.defineProperty(this, "chunkSize", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: 1000
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(this, "chunkOverlap", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true,
|
|
18
|
+
value: 200
|
|
19
|
+
});
|
|
20
|
+
this.chunkSize = (_a = fields === null || fields === void 0 ? void 0 : fields.chunkSize) !== null && _a !== void 0 ? _a : this.chunkSize;
|
|
21
|
+
this.chunkOverlap = (_b = fields === null || fields === void 0 ? void 0 : fields.chunkOverlap) !== null && _b !== void 0 ? _b : this.chunkOverlap;
|
|
22
|
+
if (this.chunkOverlap >= this.chunkSize) {
|
|
23
|
+
throw new Error("Cannot have chunkOverlap >= chunkSize");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
createDocuments(texts,
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
metadatas = []) {
|
|
29
|
+
const _metadatas = metadatas.length > 0 ? metadatas : new Array(texts.length).fill({});
|
|
30
|
+
const documents = new Array();
|
|
31
|
+
for (let i = 0; i < texts.length; i += 1) {
|
|
32
|
+
const text = texts[i];
|
|
33
|
+
for (const chunk of this.splitText(text)) {
|
|
34
|
+
documents.push(new document_1.Document({ pageContent: chunk, metadata: _metadatas[i] }));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return documents;
|
|
38
|
+
}
|
|
39
|
+
splitDocuments(documents) {
|
|
40
|
+
const texts = documents.map((doc) => doc.pageContent);
|
|
41
|
+
const metadatas = documents.map((doc) => doc.metadata);
|
|
42
|
+
return this.createDocuments(texts, metadatas);
|
|
43
|
+
}
|
|
44
|
+
joinDocs(docs, separator) {
|
|
45
|
+
const text = docs.join(separator).trim();
|
|
46
|
+
return text === "" ? null : text;
|
|
47
|
+
}
|
|
48
|
+
mergeSplits(splits, separator) {
|
|
49
|
+
const docs = [];
|
|
50
|
+
const currentDoc = [];
|
|
51
|
+
let total = 0;
|
|
52
|
+
for (const d of splits) {
|
|
53
|
+
const _len = d.length;
|
|
54
|
+
if (total + _len >= this.chunkSize) {
|
|
55
|
+
if (total > this.chunkSize) {
|
|
56
|
+
console.warn(`Created a chunk of size ${total}, +
|
|
57
|
+
which is longer than the specified ${this.chunkSize}`);
|
|
58
|
+
}
|
|
59
|
+
if (currentDoc.length > 0) {
|
|
60
|
+
const doc = this.joinDocs(currentDoc, separator);
|
|
61
|
+
if (doc !== null) {
|
|
62
|
+
docs.push(doc);
|
|
63
|
+
}
|
|
64
|
+
// Keep on popping if:
|
|
65
|
+
// - we have a larger chunk than in the chunk overlap
|
|
66
|
+
// - or if we still have any chunks and the length is long
|
|
67
|
+
while (total > this.chunkOverlap ||
|
|
68
|
+
(total + _len > this.chunkSize && total > 0)) {
|
|
69
|
+
total -= currentDoc[0].length;
|
|
70
|
+
currentDoc.shift();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
currentDoc.push(d);
|
|
75
|
+
total += _len;
|
|
76
|
+
}
|
|
77
|
+
const doc = this.joinDocs(currentDoc, separator);
|
|
78
|
+
if (doc !== null) {
|
|
79
|
+
docs.push(doc);
|
|
80
|
+
}
|
|
81
|
+
return docs;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
class CharacterTextSplitter extends TextSplitter {
|
|
85
|
+
constructor(fields) {
|
|
86
|
+
var _a;
|
|
87
|
+
super(fields);
|
|
88
|
+
Object.defineProperty(this, "separator", {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
configurable: true,
|
|
91
|
+
writable: true,
|
|
92
|
+
value: "\n\n"
|
|
93
|
+
});
|
|
94
|
+
this.separator = (_a = fields === null || fields === void 0 ? void 0 : fields.separator) !== null && _a !== void 0 ? _a : this.separator;
|
|
95
|
+
}
|
|
96
|
+
splitText(text) {
|
|
97
|
+
// First we naively split the large input into a bunch of smaller ones.
|
|
98
|
+
let splits;
|
|
99
|
+
if (this.separator) {
|
|
100
|
+
splits = text.split(this.separator);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
splits = text.split("");
|
|
104
|
+
}
|
|
105
|
+
return this.mergeSplits(splits, this.separator);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.CharacterTextSplitter = CharacterTextSplitter;
|
|
109
|
+
class RecursiveCharacterTextSplitter extends TextSplitter {
|
|
110
|
+
constructor(fields) {
|
|
111
|
+
var _a;
|
|
112
|
+
super(fields);
|
|
113
|
+
Object.defineProperty(this, "separators", {
|
|
114
|
+
enumerable: true,
|
|
115
|
+
configurable: true,
|
|
116
|
+
writable: true,
|
|
117
|
+
value: ["\n\n", "\n", " ", ""]
|
|
118
|
+
});
|
|
119
|
+
this.separators = (_a = fields === null || fields === void 0 ? void 0 : fields.separators) !== null && _a !== void 0 ? _a : this.separators;
|
|
120
|
+
}
|
|
121
|
+
splitText(text) {
|
|
122
|
+
const finalChunks = [];
|
|
123
|
+
// Get appropriate separator to use
|
|
124
|
+
let separator = this.separators[this.separators.length - 1];
|
|
125
|
+
for (const s of this.separators) {
|
|
126
|
+
if (s === "") {
|
|
127
|
+
separator = s;
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
if (text.includes(s)) {
|
|
131
|
+
separator = s;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
// Now that we have the separator, split the text
|
|
136
|
+
let splits;
|
|
137
|
+
if (separator) {
|
|
138
|
+
splits = text.split(separator);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
splits = text.split("");
|
|
142
|
+
}
|
|
143
|
+
// Now go merging things, recursively splitting longer texts.
|
|
144
|
+
let goodSplits = [];
|
|
145
|
+
for (const s of splits) {
|
|
146
|
+
if (s.length < this.chunkSize) {
|
|
147
|
+
goodSplits.push(s);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
if (goodSplits.length) {
|
|
151
|
+
const mergedText = this.mergeSplits(goodSplits, separator);
|
|
152
|
+
finalChunks.push(...mergedText);
|
|
153
|
+
goodSplits = [];
|
|
154
|
+
}
|
|
155
|
+
const otherInfo = this.splitText(s);
|
|
156
|
+
finalChunks.push(...otherInfo);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (goodSplits.length) {
|
|
160
|
+
const mergedText = this.mergeSplits(goodSplits, separator);
|
|
161
|
+
finalChunks.push(...mergedText);
|
|
162
|
+
}
|
|
163
|
+
return finalChunks;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.RecursiveCharacterTextSplitter = RecursiveCharacterTextSplitter;
|
|
167
|
+
//# sourceMappingURL=text_splitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text_splitter.js","sourceRoot":"","sources":["../text_splitter.ts"],"names":[],"mappings":"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"}
|