langchain 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/agents/agent.d.ts +54 -0
- package/dist/cjs/agents/agent.js +81 -59
- package/dist/cjs/agents/agent.js.map +1 -1
- package/dist/cjs/agents/executor.d.ts +5 -0
- package/dist/cjs/agents/executor.js +36 -42
- package/dist/cjs/agents/executor.js.map +1 -1
- package/dist/cjs/agents/helpers.js +4 -13
- package/dist/cjs/agents/helpers.js.map +1 -1
- package/dist/cjs/agents/index.d.ts +1 -0
- package/dist/cjs/agents/index.js +5 -1
- package/dist/cjs/agents/index.js.map +1 -1
- package/dist/cjs/agents/initialize.d.ts +4 -0
- package/dist/cjs/agents/initialize.js +21 -0
- package/dist/cjs/agents/initialize.js.map +1 -0
- package/dist/cjs/agents/load.js +6 -15
- package/dist/cjs/agents/load.js.map +1 -1
- package/dist/cjs/agents/mrkl/index.d.ts +17 -0
- package/dist/cjs/agents/mrkl/index.js +21 -29
- package/dist/cjs/agents/mrkl/index.js.map +1 -1
- package/dist/cjs/agents/mrkl/prompt.js +0 -1
- package/dist/cjs/agents/mrkl/prompt.js.map +1 -1
- package/dist/cjs/agents/tests/agent.test.js +19 -15
- package/dist/cjs/agents/tests/agent.test.js.map +1 -1
- package/dist/cjs/agents/tests/calculator.test.d.ts +1 -0
- package/dist/cjs/agents/tests/calculator.test.js +30 -0
- package/dist/cjs/agents/tests/calculator.test.js.map +1 -0
- package/dist/cjs/agents/tools/base.d.ts +6 -0
- package/dist/cjs/agents/tools/base.js +15 -0
- package/dist/cjs/agents/tools/base.js.map +1 -0
- package/dist/cjs/agents/tools/calculator.d.ts +6 -0
- package/dist/cjs/agents/tools/calculator.js +33 -0
- package/dist/cjs/agents/tools/calculator.js.map +1 -0
- package/dist/cjs/agents/tools/index.d.ts +2 -6
- package/dist/cjs/agents/tools/index.js +5 -1
- package/dist/cjs/agents/tools/index.js.map +1 -1
- package/dist/cjs/agents/tools/serpapi.d.ts +18 -3
- package/dist/cjs/agents/tools/serpapi.js +88 -45
- package/dist/cjs/agents/tools/serpapi.js.map +1 -1
- package/dist/cjs/chains/base.d.ts +34 -4
- package/dist/cjs/chains/base.js +41 -3
- package/dist/cjs/chains/base.js.map +1 -1
- package/dist/cjs/chains/chat_vector_db_chain.d.ts +41 -0
- package/dist/cjs/chains/chat_vector_db_chain.js +132 -0
- package/dist/cjs/chains/chat_vector_db_chain.js.map +1 -0
- package/dist/cjs/chains/combine_docs_chain.d.ts +35 -0
- package/dist/cjs/chains/combine_docs_chain.js +75 -0
- package/dist/cjs/chains/combine_docs_chain.js.map +1 -0
- package/dist/cjs/chains/conversation.d.ts +12 -0
- package/dist/cjs/chains/conversation.js +29 -0
- package/dist/cjs/chains/conversation.js.map +1 -0
- package/dist/cjs/chains/index.d.ts +5 -1
- package/dist/cjs/chains/index.js +10 -1
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/chains/llm_chain.d.ts +35 -0
- package/dist/cjs/chains/llm_chain.js +66 -34
- package/dist/cjs/chains/llm_chain.js.map +1 -1
- package/dist/cjs/chains/load.d.ts +20 -1
- package/dist/cjs/chains/load.js +25 -17
- package/dist/cjs/chains/load.js.map +1 -1
- package/dist/cjs/chains/question_answering/load.d.ts +3 -0
- package/dist/cjs/chains/question_answering/load.js +13 -0
- package/dist/cjs/chains/question_answering/load.js.map +1 -0
- package/dist/cjs/chains/question_answering/stuff_prompts.d.ts +2 -0
- package/dist/cjs/chains/question_answering/stuff_prompts.js +10 -0
- package/dist/cjs/chains/question_answering/stuff_prompts.js.map +1 -0
- package/dist/cjs/chains/question_answering/tests/load.test.d.ts +1 -0
- package/dist/cjs/chains/question_answering/tests/load.test.js +14 -0
- package/dist/cjs/chains/question_answering/tests/load.test.js.map +1 -0
- package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.d.ts +1 -0
- package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js +35 -0
- package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
- package/dist/cjs/chains/tests/combine_docs_chain.test.d.ts +1 -0
- package/dist/cjs/chains/tests/combine_docs_chain.test.js +28 -0
- package/dist/cjs/chains/tests/combine_docs_chain.test.js.map +1 -0
- package/dist/cjs/chains/tests/llm_chain.test.js +13 -16
- package/dist/cjs/chains/tests/llm_chain.test.js.map +1 -1
- package/dist/cjs/chains/tests/vector_db_qa_chain.test.d.ts +1 -0
- package/dist/cjs/chains/tests/vector_db_qa_chain.test.js +46 -0
- package/dist/cjs/chains/tests/vector_db_qa_chain.test.js.map +1 -0
- package/dist/cjs/chains/vector_db_qa.d.ts +36 -0
- package/dist/cjs/chains/vector_db_qa.js +85 -0
- package/dist/cjs/chains/vector_db_qa.js.map +1 -0
- package/dist/cjs/document.d.ts +13 -0
- package/dist/cjs/document.js +28 -0
- package/dist/cjs/document.js.map +1 -0
- package/dist/cjs/embeddings/base.d.ts +4 -0
- package/dist/cjs/embeddings/base.js +7 -0
- package/dist/cjs/embeddings/base.js.map +1 -0
- package/dist/cjs/embeddings/index.d.ts +1 -0
- package/dist/cjs/embeddings/index.js +6 -0
- package/dist/cjs/embeddings/index.js.map +1 -0
- package/dist/cjs/embeddings/openai.d.ts +20 -0
- package/dist/cjs/embeddings/openai.js +86 -0
- package/dist/cjs/embeddings/openai.js.map +1 -0
- package/dist/cjs/embeddings/tests/openai.test.d.ts +1 -0
- package/dist/cjs/embeddings/tests/openai.test.js +17 -0
- package/dist/cjs/embeddings/tests/openai.test.js.map +1 -0
- package/dist/cjs/llms/base.d.ts +41 -0
- package/dist/cjs/llms/base.js +97 -92
- package/dist/cjs/llms/base.js.map +1 -1
- package/dist/cjs/llms/index.d.ts +19 -0
- package/dist/cjs/llms/load.d.ts +10 -2
- package/dist/cjs/llms/load.js +12 -4
- package/dist/cjs/llms/load.js.map +1 -1
- package/dist/cjs/llms/openai.d.ts +69 -7
- package/dist/cjs/llms/openai.js +96 -58
- package/dist/cjs/llms/openai.js.map +1 -1
- package/dist/cjs/llms/tests/openai.test.js +3 -12
- package/dist/cjs/llms/tests/openai.test.js.map +1 -1
- package/dist/cjs/memory/base.d.ts +7 -0
- package/dist/cjs/memory/base.js +7 -0
- package/dist/cjs/memory/base.js.map +1 -0
- package/dist/cjs/memory/buffer_memory.d.ts +15 -0
- package/dist/cjs/memory/buffer_memory.js +57 -0
- package/dist/cjs/memory/buffer_memory.js.map +1 -0
- package/dist/cjs/memory/index.d.ts +2 -0
- package/dist/cjs/memory/index.js +8 -0
- package/dist/cjs/memory/index.js.map +1 -0
- package/dist/cjs/memory/tests/buffer_memory.test.d.ts +1 -0
- package/dist/cjs/memory/tests/buffer_memory.test.js +17 -0
- package/dist/cjs/memory/tests/buffer_memory.test.js.map +1 -0
- package/dist/cjs/prompt/base.d.ts +39 -0
- package/dist/cjs/prompt/base.js +24 -25
- package/dist/cjs/prompt/base.js.map +1 -1
- package/dist/cjs/prompt/few_shot.d.ts +36 -1
- package/dist/cjs/prompt/few_shot.js +27 -33
- package/dist/cjs/prompt/few_shot.js.map +1 -1
- package/dist/cjs/prompt/index.d.ts +1 -0
- package/dist/cjs/prompt/index.js +3 -1
- package/dist/cjs/prompt/index.js.map +1 -1
- package/dist/cjs/prompt/load.d.ts +17 -0
- package/dist/cjs/prompt/load.js +21 -13
- package/dist/cjs/prompt/load.js.map +1 -1
- package/dist/cjs/prompt/parser.d.ts +30 -0
- package/dist/cjs/prompt/parser.js +21 -0
- package/dist/cjs/prompt/parser.js.map +1 -1
- package/dist/cjs/prompt/prompt.d.ts +48 -0
- package/dist/cjs/prompt/prompt.js +38 -18
- package/dist/cjs/prompt/prompt.js.map +1 -1
- package/dist/cjs/prompt/template.js.map +1 -1
- package/dist/cjs/prompt/tests/load.test.js +6 -15
- package/dist/cjs/prompt/tests/load.test.js.map +1 -1
- package/dist/cjs/text_splitter.d.ts +32 -0
- package/dist/cjs/text_splitter.js +165 -0
- package/dist/cjs/text_splitter.js.map +1 -0
- package/dist/cjs/text_splitter.test.d.ts +1 -0
- package/dist/cjs/text_splitter.test.js +87 -0
- package/dist/cjs/text_splitter.test.js.map +1 -0
- package/dist/cjs/util/hub.d.ts +2 -1
- package/dist/cjs/util/hub.js +5 -14
- package/dist/cjs/util/hub.js.map +1 -1
- package/dist/cjs/util/index.d.ts +1 -0
- package/dist/cjs/util/index.js +13 -25
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/cjs/vectorstores/base.d.ts +18 -0
- package/dist/cjs/vectorstores/base.js +38 -0
- package/dist/cjs/vectorstores/base.js.map +1 -0
- package/dist/cjs/vectorstores/hnswlib.d.ts +19 -0
- package/dist/cjs/vectorstores/hnswlib.js +126 -0
- package/dist/cjs/vectorstores/hnswlib.js.map +1 -0
- package/dist/cjs/vectorstores/index.d.ts +1 -0
- package/dist/cjs/vectorstores/index.js +6 -0
- package/dist/cjs/vectorstores/index.js.map +1 -0
- package/dist/cjs/vectorstores/tests/hnswlib.test.d.ts +1 -0
- package/dist/cjs/vectorstores/tests/hnswlib.test.js +44 -0
- package/dist/cjs/vectorstores/tests/hnswlib.test.js.map +1 -0
- package/dist/esm/agents/agent.d.ts +54 -0
- package/dist/esm/agents/agent.js +81 -59
- package/dist/esm/agents/agent.js.map +1 -1
- package/dist/esm/agents/executor.d.ts +5 -0
- package/dist/esm/agents/executor.js +36 -42
- package/dist/esm/agents/executor.js.map +1 -1
- package/dist/esm/agents/helpers.js +4 -13
- package/dist/esm/agents/helpers.js.map +1 -1
- package/dist/esm/agents/index.d.ts +1 -0
- package/dist/esm/agents/index.js +2 -0
- package/dist/esm/agents/index.js.map +1 -1
- package/dist/esm/agents/initialize.d.ts +4 -0
- package/dist/esm/agents/initialize.js +17 -0
- package/dist/esm/agents/initialize.js.map +1 -0
- package/dist/esm/agents/load.js +6 -15
- package/dist/esm/agents/load.js.map +1 -1
- package/dist/esm/agents/mrkl/index.d.ts +17 -0
- package/dist/esm/agents/mrkl/index.js +21 -29
- package/dist/esm/agents/mrkl/index.js.map +1 -1
- package/dist/esm/agents/mrkl/prompt.js +0 -1
- package/dist/esm/agents/mrkl/prompt.js.map +1 -1
- package/dist/esm/agents/tests/agent.test.js +19 -15
- package/dist/esm/agents/tests/agent.test.js.map +1 -1
- package/dist/esm/agents/tests/calculator.test.d.ts +1 -0
- package/dist/esm/agents/tests/calculator.test.js +28 -0
- package/dist/esm/agents/tests/calculator.test.js.map +1 -0
- package/dist/esm/agents/tools/base.d.ts +6 -0
- package/dist/esm/agents/tools/base.js +11 -0
- package/dist/esm/agents/tools/base.js.map +1 -0
- package/dist/esm/agents/tools/calculator.d.ts +6 -0
- package/dist/esm/agents/tools/calculator.js +29 -0
- package/dist/esm/agents/tools/calculator.js.map +1 -0
- package/dist/esm/agents/tools/index.d.ts +2 -6
- package/dist/esm/agents/tools/index.js +2 -0
- package/dist/esm/agents/tools/index.js.map +1 -1
- package/dist/esm/agents/tools/serpapi.d.ts +18 -3
- package/dist/esm/agents/tools/serpapi.js +88 -45
- package/dist/esm/agents/tools/serpapi.js.map +1 -1
- package/dist/esm/chains/base.d.ts +34 -4
- package/dist/esm/chains/base.js +42 -4
- package/dist/esm/chains/base.js.map +1 -1
- package/dist/esm/chains/chat_vector_db_chain.d.ts +41 -0
- package/dist/esm/chains/chat_vector_db_chain.js +128 -0
- package/dist/esm/chains/chat_vector_db_chain.js.map +1 -0
- package/dist/esm/chains/combine_docs_chain.d.ts +35 -0
- package/dist/esm/chains/combine_docs_chain.js +71 -0
- package/dist/esm/chains/combine_docs_chain.js.map +1 -0
- package/dist/esm/chains/conversation.d.ts +12 -0
- package/dist/esm/chains/conversation.js +25 -0
- package/dist/esm/chains/conversation.js.map +1 -0
- package/dist/esm/chains/index.d.ts +5 -1
- package/dist/esm/chains/index.js +5 -1
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/chains/llm_chain.d.ts +35 -0
- package/dist/esm/chains/llm_chain.js +65 -34
- package/dist/esm/chains/llm_chain.js.map +1 -1
- package/dist/esm/chains/load.d.ts +20 -1
- package/dist/esm/chains/load.js +25 -17
- package/dist/esm/chains/load.js.map +1 -1
- package/dist/esm/chains/question_answering/load.d.ts +3 -0
- package/dist/esm/chains/question_answering/load.js +9 -0
- package/dist/esm/chains/question_answering/load.js.map +1 -0
- package/dist/esm/chains/question_answering/stuff_prompts.d.ts +2 -0
- package/dist/esm/chains/question_answering/stuff_prompts.js +7 -0
- package/dist/esm/chains/question_answering/stuff_prompts.js.map +1 -0
- package/dist/esm/chains/question_answering/tests/load.test.d.ts +1 -0
- package/dist/esm/chains/question_answering/tests/load.test.js +12 -0
- package/dist/esm/chains/question_answering/tests/load.test.js.map +1 -0
- package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.d.ts +1 -0
- package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js +33 -0
- package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
- package/dist/esm/chains/tests/combine_docs_chain.test.d.ts +1 -0
- package/dist/esm/chains/tests/combine_docs_chain.test.js +26 -0
- package/dist/esm/chains/tests/combine_docs_chain.test.js.map +1 -0
- package/dist/esm/chains/tests/llm_chain.test.js +14 -17
- package/dist/esm/chains/tests/llm_chain.test.js.map +1 -1
- package/dist/esm/chains/tests/vector_db_qa_chain.test.d.ts +1 -0
- package/dist/esm/chains/tests/vector_db_qa_chain.test.js +44 -0
- package/dist/esm/chains/tests/vector_db_qa_chain.test.js.map +1 -0
- package/dist/esm/chains/vector_db_qa.d.ts +36 -0
- package/dist/esm/chains/vector_db_qa.js +81 -0
- package/dist/esm/chains/vector_db_qa.js.map +1 -0
- package/dist/esm/document.d.ts +13 -0
- package/dist/esm/document.js +24 -0
- package/dist/esm/document.js.map +1 -0
- package/dist/esm/embeddings/base.d.ts +4 -0
- package/dist/esm/embeddings/base.js +3 -0
- package/dist/esm/embeddings/base.js.map +1 -0
- package/dist/esm/embeddings/index.d.ts +1 -0
- package/dist/esm/embeddings/index.js +2 -0
- package/dist/esm/embeddings/index.js.map +1 -0
- package/dist/esm/embeddings/openai.d.ts +20 -0
- package/dist/esm/embeddings/openai.js +82 -0
- package/dist/esm/embeddings/openai.js.map +1 -0
- package/dist/esm/embeddings/tests/openai.test.d.ts +1 -0
- package/dist/esm/embeddings/tests/openai.test.js +15 -0
- package/dist/esm/embeddings/tests/openai.test.js.map +1 -0
- package/dist/esm/llms/base.d.ts +41 -0
- package/dist/esm/llms/base.js +97 -92
- package/dist/esm/llms/base.js.map +1 -1
- package/dist/esm/llms/index.d.ts +19 -0
- package/dist/esm/llms/load.d.ts +10 -2
- package/dist/esm/llms/load.js +10 -2
- package/dist/esm/llms/load.js.map +1 -1
- package/dist/esm/llms/openai.d.ts +69 -7
- package/dist/esm/llms/openai.js +96 -58
- package/dist/esm/llms/openai.js.map +1 -1
- package/dist/esm/llms/tests/openai.test.js +3 -12
- package/dist/esm/llms/tests/openai.test.js.map +1 -1
- package/dist/esm/memory/base.d.ts +7 -0
- package/dist/esm/memory/base.js +3 -0
- package/dist/esm/memory/base.js.map +1 -0
- package/dist/esm/memory/buffer_memory.d.ts +15 -0
- package/dist/esm/memory/buffer_memory.js +53 -0
- package/dist/esm/memory/buffer_memory.js.map +1 -0
- package/dist/esm/memory/index.d.ts +2 -0
- package/dist/esm/memory/index.js +3 -0
- package/dist/esm/memory/index.js.map +1 -0
- package/dist/esm/memory/tests/buffer_memory.test.d.ts +1 -0
- package/dist/esm/memory/tests/buffer_memory.test.js +15 -0
- package/dist/esm/memory/tests/buffer_memory.test.js.map +1 -0
- package/dist/esm/prompt/base.d.ts +39 -0
- package/dist/esm/prompt/base.js +24 -25
- package/dist/esm/prompt/base.js.map +1 -1
- package/dist/esm/prompt/few_shot.d.ts +36 -1
- package/dist/esm/prompt/few_shot.js +27 -33
- package/dist/esm/prompt/few_shot.js.map +1 -1
- package/dist/esm/prompt/index.d.ts +1 -0
- package/dist/esm/prompt/index.js +1 -0
- package/dist/esm/prompt/index.js.map +1 -1
- package/dist/esm/prompt/load.d.ts +17 -0
- package/dist/esm/prompt/load.js +21 -13
- package/dist/esm/prompt/load.js.map +1 -1
- package/dist/esm/prompt/parser.d.ts +30 -0
- package/dist/esm/prompt/parser.js +21 -0
- package/dist/esm/prompt/parser.js.map +1 -1
- package/dist/esm/prompt/prompt.d.ts +48 -0
- package/dist/esm/prompt/prompt.js +38 -18
- package/dist/esm/prompt/prompt.js.map +1 -1
- package/dist/esm/prompt/template.js.map +1 -1
- package/dist/esm/prompt/tests/load.test.js +6 -15
- package/dist/esm/prompt/tests/load.test.js.map +1 -1
- package/dist/esm/text_splitter.d.ts +32 -0
- package/dist/esm/text_splitter.js +160 -0
- package/dist/esm/text_splitter.js.map +1 -0
- package/dist/esm/text_splitter.test.d.ts +1 -0
- package/dist/esm/text_splitter.test.js +85 -0
- package/dist/esm/text_splitter.test.js.map +1 -0
- package/dist/esm/util/hub.d.ts +2 -1
- package/dist/esm/util/hub.js +5 -14
- package/dist/esm/util/hub.js.map +1 -1
- package/dist/esm/util/index.d.ts +1 -0
- package/dist/esm/util/index.js +11 -24
- package/dist/esm/util/index.js.map +1 -1
- package/dist/esm/vectorstores/base.d.ts +18 -0
- package/dist/esm/vectorstores/base.js +33 -0
- package/dist/esm/vectorstores/base.js.map +1 -0
- package/dist/esm/vectorstores/hnswlib.d.ts +19 -0
- package/dist/esm/vectorstores/hnswlib.js +119 -0
- package/dist/esm/vectorstores/hnswlib.js.map +1 -0
- package/dist/esm/vectorstores/index.d.ts +1 -0
- package/dist/esm/vectorstores/index.js +2 -0
- package/dist/esm/vectorstores/index.js.map +1 -0
- package/dist/esm/vectorstores/tests/hnswlib.test.d.ts +1 -0
- package/dist/esm/vectorstores/tests/hnswlib.test.js +39 -0
- package/dist/esm/vectorstores/tests/hnswlib.test.js.map +1 -0
- package/package.json +65 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"few_shot.js","sourceRoot":"","sources":["../../../prompt/few_shot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"few_shot.js","sourceRoot":"","sources":["../../../prompt/few_shot.ts"],"names":[],"mappings":"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"}
|
|
@@ -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";
|
package/dist/esm/prompt/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../prompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAInB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,cAAc,GAGf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,GAGtB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../prompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAInB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,cAAc,GAGf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,GAGtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -1,2 +1,19 @@
|
|
|
1
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/prompt";
|
|
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/prompt";
|
|
16
|
+
* const prompt = await loadPrompt("/path/to/prompt.json");
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
2
19
|
export declare const loadPrompt: (uri: string) => Promise<BasePromptTemplate>;
|
package/dist/esm/prompt/load.js
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { BasePromptTemplate } from ".";
|
|
11
2
|
import { loadFromHub } from "../util/hub";
|
|
12
3
|
import { parseFileConfig } from "../util";
|
|
13
|
-
const loadPromptFromFile = (file) =>
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
const loadPromptFromFile = async (file) => BasePromptTemplate.deserialize(parseFileConfig(file));
|
|
5
|
+
/**
|
|
6
|
+
* Load a prompt from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* Loading from LangchainHub:
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { loadPrompt } from "langchain/prompt";
|
|
12
|
+
* const prompt = await loadPrompt("lc://prompts/hello-world/prompt.yaml");
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* Loading from local filesystem:
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { loadPrompt } from "langchain/prompt";
|
|
19
|
+
* const prompt = await loadPrompt("/path/to/prompt.json");
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export const loadPrompt = async (uri) => {
|
|
23
|
+
const hubResult = await loadFromHub(uri, loadPromptFromFile, "prompts", new Set(["py", "json", "yaml"]));
|
|
16
24
|
if (hubResult) {
|
|
17
25
|
return hubResult;
|
|
18
26
|
}
|
|
19
27
|
return loadPromptFromFile(uri);
|
|
20
|
-
}
|
|
28
|
+
};
|
|
21
29
|
//# sourceMappingURL=load.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../prompt/load.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../../prompt/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE,CAChD,kBAAkB,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAA+B,EAAE;IAC3E,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,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"}
|
|
@@ -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,7 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class to parse the output of an LLM call.
|
|
3
|
+
*/
|
|
1
4
|
export class BaseOutputParser {
|
|
5
|
+
/**
|
|
6
|
+
* Return the string type key uniquely identifying this class of parser
|
|
7
|
+
*/
|
|
2
8
|
_type() {
|
|
3
9
|
throw new Error("_type not implemented");
|
|
4
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Load an output parser from a json-like object describing the parser.
|
|
13
|
+
*/
|
|
5
14
|
static deserialize(data) {
|
|
6
15
|
switch (data._type) {
|
|
7
16
|
case "regex_parser":
|
|
@@ -12,8 +21,16 @@ export class BaseOutputParser {
|
|
|
12
21
|
}
|
|
13
22
|
}
|
|
14
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Class to parse the output of an LLM call to a list.
|
|
26
|
+
* @augments BaseOutputParser
|
|
27
|
+
*/
|
|
15
28
|
export class ListOutputParser extends BaseOutputParser {
|
|
16
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Class to parse the output of an LLM call as a comma-separated list.
|
|
32
|
+
* @augments ListOutputParser
|
|
33
|
+
*/
|
|
17
34
|
export class CommaSeparatedListOutputParser extends ListOutputParser {
|
|
18
35
|
parse(text) {
|
|
19
36
|
return text.trim().split(", ");
|
|
@@ -27,6 +44,10 @@ export class CommaSeparatedListOutputParser extends ListOutputParser {
|
|
|
27
44
|
return new CommaSeparatedListOutputParser();
|
|
28
45
|
}
|
|
29
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Class to parse the output of an LLM call into a dictionary.
|
|
49
|
+
* @augments BaseOutputParser
|
|
50
|
+
*/
|
|
30
51
|
export class RegexParser extends BaseOutputParser {
|
|
31
52
|
constructor(regex, outputKeys, defaultOutputKey) {
|
|
32
53
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../prompt/parser.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../prompt/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,43 @@ export type SerializedPromptTemplate = {
|
|
|
9
9
|
template_path?: string;
|
|
10
10
|
template_format?: TemplateFormat;
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Inputs to create a {@link PromptTemplate}
|
|
14
|
+
* @augments BasePromptTemplateInput
|
|
15
|
+
*/
|
|
12
16
|
export interface PromptTemplateInput extends BasePromptTemplateInput {
|
|
17
|
+
/**
|
|
18
|
+
* The propmt template
|
|
19
|
+
*/
|
|
13
20
|
template: string;
|
|
21
|
+
/**
|
|
22
|
+
* The format of the prompt template. Options are 'f-string', 'jinja-2'
|
|
23
|
+
*
|
|
24
|
+
* @defaultValue 'f-string'
|
|
25
|
+
*/
|
|
14
26
|
templateFormat?: TemplateFormat;
|
|
27
|
+
/**
|
|
28
|
+
* Whether or not to try validating the template on initialization
|
|
29
|
+
*
|
|
30
|
+
* @defaultValue `true`
|
|
31
|
+
*/
|
|
15
32
|
validateTemplate?: boolean;
|
|
16
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/prompt";
|
|
42
|
+
*
|
|
43
|
+
* const prompt = new PromptTemplate({
|
|
44
|
+
* inputVariables: ["foo"],
|
|
45
|
+
* template: "Say {foo}",
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
17
49
|
export declare class PromptTemplate extends BasePromptTemplate implements PromptTemplateInput {
|
|
18
50
|
template: string;
|
|
19
51
|
templateFormat: TemplateFormat;
|
|
@@ -21,7 +53,23 @@ export declare class PromptTemplate extends BasePromptTemplate implements Prompt
|
|
|
21
53
|
constructor(input: PromptTemplateInput);
|
|
22
54
|
_getPromptType(): "prompt";
|
|
23
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
|
+
*/
|
|
24
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
|
+
*/
|
|
25
73
|
static fromTemplate(template: string): PromptTemplate;
|
|
26
74
|
serialize(): SerializedPromptTemplate;
|
|
27
75
|
static deserialize(data: SerializedPromptTemplate): Promise<PromptTemplate>;
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { BasePromptTemplate, } from "./index";
|
|
11
2
|
import { checkValidTemplate, renderTemplate, parseFString, } from "./template";
|
|
12
3
|
import { resolveTemplateFromFile } from "../util";
|
|
13
4
|
import { BaseOutputParser } from "./parser";
|
|
5
|
+
/**
|
|
6
|
+
* Schema to represent a basic prompt for an LLM.
|
|
7
|
+
* @augments BasePromptTemplate
|
|
8
|
+
* @augments PromptTemplateInput
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { PromptTemplate } from "@langchain/prompt";
|
|
13
|
+
*
|
|
14
|
+
* const prompt = new PromptTemplate({
|
|
15
|
+
* inputVariables: ["foo"],
|
|
16
|
+
* template: "Say {foo}",
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
14
20
|
export class PromptTemplate extends BasePromptTemplate {
|
|
15
21
|
constructor(input) {
|
|
16
22
|
super(input);
|
|
@@ -43,6 +49,19 @@ export class PromptTemplate extends BasePromptTemplate {
|
|
|
43
49
|
format(values) {
|
|
44
50
|
return renderTemplate(this.template, this.templateFormat, values);
|
|
45
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Take examples in list format with prefix and suffix to create a prompt.
|
|
54
|
+
*
|
|
55
|
+
* Intendend to be used a a way to dynamically create a prompt from examples.
|
|
56
|
+
*
|
|
57
|
+
* @param examples - List of examples to use in the prompt.
|
|
58
|
+
* @param suffix - String to go after the list of examples. Should generally set up the user's input.
|
|
59
|
+
* @param inputVariables - A list of variable names the final prompt template will expect
|
|
60
|
+
* @param exampleSeparator - The separator to use in between examples
|
|
61
|
+
* @param prefix - String that should go before any examples. Generally includes examples.
|
|
62
|
+
*
|
|
63
|
+
* @returns The final prompt template generated.
|
|
64
|
+
*/
|
|
46
65
|
static fromExamples(examples, suffix, inputVariables, exampleSeparator = "\n\n", prefix = "") {
|
|
47
66
|
const template = [prefix, ...examples, suffix].join(exampleSeparator);
|
|
48
67
|
return new PromptTemplate({
|
|
@@ -50,6 +69,9 @@ export class PromptTemplate extends BasePromptTemplate {
|
|
|
50
69
|
template,
|
|
51
70
|
});
|
|
52
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Load prompt template from a template f-string
|
|
74
|
+
*/
|
|
53
75
|
static fromTemplate(template) {
|
|
54
76
|
const names = new Set();
|
|
55
77
|
parseFString(template).forEach((node) => {
|
|
@@ -72,16 +94,14 @@ export class PromptTemplate extends BasePromptTemplate {
|
|
|
72
94
|
template_format: this.templateFormat,
|
|
73
95
|
};
|
|
74
96
|
}
|
|
75
|
-
static deserialize(data) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
templateFormat: data.template_format,
|
|
82
|
-
});
|
|
83
|
-
return res;
|
|
97
|
+
static async deserialize(data) {
|
|
98
|
+
const res = new PromptTemplate({
|
|
99
|
+
inputVariables: data.input_variables,
|
|
100
|
+
outputParser: data.output_parser && BaseOutputParser.deserialize(data.output_parser),
|
|
101
|
+
template: resolveTemplateFromFile("template", data),
|
|
102
|
+
templateFormat: data.template_format,
|
|
84
103
|
});
|
|
104
|
+
return res;
|
|
85
105
|
}
|
|
86
106
|
}
|
|
87
107
|
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../prompt/prompt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../prompt/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAGnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAA0B,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoCpE;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,cACX,SAAQ,kBAAkB;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,kBAAkB,CAChB,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,cAAc,CAAC,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,YAAY,CAAC,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,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;YACxE,QAAQ,EAAE,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC;YACnD,cAAc,EAAE,IAAI,CAAC,eAAe;SACrC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;CAGF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../prompt/template.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAuB,EAAE;IACpE,4EAA4E;IAC5E,+HAA+H;IAC/H,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,MAAM,WAAW,GAAG,CAAC,OAAyB,EAAE,KAAa,EAAE,EAAE;QAC/D,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC5C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC9B,OAAO,CAAC,CAAC;aACV;SACF;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;QACvB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;YACpE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,CAAC,IAAI,CAAC,CAAC;SACR;aAAM,IACL,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;YAChB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;YACpB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EACpB;YACA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,CAAC,IAAI,CAAC,CAAC;SACR;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC3B,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC9C;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;aACrC,CAAC,CAAC;YACH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACX;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;aAAM;YACL,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;SACpC;KACF;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../prompt/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { expect, test } from "@jest/globals";
|
|
11
2
|
import path from "path";
|
|
12
3
|
import { loadPrompt } from "../load";
|
|
13
4
|
const PROMPTS_DIR = path.join(__dirname, "prompts");
|
|
14
|
-
test("Load Hello World Prompt", () =>
|
|
5
|
+
test("Load Hello World Prompt", async () => {
|
|
15
6
|
const helloWorld = path.join(PROMPTS_DIR, "hello_world.yaml");
|
|
16
|
-
const prompt =
|
|
7
|
+
const prompt = await loadPrompt(helloWorld);
|
|
17
8
|
expect(prompt._getPromptType()).toBe("prompt");
|
|
18
9
|
expect(prompt.format({})).toBe("Say hello world.");
|
|
19
|
-
})
|
|
20
|
-
test("Load hub prompt", () =>
|
|
21
|
-
const prompt =
|
|
10
|
+
});
|
|
11
|
+
test("Load hub prompt", async () => {
|
|
12
|
+
const prompt = await loadPrompt("lc@abb92d8://prompts/hello-world/prompt.yaml");
|
|
22
13
|
expect(prompt._getPromptType()).toBe("prompt");
|
|
23
14
|
expect(prompt.format({})).toBe("Say hello world.");
|
|
24
|
-
})
|
|
15
|
+
});
|
|
25
16
|
//# sourceMappingURL=load.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.test.js","sourceRoot":"","sources":["../../../../prompt/tests/load.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load.test.js","sourceRoot":"","sources":["../../../../prompt/tests/load.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAEpD,IAAI,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;IACjC,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,8CAA8C,CAC/C,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACrD,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,160 @@
|
|
|
1
|
+
import { Document } from "./document";
|
|
2
|
+
class TextSplitter {
|
|
3
|
+
constructor(fields) {
|
|
4
|
+
var _a, _b;
|
|
5
|
+
Object.defineProperty(this, "chunkSize", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
configurable: true,
|
|
8
|
+
writable: true,
|
|
9
|
+
value: 1000
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(this, "chunkOverlap", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: 200
|
|
16
|
+
});
|
|
17
|
+
this.chunkSize = (_a = fields === null || fields === void 0 ? void 0 : fields.chunkSize) !== null && _a !== void 0 ? _a : this.chunkSize;
|
|
18
|
+
this.chunkOverlap = (_b = fields === null || fields === void 0 ? void 0 : fields.chunkOverlap) !== null && _b !== void 0 ? _b : this.chunkOverlap;
|
|
19
|
+
if (this.chunkOverlap >= this.chunkSize) {
|
|
20
|
+
throw new Error("Cannot have chunkOverlap >= chunkSize");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
createDocuments(texts, metadatas = []) {
|
|
24
|
+
const _metadatas = metadatas.length > 0 ? metadatas : new Array(texts.length).fill({});
|
|
25
|
+
const documents = new Array();
|
|
26
|
+
for (let i = 0; i < texts.length; i += 1) {
|
|
27
|
+
const text = texts[i];
|
|
28
|
+
for (const chunk of this.splitText(text)) {
|
|
29
|
+
documents.push(new Document({ pageContent: chunk, metadata: _metadatas[i] }));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return documents;
|
|
33
|
+
}
|
|
34
|
+
splitDocuments(documents) {
|
|
35
|
+
const texts = documents.map((doc) => doc.pageContent);
|
|
36
|
+
const metadatas = documents.map((doc) => doc.metadata);
|
|
37
|
+
return this.createDocuments(texts, metadatas);
|
|
38
|
+
}
|
|
39
|
+
joinDocs(docs, separator) {
|
|
40
|
+
const text = docs.join(separator).trim();
|
|
41
|
+
return text === "" ? null : text;
|
|
42
|
+
}
|
|
43
|
+
mergeSplits(splits, separator) {
|
|
44
|
+
const docs = [];
|
|
45
|
+
const currentDoc = [];
|
|
46
|
+
let total = 0;
|
|
47
|
+
for (const d of splits) {
|
|
48
|
+
const _len = d.length;
|
|
49
|
+
if (total + _len >= this.chunkSize) {
|
|
50
|
+
if (total > this.chunkSize) {
|
|
51
|
+
console.warn(`Created a chunk of size ${total}, +
|
|
52
|
+
which is longer than the specified ${this.chunkSize}`);
|
|
53
|
+
}
|
|
54
|
+
if (currentDoc.length > 0) {
|
|
55
|
+
const doc = this.joinDocs(currentDoc, separator);
|
|
56
|
+
if (doc !== null) {
|
|
57
|
+
docs.push(doc);
|
|
58
|
+
}
|
|
59
|
+
// Keep on popping if:
|
|
60
|
+
// - we have a larger chunk than in the chunk overlap
|
|
61
|
+
// - or if we still have any chunks and the length is long
|
|
62
|
+
while (total > this.chunkOverlap ||
|
|
63
|
+
(total + _len > this.chunkSize && total > 0)) {
|
|
64
|
+
total -= currentDoc[0].length;
|
|
65
|
+
currentDoc.shift();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
currentDoc.push(d);
|
|
70
|
+
total += _len;
|
|
71
|
+
}
|
|
72
|
+
const doc = this.joinDocs(currentDoc, separator);
|
|
73
|
+
if (doc !== null) {
|
|
74
|
+
docs.push(doc);
|
|
75
|
+
}
|
|
76
|
+
return docs;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export class CharacterTextSplitter extends TextSplitter {
|
|
80
|
+
constructor(fields) {
|
|
81
|
+
var _a;
|
|
82
|
+
super(fields);
|
|
83
|
+
Object.defineProperty(this, "separator", {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
configurable: true,
|
|
86
|
+
writable: true,
|
|
87
|
+
value: "\n\n"
|
|
88
|
+
});
|
|
89
|
+
this.separator = (_a = fields === null || fields === void 0 ? void 0 : fields.separator) !== null && _a !== void 0 ? _a : this.separator;
|
|
90
|
+
}
|
|
91
|
+
splitText(text) {
|
|
92
|
+
// First we naively split the large input into a bunch of smaller ones.
|
|
93
|
+
let splits;
|
|
94
|
+
if (this.separator) {
|
|
95
|
+
splits = text.split(this.separator);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
splits = text.split("");
|
|
99
|
+
}
|
|
100
|
+
return this.mergeSplits(splits, this.separator);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export class RecursiveCharacterTextSplitter extends TextSplitter {
|
|
104
|
+
constructor(fields) {
|
|
105
|
+
var _a;
|
|
106
|
+
super(fields);
|
|
107
|
+
Object.defineProperty(this, "separators", {
|
|
108
|
+
enumerable: true,
|
|
109
|
+
configurable: true,
|
|
110
|
+
writable: true,
|
|
111
|
+
value: ["\n\n", "\n", " ", ""]
|
|
112
|
+
});
|
|
113
|
+
this.separators = (_a = fields === null || fields === void 0 ? void 0 : fields.separators) !== null && _a !== void 0 ? _a : this.separators;
|
|
114
|
+
}
|
|
115
|
+
splitText(text) {
|
|
116
|
+
const finalChunks = [];
|
|
117
|
+
// Get appropriate separator to use
|
|
118
|
+
let separator = this.separators[this.separators.length - 1];
|
|
119
|
+
for (const s of this.separators) {
|
|
120
|
+
if (s === "") {
|
|
121
|
+
separator = s;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
if (text.includes(s)) {
|
|
125
|
+
separator = s;
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Now that we have the separator, split the text
|
|
130
|
+
let splits;
|
|
131
|
+
if (separator) {
|
|
132
|
+
splits = text.split(separator);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
splits = text.split("");
|
|
136
|
+
}
|
|
137
|
+
// Now go merging things, recursively splitting longer texts.
|
|
138
|
+
let goodSplits = [];
|
|
139
|
+
for (const s of splits) {
|
|
140
|
+
if (s.length < this.chunkSize) {
|
|
141
|
+
goodSplits.push(s);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
if (goodSplits.length) {
|
|
145
|
+
const mergedText = this.mergeSplits(goodSplits, separator);
|
|
146
|
+
finalChunks.push(...mergedText);
|
|
147
|
+
goodSplits = [];
|
|
148
|
+
}
|
|
149
|
+
const otherInfo = this.splitText(s);
|
|
150
|
+
finalChunks.push(...otherInfo);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (goodSplits.length) {
|
|
154
|
+
const mergedText = this.mergeSplits(goodSplits, separator);
|
|
155
|
+
finalChunks.push(...mergedText);
|
|
156
|
+
}
|
|
157
|
+
return finalChunks;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# 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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|