langchain 0.3.27__py3-none-any.whl → 1.0.0__py3-none-any.whl
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.
Potentially problematic release.
This version of langchain might be problematic. Click here for more details.
- langchain/__init__.py +2 -452
- langchain/agents/__init__.py +9 -178
- langchain/agents/factory.py +1582 -0
- langchain/agents/middleware/__init__.py +80 -0
- langchain/agents/middleware/_execution.py +388 -0
- langchain/agents/middleware/_redaction.py +350 -0
- langchain/agents/middleware/context_editing.py +274 -0
- langchain/agents/middleware/file_search.py +382 -0
- langchain/agents/middleware/human_in_the_loop.py +351 -0
- langchain/agents/middleware/model_call_limit.py +210 -0
- langchain/agents/middleware/model_fallback.py +137 -0
- langchain/agents/middleware/pii.py +317 -0
- langchain/agents/middleware/shell_tool.py +718 -0
- langchain/agents/middleware/summarization.py +249 -0
- langchain/agents/middleware/todo.py +219 -0
- langchain/agents/middleware/tool_call_limit.py +333 -0
- langchain/agents/middleware/tool_emulator.py +200 -0
- langchain/agents/middleware/tool_retry.py +384 -0
- langchain/agents/middleware/tool_selection.py +310 -0
- langchain/agents/middleware/types.py +1572 -0
- langchain/agents/structured_output.py +426 -0
- langchain/chat_models/__init__.py +7 -72
- langchain/chat_models/base.py +264 -317
- langchain/embeddings/__init__.py +7 -217
- langchain/embeddings/base.py +32 -42
- langchain/messages/__init__.py +72 -0
- langchain/rate_limiters/__init__.py +13 -0
- langchain/tools/__init__.py +17 -197
- langchain/tools/tool_node.py +1700 -0
- langchain-1.0.0.dist-info/METADATA +87 -0
- langchain-1.0.0.dist-info/RECORD +34 -0
- {langchain-0.3.27.dist-info → langchain-1.0.0.dist-info}/WHEEL +1 -1
- langchain/_api/__init__.py +0 -28
- langchain/_api/deprecation.py +0 -32
- langchain/_api/interactive_env.py +0 -5
- langchain/_api/module_import.py +0 -153
- langchain/_api/path.py +0 -3
- langchain/adapters/__init__.py +0 -0
- langchain/adapters/openai.py +0 -63
- langchain/agents/agent.py +0 -1828
- langchain/agents/agent_iterator.py +0 -431
- langchain/agents/agent_toolkits/__init__.py +0 -167
- langchain/agents/agent_toolkits/ainetwork/__init__.py +0 -1
- langchain/agents/agent_toolkits/ainetwork/toolkit.py +0 -25
- langchain/agents/agent_toolkits/amadeus/toolkit.py +0 -23
- langchain/agents/agent_toolkits/azure_cognitive_services.py +0 -29
- langchain/agents/agent_toolkits/base.py +0 -3
- langchain/agents/agent_toolkits/clickup/__init__.py +0 -0
- langchain/agents/agent_toolkits/clickup/toolkit.py +0 -25
- langchain/agents/agent_toolkits/conversational_retrieval/__init__.py +0 -0
- langchain/agents/agent_toolkits/conversational_retrieval/openai_functions.py +0 -87
- langchain/agents/agent_toolkits/conversational_retrieval/tool.py +0 -3
- langchain/agents/agent_toolkits/csv/__init__.py +0 -28
- langchain/agents/agent_toolkits/file_management/__init__.py +0 -31
- langchain/agents/agent_toolkits/file_management/toolkit.py +0 -29
- langchain/agents/agent_toolkits/github/__init__.py +0 -1
- langchain/agents/agent_toolkits/github/toolkit.py +0 -69
- langchain/agents/agent_toolkits/gitlab/__init__.py +0 -1
- langchain/agents/agent_toolkits/gitlab/toolkit.py +0 -25
- langchain/agents/agent_toolkits/gmail/__init__.py +0 -1
- langchain/agents/agent_toolkits/gmail/toolkit.py +0 -23
- langchain/agents/agent_toolkits/jira/__init__.py +0 -1
- langchain/agents/agent_toolkits/jira/toolkit.py +0 -23
- langchain/agents/agent_toolkits/json/__init__.py +0 -1
- langchain/agents/agent_toolkits/json/base.py +0 -25
- langchain/agents/agent_toolkits/json/prompt.py +0 -24
- langchain/agents/agent_toolkits/json/toolkit.py +0 -23
- langchain/agents/agent_toolkits/multion/__init__.py +0 -1
- langchain/agents/agent_toolkits/multion/toolkit.py +0 -25
- langchain/agents/agent_toolkits/nasa/__init__.py +0 -1
- langchain/agents/agent_toolkits/nasa/toolkit.py +0 -23
- langchain/agents/agent_toolkits/nla/__init__.py +0 -0
- langchain/agents/agent_toolkits/nla/tool.py +0 -23
- langchain/agents/agent_toolkits/nla/toolkit.py +0 -23
- langchain/agents/agent_toolkits/office365/__init__.py +0 -1
- langchain/agents/agent_toolkits/office365/toolkit.py +0 -25
- langchain/agents/agent_toolkits/openapi/__init__.py +0 -1
- langchain/agents/agent_toolkits/openapi/base.py +0 -25
- langchain/agents/agent_toolkits/openapi/planner.py +0 -52
- langchain/agents/agent_toolkits/openapi/planner_prompt.py +0 -103
- langchain/agents/agent_toolkits/openapi/prompt.py +0 -29
- langchain/agents/agent_toolkits/openapi/spec.py +0 -30
- langchain/agents/agent_toolkits/openapi/toolkit.py +0 -30
- langchain/agents/agent_toolkits/pandas/__init__.py +0 -28
- langchain/agents/agent_toolkits/playwright/__init__.py +0 -29
- langchain/agents/agent_toolkits/playwright/toolkit.py +0 -27
- langchain/agents/agent_toolkits/powerbi/__init__.py +0 -1
- langchain/agents/agent_toolkits/powerbi/base.py +0 -25
- langchain/agents/agent_toolkits/powerbi/chat_base.py +0 -27
- langchain/agents/agent_toolkits/powerbi/prompt.py +0 -36
- langchain/agents/agent_toolkits/powerbi/toolkit.py +0 -25
- langchain/agents/agent_toolkits/python/__init__.py +0 -28
- langchain/agents/agent_toolkits/slack/__init__.py +0 -1
- langchain/agents/agent_toolkits/slack/toolkit.py +0 -23
- langchain/agents/agent_toolkits/spark/__init__.py +0 -28
- langchain/agents/agent_toolkits/spark_sql/__init__.py +0 -1
- langchain/agents/agent_toolkits/spark_sql/base.py +0 -25
- langchain/agents/agent_toolkits/spark_sql/prompt.py +0 -27
- langchain/agents/agent_toolkits/spark_sql/toolkit.py +0 -25
- langchain/agents/agent_toolkits/sql/__init__.py +0 -1
- langchain/agents/agent_toolkits/sql/base.py +0 -23
- langchain/agents/agent_toolkits/sql/prompt.py +0 -29
- langchain/agents/agent_toolkits/sql/toolkit.py +0 -25
- langchain/agents/agent_toolkits/steam/__init__.py +0 -1
- langchain/agents/agent_toolkits/steam/toolkit.py +0 -23
- langchain/agents/agent_toolkits/vectorstore/__init__.py +0 -1
- langchain/agents/agent_toolkits/vectorstore/base.py +0 -217
- langchain/agents/agent_toolkits/vectorstore/prompt.py +0 -11
- langchain/agents/agent_toolkits/vectorstore/toolkit.py +0 -97
- langchain/agents/agent_toolkits/xorbits/__init__.py +0 -28
- langchain/agents/agent_toolkits/zapier/__init__.py +0 -1
- langchain/agents/agent_toolkits/zapier/toolkit.py +0 -25
- langchain/agents/agent_types.py +0 -57
- langchain/agents/chat/__init__.py +0 -0
- langchain/agents/chat/base.py +0 -178
- langchain/agents/chat/output_parser.py +0 -74
- langchain/agents/chat/prompt.py +0 -29
- langchain/agents/conversational/__init__.py +0 -1
- langchain/agents/conversational/base.py +0 -176
- langchain/agents/conversational/output_parser.py +0 -51
- langchain/agents/conversational/prompt.py +0 -35
- langchain/agents/conversational_chat/__init__.py +0 -1
- langchain/agents/conversational_chat/base.py +0 -181
- langchain/agents/conversational_chat/output_parser.py +0 -57
- langchain/agents/conversational_chat/prompt.py +0 -56
- langchain/agents/format_scratchpad/__init__.py +0 -25
- langchain/agents/format_scratchpad/log.py +0 -25
- langchain/agents/format_scratchpad/log_to_messages.py +0 -26
- langchain/agents/format_scratchpad/openai_functions.py +0 -80
- langchain/agents/format_scratchpad/openai_tools.py +0 -5
- langchain/agents/format_scratchpad/tools.py +0 -65
- langchain/agents/format_scratchpad/xml.py +0 -52
- langchain/agents/initialize.py +0 -105
- langchain/agents/json_chat/__init__.py +0 -0
- langchain/agents/json_chat/base.py +0 -195
- langchain/agents/json_chat/prompt.py +0 -8
- langchain/agents/load_tools.py +0 -13
- langchain/agents/loading.py +0 -148
- langchain/agents/mrkl/__init__.py +0 -1
- langchain/agents/mrkl/base.py +0 -216
- langchain/agents/mrkl/output_parser.py +0 -103
- langchain/agents/mrkl/prompt.py +0 -15
- langchain/agents/openai_assistant/__init__.py +0 -3
- langchain/agents/openai_assistant/base.py +0 -818
- langchain/agents/openai_functions_agent/__init__.py +0 -0
- langchain/agents/openai_functions_agent/agent_token_buffer_memory.py +0 -101
- langchain/agents/openai_functions_agent/base.py +0 -381
- langchain/agents/openai_functions_multi_agent/__init__.py +0 -0
- langchain/agents/openai_functions_multi_agent/base.py +0 -337
- langchain/agents/openai_tools/__init__.py +0 -0
- langchain/agents/openai_tools/base.py +0 -108
- langchain/agents/output_parsers/__init__.py +0 -35
- langchain/agents/output_parsers/json.py +0 -62
- langchain/agents/output_parsers/openai_functions.py +0 -96
- langchain/agents/output_parsers/openai_tools.py +0 -70
- langchain/agents/output_parsers/react_json_single_input.py +0 -84
- langchain/agents/output_parsers/react_single_input.py +0 -99
- langchain/agents/output_parsers/self_ask.py +0 -51
- langchain/agents/output_parsers/tools.py +0 -107
- langchain/agents/output_parsers/xml.py +0 -123
- langchain/agents/react/__init__.py +0 -1
- langchain/agents/react/agent.py +0 -144
- langchain/agents/react/base.py +0 -185
- langchain/agents/react/output_parser.py +0 -33
- langchain/agents/react/textworld_prompt.py +0 -51
- langchain/agents/react/wiki_prompt.py +0 -70
- langchain/agents/schema.py +0 -35
- langchain/agents/self_ask_with_search/__init__.py +0 -4
- langchain/agents/self_ask_with_search/base.py +0 -215
- langchain/agents/self_ask_with_search/output_parser.py +0 -4
- langchain/agents/self_ask_with_search/prompt.py +0 -43
- langchain/agents/structured_chat/__init__.py +0 -0
- langchain/agents/structured_chat/base.py +0 -304
- langchain/agents/structured_chat/output_parser.py +0 -99
- langchain/agents/structured_chat/prompt.py +0 -34
- langchain/agents/tool_calling_agent/__init__.py +0 -0
- langchain/agents/tool_calling_agent/base.py +0 -110
- langchain/agents/tools.py +0 -47
- langchain/agents/types.py +0 -27
- langchain/agents/utils.py +0 -19
- langchain/agents/xml/__init__.py +0 -0
- langchain/agents/xml/base.py +0 -231
- langchain/agents/xml/prompt.py +0 -21
- langchain/base_language.py +0 -7
- langchain/cache.py +0 -72
- langchain/callbacks/__init__.py +0 -139
- langchain/callbacks/aim_callback.py +0 -33
- langchain/callbacks/argilla_callback.py +0 -25
- langchain/callbacks/arize_callback.py +0 -25
- langchain/callbacks/arthur_callback.py +0 -25
- langchain/callbacks/base.py +0 -29
- langchain/callbacks/clearml_callback.py +0 -25
- langchain/callbacks/comet_ml_callback.py +0 -25
- langchain/callbacks/confident_callback.py +0 -25
- langchain/callbacks/context_callback.py +0 -25
- langchain/callbacks/file.py +0 -3
- langchain/callbacks/flyte_callback.py +0 -25
- langchain/callbacks/human.py +0 -33
- langchain/callbacks/infino_callback.py +0 -25
- langchain/callbacks/labelstudio_callback.py +0 -33
- langchain/callbacks/llmonitor_callback.py +0 -27
- langchain/callbacks/manager.py +0 -89
- langchain/callbacks/mlflow_callback.py +0 -38
- langchain/callbacks/openai_info.py +0 -25
- langchain/callbacks/promptlayer_callback.py +0 -27
- langchain/callbacks/sagemaker_callback.py +0 -27
- langchain/callbacks/stdout.py +0 -3
- langchain/callbacks/streaming_aiter.py +0 -75
- langchain/callbacks/streaming_aiter_final_only.py +0 -91
- langchain/callbacks/streaming_stdout.py +0 -5
- langchain/callbacks/streaming_stdout_final_only.py +0 -91
- langchain/callbacks/streamlit/__init__.py +0 -86
- langchain/callbacks/streamlit/mutable_expander.py +0 -33
- langchain/callbacks/streamlit/streamlit_callback_handler.py +0 -49
- langchain/callbacks/tracers/__init__.py +0 -38
- langchain/callbacks/tracers/base.py +0 -6
- langchain/callbacks/tracers/comet.py +0 -30
- langchain/callbacks/tracers/evaluation.py +0 -8
- langchain/callbacks/tracers/langchain.py +0 -8
- langchain/callbacks/tracers/langchain_v1.py +0 -3
- langchain/callbacks/tracers/log_stream.py +0 -9
- langchain/callbacks/tracers/logging.py +0 -46
- langchain/callbacks/tracers/root_listeners.py +0 -3
- langchain/callbacks/tracers/run_collector.py +0 -3
- langchain/callbacks/tracers/schemas.py +0 -27
- langchain/callbacks/tracers/stdout.py +0 -6
- langchain/callbacks/tracers/wandb.py +0 -27
- langchain/callbacks/trubrics_callback.py +0 -25
- langchain/callbacks/utils.py +0 -48
- langchain/callbacks/wandb_callback.py +0 -25
- langchain/callbacks/whylabs_callback.py +0 -25
- langchain/chains/__init__.py +0 -96
- langchain/chains/api/__init__.py +0 -1
- langchain/chains/api/base.py +0 -394
- langchain/chains/api/news_docs.py +0 -31
- langchain/chains/api/open_meteo_docs.py +0 -32
- langchain/chains/api/openapi/__init__.py +0 -0
- langchain/chains/api/openapi/chain.py +0 -23
- langchain/chains/api/openapi/prompts.py +0 -27
- langchain/chains/api/openapi/requests_chain.py +0 -29
- langchain/chains/api/openapi/response_chain.py +0 -29
- langchain/chains/api/podcast_docs.py +0 -27
- langchain/chains/api/prompt.py +0 -35
- langchain/chains/api/tmdb_docs.py +0 -36
- langchain/chains/base.py +0 -800
- langchain/chains/chat_vector_db/__init__.py +0 -0
- langchain/chains/chat_vector_db/prompts.py +0 -19
- langchain/chains/combine_documents/__init__.py +0 -15
- langchain/chains/combine_documents/base.py +0 -287
- langchain/chains/combine_documents/map_reduce.py +0 -300
- langchain/chains/combine_documents/map_rerank.py +0 -247
- langchain/chains/combine_documents/reduce.py +0 -381
- langchain/chains/combine_documents/refine.py +0 -236
- langchain/chains/combine_documents/stuff.py +0 -288
- langchain/chains/constitutional_ai/__init__.py +0 -2
- langchain/chains/constitutional_ai/base.py +0 -321
- langchain/chains/constitutional_ai/models.py +0 -11
- langchain/chains/constitutional_ai/principles.py +0 -278
- langchain/chains/constitutional_ai/prompts.py +0 -120
- langchain/chains/conversation/__init__.py +0 -1
- langchain/chains/conversation/base.py +0 -143
- langchain/chains/conversation/memory.py +0 -45
- langchain/chains/conversation/prompt.py +0 -28
- langchain/chains/conversational_retrieval/__init__.py +0 -1
- langchain/chains/conversational_retrieval/base.py +0 -568
- langchain/chains/conversational_retrieval/prompts.py +0 -19
- langchain/chains/elasticsearch_database/__init__.py +0 -3
- langchain/chains/elasticsearch_database/base.py +0 -211
- langchain/chains/elasticsearch_database/prompts.py +0 -35
- langchain/chains/ernie_functions/__init__.py +0 -44
- langchain/chains/ernie_functions/base.py +0 -49
- langchain/chains/example_generator.py +0 -22
- langchain/chains/flare/__init__.py +0 -1
- langchain/chains/flare/base.py +0 -282
- langchain/chains/flare/prompts.py +0 -44
- langchain/chains/graph_qa/__init__.py +0 -0
- langchain/chains/graph_qa/arangodb.py +0 -23
- langchain/chains/graph_qa/base.py +0 -23
- langchain/chains/graph_qa/cypher.py +0 -39
- langchain/chains/graph_qa/cypher_utils.py +0 -27
- langchain/chains/graph_qa/falkordb.py +0 -29
- langchain/chains/graph_qa/gremlin.py +0 -36
- langchain/chains/graph_qa/hugegraph.py +0 -23
- langchain/chains/graph_qa/kuzu.py +0 -29
- langchain/chains/graph_qa/nebulagraph.py +0 -23
- langchain/chains/graph_qa/neptune_cypher.py +0 -39
- langchain/chains/graph_qa/neptune_sparql.py +0 -36
- langchain/chains/graph_qa/ontotext_graphdb.py +0 -25
- langchain/chains/graph_qa/prompts.py +0 -96
- langchain/chains/graph_qa/sparql.py +0 -23
- langchain/chains/history_aware_retriever.py +0 -68
- langchain/chains/hyde/__init__.py +0 -4
- langchain/chains/hyde/base.py +0 -124
- langchain/chains/hyde/prompts.py +0 -46
- langchain/chains/llm.py +0 -442
- langchain/chains/llm_bash/__init__.py +0 -10
- langchain/chains/llm_checker/__init__.py +0 -4
- langchain/chains/llm_checker/base.py +0 -194
- langchain/chains/llm_checker/prompt.py +0 -30
- langchain/chains/llm_math/__init__.py +0 -4
- langchain/chains/llm_math/base.py +0 -311
- langchain/chains/llm_math/prompt.py +0 -43
- langchain/chains/llm_requests.py +0 -23
- langchain/chains/llm_summarization_checker/__init__.py +0 -7
- langchain/chains/llm_summarization_checker/base.py +0 -205
- langchain/chains/llm_summarization_checker/prompts/are_all_true_prompt.txt +0 -38
- langchain/chains/llm_summarization_checker/prompts/check_facts.txt +0 -10
- langchain/chains/llm_summarization_checker/prompts/create_facts.txt +0 -10
- langchain/chains/llm_summarization_checker/prompts/revise_summary.txt +0 -17
- langchain/chains/llm_symbolic_math/__init__.py +0 -10
- langchain/chains/loading.py +0 -732
- langchain/chains/mapreduce.py +0 -121
- langchain/chains/moderation.py +0 -132
- langchain/chains/natbot/__init__.py +0 -4
- langchain/chains/natbot/base.py +0 -163
- langchain/chains/natbot/crawler.py +0 -443
- langchain/chains/natbot/prompt.py +0 -143
- langchain/chains/openai_functions/__init__.py +0 -44
- langchain/chains/openai_functions/base.py +0 -235
- langchain/chains/openai_functions/citation_fuzzy_match.py +0 -160
- langchain/chains/openai_functions/extraction.py +0 -197
- langchain/chains/openai_functions/openapi.py +0 -405
- langchain/chains/openai_functions/qa_with_structure.py +0 -142
- langchain/chains/openai_functions/tagging.py +0 -172
- langchain/chains/openai_functions/utils.py +0 -40
- langchain/chains/openai_tools/__init__.py +0 -3
- langchain/chains/openai_tools/extraction.py +0 -79
- langchain/chains/prompt_selector.py +0 -65
- langchain/chains/qa_generation/__init__.py +0 -0
- langchain/chains/qa_generation/base.py +0 -124
- langchain/chains/qa_generation/prompt.py +0 -50
- langchain/chains/qa_with_sources/__init__.py +0 -5
- langchain/chains/qa_with_sources/base.py +0 -263
- langchain/chains/qa_with_sources/loading.py +0 -209
- langchain/chains/qa_with_sources/map_reduce_prompt.py +0 -54
- langchain/chains/qa_with_sources/refine_prompts.py +0 -37
- langchain/chains/qa_with_sources/retrieval.py +0 -75
- langchain/chains/qa_with_sources/stuff_prompt.py +0 -43
- langchain/chains/qa_with_sources/vector_db.py +0 -86
- langchain/chains/query_constructor/__init__.py +0 -3
- langchain/chains/query_constructor/base.py +0 -376
- langchain/chains/query_constructor/ir.py +0 -23
- langchain/chains/query_constructor/parser.py +0 -210
- langchain/chains/query_constructor/prompt.py +0 -226
- langchain/chains/query_constructor/schema.py +0 -14
- langchain/chains/question_answering/__init__.py +0 -6
- langchain/chains/question_answering/chain.py +0 -279
- langchain/chains/question_answering/map_reduce_prompt.py +0 -80
- langchain/chains/question_answering/map_rerank_prompt.py +0 -66
- langchain/chains/question_answering/refine_prompts.py +0 -72
- langchain/chains/question_answering/stuff_prompt.py +0 -33
- langchain/chains/retrieval.py +0 -67
- langchain/chains/retrieval_qa/__init__.py +0 -1
- langchain/chains/retrieval_qa/base.py +0 -370
- langchain/chains/retrieval_qa/prompt.py +0 -11
- langchain/chains/router/__init__.py +0 -12
- langchain/chains/router/base.py +0 -142
- langchain/chains/router/embedding_router.py +0 -93
- langchain/chains/router/llm_router.py +0 -196
- langchain/chains/router/multi_prompt.py +0 -181
- langchain/chains/router/multi_prompt_prompt.py +0 -32
- langchain/chains/router/multi_retrieval_prompt.py +0 -30
- langchain/chains/router/multi_retrieval_qa.py +0 -109
- langchain/chains/sequential.py +0 -220
- langchain/chains/sql_database/__init__.py +0 -1
- langchain/chains/sql_database/prompt.py +0 -282
- langchain/chains/sql_database/query.py +0 -166
- langchain/chains/structured_output/__init__.py +0 -6
- langchain/chains/structured_output/base.py +0 -582
- langchain/chains/summarize/__init__.py +0 -6
- langchain/chains/summarize/chain.py +0 -174
- langchain/chains/summarize/map_reduce_prompt.py +0 -10
- langchain/chains/summarize/refine_prompts.py +0 -23
- langchain/chains/summarize/stuff_prompt.py +0 -10
- langchain/chains/transform.py +0 -84
- langchain/chat_loaders/__init__.py +0 -19
- langchain/chat_loaders/base.py +0 -3
- langchain/chat_loaders/facebook_messenger.py +0 -32
- langchain/chat_loaders/gmail.py +0 -23
- langchain/chat_loaders/imessage.py +0 -23
- langchain/chat_loaders/langsmith.py +0 -30
- langchain/chat_loaders/slack.py +0 -23
- langchain/chat_loaders/telegram.py +0 -23
- langchain/chat_loaders/utils.py +0 -36
- langchain/chat_loaders/whatsapp.py +0 -23
- langchain/chat_models/anthropic.py +0 -30
- langchain/chat_models/anyscale.py +0 -23
- langchain/chat_models/azure_openai.py +0 -23
- langchain/chat_models/azureml_endpoint.py +0 -30
- langchain/chat_models/baichuan.py +0 -23
- langchain/chat_models/baidu_qianfan_endpoint.py +0 -27
- langchain/chat_models/bedrock.py +0 -27
- langchain/chat_models/cohere.py +0 -23
- langchain/chat_models/databricks.py +0 -23
- langchain/chat_models/ernie.py +0 -23
- langchain/chat_models/everlyai.py +0 -23
- langchain/chat_models/fake.py +0 -30
- langchain/chat_models/fireworks.py +0 -23
- langchain/chat_models/gigachat.py +0 -23
- langchain/chat_models/google_palm.py +0 -30
- langchain/chat_models/human.py +0 -23
- langchain/chat_models/hunyuan.py +0 -23
- langchain/chat_models/javelin_ai_gateway.py +0 -30
- langchain/chat_models/jinachat.py +0 -23
- langchain/chat_models/konko.py +0 -23
- langchain/chat_models/litellm.py +0 -30
- langchain/chat_models/meta.py +0 -25
- langchain/chat_models/minimax.py +0 -23
- langchain/chat_models/mlflow.py +0 -23
- langchain/chat_models/mlflow_ai_gateway.py +0 -30
- langchain/chat_models/ollama.py +0 -23
- langchain/chat_models/openai.py +0 -23
- langchain/chat_models/pai_eas_endpoint.py +0 -25
- langchain/chat_models/promptlayer_openai.py +0 -25
- langchain/chat_models/tongyi.py +0 -23
- langchain/chat_models/vertexai.py +0 -23
- langchain/chat_models/volcengine_maas.py +0 -30
- langchain/chat_models/yandex.py +0 -23
- langchain/docstore/__init__.py +0 -48
- langchain/docstore/arbitrary_fn.py +0 -23
- langchain/docstore/base.py +0 -27
- langchain/docstore/document.py +0 -3
- langchain/docstore/in_memory.py +0 -23
- langchain/docstore/wikipedia.py +0 -23
- langchain/document_loaders/__init__.py +0 -553
- langchain/document_loaders/acreom.py +0 -23
- langchain/document_loaders/airbyte.py +0 -48
- langchain/document_loaders/airbyte_json.py +0 -23
- langchain/document_loaders/airtable.py +0 -23
- langchain/document_loaders/apify_dataset.py +0 -23
- langchain/document_loaders/arcgis_loader.py +0 -23
- langchain/document_loaders/arxiv.py +0 -23
- langchain/document_loaders/assemblyai.py +0 -28
- langchain/document_loaders/async_html.py +0 -23
- langchain/document_loaders/azlyrics.py +0 -23
- langchain/document_loaders/azure_ai_data.py +0 -23
- langchain/document_loaders/azure_blob_storage_container.py +0 -25
- langchain/document_loaders/azure_blob_storage_file.py +0 -25
- langchain/document_loaders/baiducloud_bos_directory.py +0 -29
- langchain/document_loaders/baiducloud_bos_file.py +0 -27
- langchain/document_loaders/base.py +0 -3
- langchain/document_loaders/base_o365.py +0 -23
- langchain/document_loaders/bibtex.py +0 -23
- langchain/document_loaders/bigquery.py +0 -23
- langchain/document_loaders/bilibili.py +0 -23
- langchain/document_loaders/blackboard.py +0 -23
- langchain/document_loaders/blob_loaders/__init__.py +0 -36
- langchain/document_loaders/blob_loaders/file_system.py +0 -23
- langchain/document_loaders/blob_loaders/schema.py +0 -29
- langchain/document_loaders/blob_loaders/youtube_audio.py +0 -23
- langchain/document_loaders/blockchain.py +0 -28
- langchain/document_loaders/brave_search.py +0 -23
- langchain/document_loaders/browserless.py +0 -23
- langchain/document_loaders/chatgpt.py +0 -28
- langchain/document_loaders/chromium.py +0 -23
- langchain/document_loaders/college_confidential.py +0 -25
- langchain/document_loaders/concurrent.py +0 -23
- langchain/document_loaders/confluence.py +0 -28
- langchain/document_loaders/conllu.py +0 -23
- langchain/document_loaders/couchbase.py +0 -23
- langchain/document_loaders/csv_loader.py +0 -27
- langchain/document_loaders/cube_semantic.py +0 -23
- langchain/document_loaders/datadog_logs.py +0 -23
- langchain/document_loaders/dataframe.py +0 -28
- langchain/document_loaders/diffbot.py +0 -23
- langchain/document_loaders/directory.py +0 -23
- langchain/document_loaders/discord.py +0 -23
- langchain/document_loaders/docugami.py +0 -23
- langchain/document_loaders/docusaurus.py +0 -23
- langchain/document_loaders/dropbox.py +0 -23
- langchain/document_loaders/duckdb_loader.py +0 -23
- langchain/document_loaders/email.py +0 -30
- langchain/document_loaders/epub.py +0 -23
- langchain/document_loaders/etherscan.py +0 -23
- langchain/document_loaders/evernote.py +0 -23
- langchain/document_loaders/excel.py +0 -23
- langchain/document_loaders/facebook_chat.py +0 -28
- langchain/document_loaders/fauna.py +0 -23
- langchain/document_loaders/figma.py +0 -23
- langchain/document_loaders/gcs_directory.py +0 -23
- langchain/document_loaders/gcs_file.py +0 -23
- langchain/document_loaders/generic.py +0 -23
- langchain/document_loaders/geodataframe.py +0 -23
- langchain/document_loaders/git.py +0 -23
- langchain/document_loaders/gitbook.py +0 -23
- langchain/document_loaders/github.py +0 -28
- langchain/document_loaders/google_speech_to_text.py +0 -23
- langchain/document_loaders/googledrive.py +0 -23
- langchain/document_loaders/gutenberg.py +0 -23
- langchain/document_loaders/helpers.py +0 -30
- langchain/document_loaders/hn.py +0 -23
- langchain/document_loaders/html.py +0 -23
- langchain/document_loaders/html_bs.py +0 -23
- langchain/document_loaders/hugging_face_dataset.py +0 -23
- langchain/document_loaders/ifixit.py +0 -23
- langchain/document_loaders/image.py +0 -23
- langchain/document_loaders/image_captions.py +0 -23
- langchain/document_loaders/imsdb.py +0 -23
- langchain/document_loaders/iugu.py +0 -23
- langchain/document_loaders/joplin.py +0 -23
- langchain/document_loaders/json_loader.py +0 -23
- langchain/document_loaders/lakefs.py +0 -33
- langchain/document_loaders/larksuite.py +0 -23
- langchain/document_loaders/markdown.py +0 -25
- langchain/document_loaders/mastodon.py +0 -23
- langchain/document_loaders/max_compute.py +0 -23
- langchain/document_loaders/mediawikidump.py +0 -23
- langchain/document_loaders/merge.py +0 -23
- langchain/document_loaders/mhtml.py +0 -23
- langchain/document_loaders/modern_treasury.py +0 -23
- langchain/document_loaders/mongodb.py +0 -23
- langchain/document_loaders/news.py +0 -23
- langchain/document_loaders/notebook.py +0 -33
- langchain/document_loaders/notion.py +0 -23
- langchain/document_loaders/notiondb.py +0 -23
- langchain/document_loaders/nuclia.py +0 -23
- langchain/document_loaders/obs_directory.py +0 -23
- langchain/document_loaders/obs_file.py +0 -23
- langchain/document_loaders/obsidian.py +0 -23
- langchain/document_loaders/odt.py +0 -23
- langchain/document_loaders/onedrive.py +0 -23
- langchain/document_loaders/onedrive_file.py +0 -23
- langchain/document_loaders/onenote.py +0 -23
- langchain/document_loaders/open_city_data.py +0 -23
- langchain/document_loaders/org_mode.py +0 -25
- langchain/document_loaders/parsers/__init__.py +0 -58
- langchain/document_loaders/parsers/audio.py +0 -33
- langchain/document_loaders/parsers/docai.py +0 -30
- langchain/document_loaders/parsers/generic.py +0 -25
- langchain/document_loaders/parsers/grobid.py +0 -30
- langchain/document_loaders/parsers/html/__init__.py +0 -25
- langchain/document_loaders/parsers/html/bs4.py +0 -25
- langchain/document_loaders/parsers/language/__init__.py +0 -29
- langchain/document_loaders/parsers/language/cobol.py +0 -27
- langchain/document_loaders/parsers/language/code_segmenter.py +0 -29
- langchain/document_loaders/parsers/language/javascript.py +0 -29
- langchain/document_loaders/parsers/language/language_parser.py +0 -29
- langchain/document_loaders/parsers/language/python.py +0 -27
- langchain/document_loaders/parsers/msword.py +0 -25
- langchain/document_loaders/parsers/pdf.py +0 -50
- langchain/document_loaders/parsers/registry.py +0 -25
- langchain/document_loaders/parsers/txt.py +0 -23
- langchain/document_loaders/pdf.py +0 -65
- langchain/document_loaders/polars_dataframe.py +0 -23
- langchain/document_loaders/powerpoint.py +0 -25
- langchain/document_loaders/psychic.py +0 -23
- langchain/document_loaders/pubmed.py +0 -23
- langchain/document_loaders/pyspark_dataframe.py +0 -26
- langchain/document_loaders/python.py +0 -22
- langchain/document_loaders/quip.py +0 -23
- langchain/document_loaders/readthedocs.py +0 -23
- langchain/document_loaders/recursive_url_loader.py +0 -23
- langchain/document_loaders/reddit.py +0 -23
- langchain/document_loaders/roam.py +0 -23
- langchain/document_loaders/rocksetdb.py +0 -23
- langchain/document_loaders/rspace.py +0 -23
- langchain/document_loaders/rss.py +0 -23
- langchain/document_loaders/rst.py +0 -23
- langchain/document_loaders/rtf.py +0 -23
- langchain/document_loaders/s3_directory.py +0 -23
- langchain/document_loaders/s3_file.py +0 -23
- langchain/document_loaders/sharepoint.py +0 -23
- langchain/document_loaders/sitemap.py +0 -23
- langchain/document_loaders/slack_directory.py +0 -23
- langchain/document_loaders/snowflake_loader.py +0 -23
- langchain/document_loaders/spreedly.py +0 -23
- langchain/document_loaders/srt.py +0 -23
- langchain/document_loaders/stripe.py +0 -23
- langchain/document_loaders/telegram.py +0 -38
- langchain/document_loaders/tencent_cos_directory.py +0 -25
- langchain/document_loaders/tencent_cos_file.py +0 -23
- langchain/document_loaders/tensorflow_datasets.py +0 -23
- langchain/document_loaders/text.py +0 -23
- langchain/document_loaders/tomarkdown.py +0 -23
- langchain/document_loaders/toml.py +0 -23
- langchain/document_loaders/trello.py +0 -23
- langchain/document_loaders/tsv.py +0 -23
- langchain/document_loaders/twitter.py +0 -23
- langchain/document_loaders/unstructured.py +0 -54
- langchain/document_loaders/url.py +0 -23
- langchain/document_loaders/url_playwright.py +0 -33
- langchain/document_loaders/url_selenium.py +0 -23
- langchain/document_loaders/weather.py +0 -23
- langchain/document_loaders/web_base.py +0 -23
- langchain/document_loaders/whatsapp_chat.py +0 -28
- langchain/document_loaders/wikipedia.py +0 -23
- langchain/document_loaders/word_document.py +0 -30
- langchain/document_loaders/xml.py +0 -23
- langchain/document_loaders/xorbits.py +0 -23
- langchain/document_loaders/youtube.py +0 -33
- langchain/document_transformers/__init__.py +0 -77
- langchain/document_transformers/beautiful_soup_transformer.py +0 -25
- langchain/document_transformers/doctran_text_extract.py +0 -25
- langchain/document_transformers/doctran_text_qa.py +0 -25
- langchain/document_transformers/doctran_text_translate.py +0 -25
- langchain/document_transformers/embeddings_redundant_filter.py +0 -50
- langchain/document_transformers/google_translate.py +0 -25
- langchain/document_transformers/html2text.py +0 -25
- langchain/document_transformers/long_context_reorder.py +0 -23
- langchain/document_transformers/nuclia_text_transform.py +0 -25
- langchain/document_transformers/openai_functions.py +0 -32
- langchain/document_transformers/xsl/html_chunks_with_headers.xslt +0 -199
- langchain/embeddings/aleph_alpha.py +0 -30
- langchain/embeddings/awa.py +0 -23
- langchain/embeddings/azure_openai.py +0 -23
- langchain/embeddings/baidu_qianfan_endpoint.py +0 -23
- langchain/embeddings/bedrock.py +0 -23
- langchain/embeddings/bookend.py +0 -23
- langchain/embeddings/cache.py +0 -368
- langchain/embeddings/clarifai.py +0 -23
- langchain/embeddings/cloudflare_workersai.py +0 -29
- langchain/embeddings/cohere.py +0 -23
- langchain/embeddings/dashscope.py +0 -23
- langchain/embeddings/databricks.py +0 -23
- langchain/embeddings/deepinfra.py +0 -23
- langchain/embeddings/edenai.py +0 -23
- langchain/embeddings/elasticsearch.py +0 -23
- langchain/embeddings/embaas.py +0 -23
- langchain/embeddings/ernie.py +0 -23
- langchain/embeddings/fake.py +0 -30
- langchain/embeddings/fastembed.py +0 -23
- langchain/embeddings/google_palm.py +0 -23
- langchain/embeddings/gpt4all.py +0 -23
- langchain/embeddings/gradient_ai.py +0 -23
- langchain/embeddings/huggingface.py +0 -36
- langchain/embeddings/huggingface_hub.py +0 -23
- langchain/embeddings/infinity.py +0 -30
- langchain/embeddings/javelin_ai_gateway.py +0 -23
- langchain/embeddings/jina.py +0 -23
- langchain/embeddings/johnsnowlabs.py +0 -23
- langchain/embeddings/llamacpp.py +0 -23
- langchain/embeddings/llm_rails.py +0 -23
- langchain/embeddings/localai.py +0 -23
- langchain/embeddings/minimax.py +0 -23
- langchain/embeddings/mlflow.py +0 -23
- langchain/embeddings/mlflow_gateway.py +0 -23
- langchain/embeddings/modelscope_hub.py +0 -23
- langchain/embeddings/mosaicml.py +0 -23
- langchain/embeddings/nlpcloud.py +0 -23
- langchain/embeddings/octoai_embeddings.py +0 -23
- langchain/embeddings/ollama.py +0 -23
- langchain/embeddings/openai.py +0 -23
- langchain/embeddings/sagemaker_endpoint.py +0 -30
- langchain/embeddings/self_hosted.py +0 -23
- langchain/embeddings/self_hosted_hugging_face.py +0 -30
- langchain/embeddings/sentence_transformer.py +0 -21
- langchain/embeddings/spacy_embeddings.py +0 -23
- langchain/embeddings/tensorflow_hub.py +0 -23
- langchain/embeddings/vertexai.py +0 -23
- langchain/embeddings/voyageai.py +0 -23
- langchain/embeddings/xinference.py +0 -23
- langchain/env.py +0 -17
- langchain/evaluation/__init__.py +0 -128
- langchain/evaluation/agents/__init__.py +0 -5
- langchain/evaluation/agents/trajectory_eval_chain.py +0 -415
- langchain/evaluation/agents/trajectory_eval_prompt.py +0 -146
- langchain/evaluation/comparison/__init__.py +0 -36
- langchain/evaluation/comparison/eval_chain.py +0 -461
- langchain/evaluation/comparison/prompt.py +0 -59
- langchain/evaluation/criteria/__init__.py +0 -56
- langchain/evaluation/criteria/eval_chain.py +0 -603
- langchain/evaluation/criteria/prompt.py +0 -37
- langchain/evaluation/embedding_distance/__init__.py +0 -13
- langchain/evaluation/embedding_distance/base.py +0 -602
- langchain/evaluation/exact_match/__init__.py +0 -0
- langchain/evaluation/exact_match/base.py +0 -97
- langchain/evaluation/loading.py +0 -206
- langchain/evaluation/parsing/__init__.py +0 -0
- langchain/evaluation/parsing/base.py +0 -162
- langchain/evaluation/parsing/json_distance.py +0 -97
- langchain/evaluation/parsing/json_schema.py +0 -100
- langchain/evaluation/qa/__init__.py +0 -10
- langchain/evaluation/qa/eval_chain.py +0 -364
- langchain/evaluation/qa/eval_prompt.py +0 -78
- langchain/evaluation/qa/generate_chain.py +0 -34
- langchain/evaluation/qa/generate_prompt.py +0 -21
- langchain/evaluation/regex_match/__init__.py +0 -0
- langchain/evaluation/regex_match/base.py +0 -86
- langchain/evaluation/schema.py +0 -491
- langchain/evaluation/scoring/__init__.py +0 -31
- langchain/evaluation/scoring/eval_chain.py +0 -475
- langchain/evaluation/scoring/prompt.py +0 -53
- langchain/evaluation/string_distance/__init__.py +0 -13
- langchain/evaluation/string_distance/base.py +0 -466
- langchain/example_generator.py +0 -5
- langchain/formatting.py +0 -5
- langchain/globals.py +0 -180
- langchain/graphs/__init__.py +0 -57
- langchain/graphs/arangodb_graph.py +0 -28
- langchain/graphs/falkordb_graph.py +0 -23
- langchain/graphs/graph_document.py +0 -33
- langchain/graphs/graph_store.py +0 -23
- langchain/graphs/hugegraph.py +0 -23
- langchain/graphs/kuzu_graph.py +0 -23
- langchain/graphs/memgraph_graph.py +0 -23
- langchain/graphs/nebula_graph.py +0 -23
- langchain/graphs/neo4j_graph.py +0 -23
- langchain/graphs/neptune_graph.py +0 -23
- langchain/graphs/networkx_graph.py +0 -36
- langchain/graphs/rdf_graph.py +0 -23
- langchain/hub.py +0 -131
- langchain/indexes/__init__.py +0 -50
- langchain/indexes/_api.py +0 -5
- langchain/indexes/_sql_record_manager.py +0 -539
- langchain/indexes/graph.py +0 -28
- langchain/indexes/prompts/__init__.py +0 -13
- langchain/indexes/prompts/entity_extraction.py +0 -39
- langchain/indexes/prompts/entity_summarization.py +0 -24
- langchain/indexes/prompts/knowledge_triplet_extraction.py +0 -36
- langchain/indexes/vectorstore.py +0 -269
- langchain/input.py +0 -15
- langchain/llms/__init__.py +0 -734
- langchain/llms/ai21.py +0 -28
- langchain/llms/aleph_alpha.py +0 -23
- langchain/llms/amazon_api_gateway.py +0 -23
- langchain/llms/anthropic.py +0 -23
- langchain/llms/anyscale.py +0 -23
- langchain/llms/arcee.py +0 -23
- langchain/llms/aviary.py +0 -23
- langchain/llms/azureml_endpoint.py +0 -48
- langchain/llms/baidu_qianfan_endpoint.py +0 -23
- langchain/llms/bananadev.py +0 -23
- langchain/llms/base.py +0 -20
- langchain/llms/baseten.py +0 -23
- langchain/llms/beam.py +0 -23
- langchain/llms/bedrock.py +0 -28
- langchain/llms/bittensor.py +0 -23
- langchain/llms/cerebriumai.py +0 -23
- langchain/llms/chatglm.py +0 -23
- langchain/llms/clarifai.py +0 -23
- langchain/llms/cloudflare_workersai.py +0 -25
- langchain/llms/cohere.py +0 -23
- langchain/llms/ctransformers.py +0 -23
- langchain/llms/ctranslate2.py +0 -23
- langchain/llms/databricks.py +0 -23
- langchain/llms/deepinfra.py +0 -23
- langchain/llms/deepsparse.py +0 -23
- langchain/llms/edenai.py +0 -23
- langchain/llms/fake.py +0 -28
- langchain/llms/fireworks.py +0 -23
- langchain/llms/forefrontai.py +0 -23
- langchain/llms/gigachat.py +0 -23
- langchain/llms/google_palm.py +0 -23
- langchain/llms/gooseai.py +0 -23
- langchain/llms/gpt4all.py +0 -23
- langchain/llms/gradient_ai.py +0 -28
- langchain/llms/grammars/json.gbnf +0 -29
- langchain/llms/grammars/list.gbnf +0 -14
- langchain/llms/huggingface_endpoint.py +0 -23
- langchain/llms/huggingface_hub.py +0 -23
- langchain/llms/huggingface_pipeline.py +0 -23
- langchain/llms/huggingface_text_gen_inference.py +0 -23
- langchain/llms/human.py +0 -23
- langchain/llms/javelin_ai_gateway.py +0 -28
- langchain/llms/koboldai.py +0 -23
- langchain/llms/llamacpp.py +0 -23
- langchain/llms/loading.py +0 -27
- langchain/llms/manifest.py +0 -23
- langchain/llms/minimax.py +0 -23
- langchain/llms/mlflow.py +0 -23
- langchain/llms/mlflow_ai_gateway.py +0 -23
- langchain/llms/modal.py +0 -23
- langchain/llms/mosaicml.py +0 -23
- langchain/llms/nlpcloud.py +0 -23
- langchain/llms/octoai_endpoint.py +0 -23
- langchain/llms/ollama.py +0 -23
- langchain/llms/opaqueprompts.py +0 -23
- langchain/llms/openai.py +0 -32
- langchain/llms/openllm.py +0 -23
- langchain/llms/openlm.py +0 -23
- langchain/llms/pai_eas_endpoint.py +0 -23
- langchain/llms/petals.py +0 -23
- langchain/llms/pipelineai.py +0 -23
- langchain/llms/predibase.py +0 -23
- langchain/llms/predictionguard.py +0 -23
- langchain/llms/promptlayer_openai.py +0 -27
- langchain/llms/replicate.py +0 -23
- langchain/llms/rwkv.py +0 -23
- langchain/llms/sagemaker_endpoint.py +0 -28
- langchain/llms/self_hosted.py +0 -23
- langchain/llms/self_hosted_hugging_face.py +0 -23
- langchain/llms/stochasticai.py +0 -23
- langchain/llms/symblai_nebula.py +0 -23
- langchain/llms/textgen.py +0 -23
- langchain/llms/titan_takeoff.py +0 -23
- langchain/llms/titan_takeoff_pro.py +0 -23
- langchain/llms/together.py +0 -23
- langchain/llms/tongyi.py +0 -23
- langchain/llms/utils.py +0 -23
- langchain/llms/vertexai.py +0 -27
- langchain/llms/vllm.py +0 -27
- langchain/llms/volcengine_maas.py +0 -28
- langchain/llms/watsonxllm.py +0 -23
- langchain/llms/writer.py +0 -23
- langchain/llms/xinference.py +0 -23
- langchain/llms/yandex.py +0 -23
- langchain/load/__init__.py +0 -11
- langchain/load/dump.py +0 -3
- langchain/load/load.py +0 -3
- langchain/load/serializable.py +0 -19
- langchain/memory/__init__.py +0 -153
- langchain/memory/buffer.py +0 -173
- langchain/memory/buffer_window.py +0 -60
- langchain/memory/chat_memory.py +0 -104
- langchain/memory/chat_message_histories/__init__.py +0 -84
- langchain/memory/chat_message_histories/astradb.py +0 -25
- langchain/memory/chat_message_histories/cassandra.py +0 -25
- langchain/memory/chat_message_histories/cosmos_db.py +0 -25
- langchain/memory/chat_message_histories/dynamodb.py +0 -25
- langchain/memory/chat_message_histories/elasticsearch.py +0 -27
- langchain/memory/chat_message_histories/file.py +0 -25
- langchain/memory/chat_message_histories/firestore.py +0 -25
- langchain/memory/chat_message_histories/in_memory.py +0 -5
- langchain/memory/chat_message_histories/momento.py +0 -25
- langchain/memory/chat_message_histories/mongodb.py +0 -25
- langchain/memory/chat_message_histories/neo4j.py +0 -25
- langchain/memory/chat_message_histories/postgres.py +0 -25
- langchain/memory/chat_message_histories/redis.py +0 -25
- langchain/memory/chat_message_histories/rocksetdb.py +0 -25
- langchain/memory/chat_message_histories/singlestoredb.py +0 -27
- langchain/memory/chat_message_histories/sql.py +0 -33
- langchain/memory/chat_message_histories/streamlit.py +0 -25
- langchain/memory/chat_message_histories/upstash_redis.py +0 -27
- langchain/memory/chat_message_histories/xata.py +0 -25
- langchain/memory/chat_message_histories/zep.py +0 -25
- langchain/memory/combined.py +0 -85
- langchain/memory/entity.py +0 -564
- langchain/memory/kg.py +0 -23
- langchain/memory/motorhead_memory.py +0 -23
- langchain/memory/prompt.py +0 -164
- langchain/memory/readonly.py +0 -24
- langchain/memory/simple.py +0 -24
- langchain/memory/summary.py +0 -140
- langchain/memory/summary_buffer.py +0 -148
- langchain/memory/token_buffer.py +0 -72
- langchain/memory/utils.py +0 -21
- langchain/memory/vectorstore.py +0 -120
- langchain/memory/vectorstore_token_buffer_memory.py +0 -184
- langchain/memory/zep_memory.py +0 -23
- langchain/model_laboratory.py +0 -99
- langchain/output_parsers/__init__.py +0 -87
- langchain/output_parsers/boolean.py +0 -54
- langchain/output_parsers/combining.py +0 -57
- langchain/output_parsers/datetime.py +0 -58
- langchain/output_parsers/enum.py +0 -41
- langchain/output_parsers/ernie_functions.py +0 -45
- langchain/output_parsers/fix.py +0 -148
- langchain/output_parsers/format_instructions.py +0 -79
- langchain/output_parsers/json.py +0 -15
- langchain/output_parsers/list.py +0 -13
- langchain/output_parsers/loading.py +0 -22
- langchain/output_parsers/openai_functions.py +0 -13
- langchain/output_parsers/openai_tools.py +0 -7
- langchain/output_parsers/pandas_dataframe.py +0 -156
- langchain/output_parsers/prompts.py +0 -21
- langchain/output_parsers/pydantic.py +0 -3
- langchain/output_parsers/rail_parser.py +0 -25
- langchain/output_parsers/regex.py +0 -39
- langchain/output_parsers/regex_dict.py +0 -43
- langchain/output_parsers/retry.py +0 -296
- langchain/output_parsers/structured.py +0 -106
- langchain/output_parsers/xml.py +0 -3
- langchain/output_parsers/yaml.py +0 -73
- langchain/prompts/__init__.py +0 -102
- langchain/prompts/base.py +0 -21
- langchain/prompts/chat.py +0 -37
- langchain/prompts/example_selector/__init__.py +0 -42
- langchain/prompts/example_selector/base.py +0 -3
- langchain/prompts/example_selector/length_based.py +0 -5
- langchain/prompts/example_selector/ngram_overlap.py +0 -32
- langchain/prompts/example_selector/semantic_similarity.py +0 -11
- langchain/prompts/few_shot.py +0 -11
- langchain/prompts/few_shot_with_templates.py +0 -3
- langchain/prompts/loading.py +0 -23
- langchain/prompts/pipeline.py +0 -3
- langchain/prompts/prompt.py +0 -6
- langchain/pydantic_v1/__init__.py +0 -38
- langchain/pydantic_v1/dataclasses.py +0 -20
- langchain/pydantic_v1/main.py +0 -20
- langchain/python.py +0 -19
- langchain/requests.py +0 -35
- langchain/retrievers/__init__.py +0 -178
- langchain/retrievers/arcee.py +0 -23
- langchain/retrievers/arxiv.py +0 -23
- langchain/retrievers/azure_ai_search.py +0 -30
- langchain/retrievers/bedrock.py +0 -33
- langchain/retrievers/bm25.py +0 -28
- langchain/retrievers/chaindesk.py +0 -23
- langchain/retrievers/chatgpt_plugin_retriever.py +0 -23
- langchain/retrievers/cohere_rag_retriever.py +0 -23
- langchain/retrievers/contextual_compression.py +0 -81
- langchain/retrievers/databerry.py +0 -23
- langchain/retrievers/docarray.py +0 -28
- langchain/retrievers/document_compressors/__init__.py +0 -44
- langchain/retrievers/document_compressors/base.py +0 -82
- langchain/retrievers/document_compressors/chain_extract.py +0 -121
- langchain/retrievers/document_compressors/chain_extract_prompt.py +0 -10
- langchain/retrievers/document_compressors/chain_filter.py +0 -133
- langchain/retrievers/document_compressors/chain_filter_prompt.py +0 -8
- langchain/retrievers/document_compressors/cohere_rerank.py +0 -124
- langchain/retrievers/document_compressors/cross_encoder.py +0 -16
- langchain/retrievers/document_compressors/cross_encoder_rerank.py +0 -48
- langchain/retrievers/document_compressors/embeddings_filter.py +0 -137
- langchain/retrievers/document_compressors/flashrank_rerank.py +0 -27
- langchain/retrievers/document_compressors/listwise_rerank.py +0 -144
- langchain/retrievers/elastic_search_bm25.py +0 -23
- langchain/retrievers/embedchain.py +0 -23
- langchain/retrievers/ensemble.py +0 -336
- langchain/retrievers/google_cloud_documentai_warehouse.py +0 -25
- langchain/retrievers/google_vertex_ai_search.py +0 -33
- langchain/retrievers/kay.py +0 -23
- langchain/retrievers/kendra.py +0 -66
- langchain/retrievers/knn.py +0 -23
- langchain/retrievers/llama_index.py +0 -30
- langchain/retrievers/merger_retriever.py +0 -123
- langchain/retrievers/metal.py +0 -23
- langchain/retrievers/milvus.py +0 -28
- langchain/retrievers/multi_query.py +0 -231
- langchain/retrievers/multi_vector.py +0 -132
- langchain/retrievers/outline.py +0 -23
- langchain/retrievers/parent_document_retriever.py +0 -157
- langchain/retrievers/pinecone_hybrid_search.py +0 -23
- langchain/retrievers/pubmed.py +0 -23
- langchain/retrievers/pupmed.py +0 -23
- langchain/retrievers/re_phraser.py +0 -89
- langchain/retrievers/remote_retriever.py +0 -23
- langchain/retrievers/self_query/__init__.py +0 -0
- langchain/retrievers/self_query/astradb.py +0 -23
- langchain/retrievers/self_query/base.py +0 -397
- langchain/retrievers/self_query/chroma.py +0 -23
- langchain/retrievers/self_query/dashvector.py +0 -23
- langchain/retrievers/self_query/databricks_vector_search.py +0 -27
- langchain/retrievers/self_query/deeplake.py +0 -27
- langchain/retrievers/self_query/dingo.py +0 -23
- langchain/retrievers/self_query/elasticsearch.py +0 -25
- langchain/retrievers/self_query/milvus.py +0 -27
- langchain/retrievers/self_query/mongodb_atlas.py +0 -25
- langchain/retrievers/self_query/myscale.py +0 -23
- langchain/retrievers/self_query/opensearch.py +0 -23
- langchain/retrievers/self_query/pgvector.py +0 -23
- langchain/retrievers/self_query/pinecone.py +0 -23
- langchain/retrievers/self_query/qdrant.py +0 -23
- langchain/retrievers/self_query/redis.py +0 -23
- langchain/retrievers/self_query/supabase.py +0 -23
- langchain/retrievers/self_query/tencentvectordb.py +0 -27
- langchain/retrievers/self_query/timescalevector.py +0 -27
- langchain/retrievers/self_query/vectara.py +0 -27
- langchain/retrievers/self_query/weaviate.py +0 -23
- langchain/retrievers/svm.py +0 -23
- langchain/retrievers/tavily_search_api.py +0 -28
- langchain/retrievers/tfidf.py +0 -23
- langchain/retrievers/time_weighted_retriever.py +0 -193
- langchain/retrievers/vespa_retriever.py +0 -23
- langchain/retrievers/weaviate_hybrid_search.py +0 -23
- langchain/retrievers/web_research.py +0 -29
- langchain/retrievers/wikipedia.py +0 -23
- langchain/retrievers/you.py +0 -23
- langchain/retrievers/zep.py +0 -30
- langchain/retrievers/zilliz.py +0 -28
- langchain/runnables/__init__.py +0 -18
- langchain/runnables/hub.py +0 -32
- langchain/runnables/openai_functions.py +0 -51
- langchain/schema/__init__.py +0 -82
- langchain/schema/agent.py +0 -3
- langchain/schema/cache.py +0 -3
- langchain/schema/callbacks/__init__.py +0 -0
- langchain/schema/callbacks/base.py +0 -23
- langchain/schema/callbacks/manager.py +0 -55
- langchain/schema/callbacks/stdout.py +0 -3
- langchain/schema/callbacks/streaming_stdout.py +0 -3
- langchain/schema/callbacks/tracers/__init__.py +0 -0
- langchain/schema/callbacks/tracers/base.py +0 -4
- langchain/schema/callbacks/tracers/evaluation.py +0 -6
- langchain/schema/callbacks/tracers/langchain.py +0 -8
- langchain/schema/callbacks/tracers/langchain_v1.py +0 -3
- langchain/schema/callbacks/tracers/log_stream.py +0 -9
- langchain/schema/callbacks/tracers/root_listeners.py +0 -3
- langchain/schema/callbacks/tracers/run_collector.py +0 -3
- langchain/schema/callbacks/tracers/schemas.py +0 -27
- langchain/schema/callbacks/tracers/stdout.py +0 -13
- langchain/schema/chat.py +0 -3
- langchain/schema/chat_history.py +0 -3
- langchain/schema/document.py +0 -3
- langchain/schema/embeddings.py +0 -3
- langchain/schema/exceptions.py +0 -3
- langchain/schema/language_model.py +0 -15
- langchain/schema/memory.py +0 -3
- langchain/schema/messages.py +0 -51
- langchain/schema/output.py +0 -19
- langchain/schema/output_parser.py +0 -25
- langchain/schema/prompt.py +0 -3
- langchain/schema/prompt_template.py +0 -3
- langchain/schema/retriever.py +0 -3
- langchain/schema/runnable/__init__.py +0 -58
- langchain/schema/runnable/base.py +0 -38
- langchain/schema/runnable/branch.py +0 -3
- langchain/schema/runnable/config.py +0 -27
- langchain/schema/runnable/configurable.py +0 -15
- langchain/schema/runnable/fallbacks.py +0 -3
- langchain/schema/runnable/history.py +0 -11
- langchain/schema/runnable/passthrough.py +0 -8
- langchain/schema/runnable/retry.py +0 -3
- langchain/schema/runnable/router.py +0 -3
- langchain/schema/runnable/utils.py +0 -51
- langchain/schema/storage.py +0 -3
- langchain/schema/vectorstore.py +0 -3
- langchain/serpapi.py +0 -25
- langchain/smith/__init__.py +0 -102
- langchain/smith/evaluation/__init__.py +0 -68
- langchain/smith/evaluation/config.py +0 -382
- langchain/smith/evaluation/name_generation.py +0 -727
- langchain/smith/evaluation/progress.py +0 -137
- langchain/smith/evaluation/runner_utils.py +0 -1572
- langchain/smith/evaluation/string_run_evaluator.py +0 -440
- langchain/smith/evaluation/utils.py +0 -0
- langchain/sql_database.py +0 -25
- langchain/storage/__init__.py +0 -57
- langchain/storage/_lc_store.py +0 -91
- langchain/storage/encoder_backed.py +0 -127
- langchain/storage/exceptions.py +0 -3
- langchain/storage/file_system.py +0 -176
- langchain/storage/in_memory.py +0 -13
- langchain/storage/redis.py +0 -23
- langchain/storage/upstash_redis.py +0 -27
- langchain/text_splitter.py +0 -50
- langchain/tools/ainetwork/__init__.py +0 -0
- langchain/tools/ainetwork/app.py +0 -30
- langchain/tools/ainetwork/base.py +0 -27
- langchain/tools/ainetwork/owner.py +0 -28
- langchain/tools/ainetwork/rule.py +0 -28
- langchain/tools/ainetwork/transfer.py +0 -28
- langchain/tools/ainetwork/value.py +0 -28
- langchain/tools/amadeus/__init__.py +0 -30
- langchain/tools/amadeus/base.py +0 -23
- langchain/tools/amadeus/closest_airport.py +0 -30
- langchain/tools/amadeus/flight_search.py +0 -30
- langchain/tools/arxiv/__init__.py +0 -1
- langchain/tools/arxiv/tool.py +0 -28
- langchain/tools/azure_cognitive_services/__init__.py +0 -41
- langchain/tools/azure_cognitive_services/form_recognizer.py +0 -23
- langchain/tools/azure_cognitive_services/image_analysis.py +0 -23
- langchain/tools/azure_cognitive_services/speech2text.py +0 -23
- langchain/tools/azure_cognitive_services/text2speech.py +0 -23
- langchain/tools/azure_cognitive_services/text_analytics_health.py +0 -23
- langchain/tools/base.py +0 -19
- langchain/tools/bearly/__init__.py +0 -0
- langchain/tools/bearly/tool.py +0 -33
- langchain/tools/bing_search/__init__.py +0 -29
- langchain/tools/bing_search/tool.py +0 -27
- langchain/tools/brave_search/__init__.py +0 -0
- langchain/tools/brave_search/tool.py +0 -23
- langchain/tools/clickup/__init__.py +0 -0
- langchain/tools/clickup/tool.py +0 -23
- langchain/tools/convert_to_openai.py +0 -4
- langchain/tools/dataforseo_api_search/__init__.py +0 -34
- langchain/tools/dataforseo_api_search/tool.py +0 -32
- langchain/tools/ddg_search/__init__.py +0 -25
- langchain/tools/ddg_search/tool.py +0 -32
- langchain/tools/e2b_data_analysis/__init__.py +0 -0
- langchain/tools/e2b_data_analysis/tool.py +0 -33
- langchain/tools/edenai/__init__.py +0 -50
- langchain/tools/edenai/audio_speech_to_text.py +0 -23
- langchain/tools/edenai/audio_text_to_speech.py +0 -23
- langchain/tools/edenai/edenai_base_tool.py +0 -23
- langchain/tools/edenai/image_explicitcontent.py +0 -23
- langchain/tools/edenai/image_objectdetection.py +0 -23
- langchain/tools/edenai/ocr_identityparser.py +0 -23
- langchain/tools/edenai/ocr_invoiceparser.py +0 -23
- langchain/tools/edenai/text_moderation.py +0 -23
- langchain/tools/eleven_labs/__init__.py +0 -25
- langchain/tools/eleven_labs/models.py +0 -23
- langchain/tools/eleven_labs/text2speech.py +0 -23
- langchain/tools/file_management/__init__.py +0 -47
- langchain/tools/file_management/copy.py +0 -28
- langchain/tools/file_management/delete.py +0 -28
- langchain/tools/file_management/file_search.py +0 -28
- langchain/tools/file_management/list_dir.py +0 -28
- langchain/tools/file_management/move.py +0 -28
- langchain/tools/file_management/read.py +0 -28
- langchain/tools/file_management/write.py +0 -28
- langchain/tools/github/__init__.py +0 -1
- langchain/tools/github/tool.py +0 -23
- langchain/tools/gitlab/__init__.py +0 -1
- langchain/tools/gitlab/tool.py +0 -23
- langchain/tools/gmail/__init__.py +0 -41
- langchain/tools/gmail/base.py +0 -23
- langchain/tools/gmail/create_draft.py +0 -28
- langchain/tools/gmail/get_message.py +0 -28
- langchain/tools/gmail/get_thread.py +0 -28
- langchain/tools/gmail/search.py +0 -30
- langchain/tools/gmail/send_message.py +0 -28
- langchain/tools/golden_query/__init__.py +0 -25
- langchain/tools/golden_query/tool.py +0 -23
- langchain/tools/google_cloud/__init__.py +0 -25
- langchain/tools/google_cloud/texttospeech.py +0 -23
- langchain/tools/google_finance/__init__.py +0 -27
- langchain/tools/google_finance/tool.py +0 -25
- langchain/tools/google_jobs/__init__.py +0 -25
- langchain/tools/google_jobs/tool.py +0 -23
- langchain/tools/google_lens/__init__.py +0 -25
- langchain/tools/google_lens/tool.py +0 -23
- langchain/tools/google_places/__init__.py +0 -25
- langchain/tools/google_places/tool.py +0 -28
- langchain/tools/google_scholar/__init__.py +0 -27
- langchain/tools/google_scholar/tool.py +0 -25
- langchain/tools/google_search/__init__.py +0 -29
- langchain/tools/google_search/tool.py +0 -27
- langchain/tools/google_serper/__init__.py +0 -30
- langchain/tools/google_serper/tool.py +0 -27
- langchain/tools/google_trends/__init__.py +0 -27
- langchain/tools/google_trends/tool.py +0 -25
- langchain/tools/graphql/__init__.py +0 -1
- langchain/tools/graphql/tool.py +0 -23
- langchain/tools/human/__init__.py +0 -25
- langchain/tools/human/tool.py +0 -23
- langchain/tools/ifttt.py +0 -23
- langchain/tools/interaction/__init__.py +0 -1
- langchain/tools/interaction/tool.py +0 -23
- langchain/tools/jira/__init__.py +0 -1
- langchain/tools/jira/tool.py +0 -42
- langchain/tools/json/__init__.py +0 -1
- langchain/tools/json/tool.py +0 -52
- langchain/tools/memorize/__init__.py +0 -25
- langchain/tools/memorize/tool.py +0 -27
- langchain/tools/merriam_webster/__init__.py +0 -1
- langchain/tools/merriam_webster/tool.py +0 -23
- langchain/tools/metaphor_search/__init__.py +0 -25
- langchain/tools/metaphor_search/tool.py +0 -23
- langchain/tools/multion/__init__.py +0 -33
- langchain/tools/multion/close_session.py +0 -30
- langchain/tools/multion/create_session.py +0 -30
- langchain/tools/multion/update_session.py +0 -30
- langchain/tools/nasa/__init__.py +0 -0
- langchain/tools/nasa/tool.py +0 -23
- langchain/tools/nuclia/__init__.py +0 -23
- langchain/tools/nuclia/tool.py +0 -27
- langchain/tools/office365/__init__.py +0 -41
- langchain/tools/office365/base.py +0 -23
- langchain/tools/office365/create_draft_message.py +0 -32
- langchain/tools/office365/events_search.py +0 -28
- langchain/tools/office365/messages_search.py +0 -28
- langchain/tools/office365/send_event.py +0 -28
- langchain/tools/office365/send_message.py +0 -28
- langchain/tools/openapi/__init__.py +0 -0
- langchain/tools/openapi/utils/__init__.py +0 -0
- langchain/tools/openapi/utils/api_models.py +0 -54
- langchain/tools/openapi/utils/openapi_utils.py +0 -30
- langchain/tools/openweathermap/__init__.py +0 -25
- langchain/tools/openweathermap/tool.py +0 -23
- langchain/tools/playwright/__init__.py +0 -47
- langchain/tools/playwright/base.py +0 -23
- langchain/tools/playwright/click.py +0 -28
- langchain/tools/playwright/current_page.py +0 -23
- langchain/tools/playwright/extract_hyperlinks.py +0 -32
- langchain/tools/playwright/extract_text.py +0 -23
- langchain/tools/playwright/get_elements.py +0 -28
- langchain/tools/playwright/navigate.py +0 -28
- langchain/tools/playwright/navigate_back.py +0 -23
- langchain/tools/plugin.py +0 -32
- langchain/tools/powerbi/__init__.py +0 -1
- langchain/tools/powerbi/tool.py +0 -33
- langchain/tools/pubmed/__init__.py +0 -1
- langchain/tools/pubmed/tool.py +0 -23
- langchain/tools/python/__init__.py +0 -13
- langchain/tools/reddit_search/__init__.py +0 -0
- langchain/tools/reddit_search/tool.py +0 -27
- langchain/tools/render.py +0 -23
- langchain/tools/requests/__init__.py +0 -1
- langchain/tools/requests/tool.py +0 -42
- langchain/tools/retriever.py +0 -11
- langchain/tools/scenexplain/__init__.py +0 -1
- langchain/tools/scenexplain/tool.py +0 -28
- langchain/tools/searchapi/__init__.py +0 -30
- langchain/tools/searchapi/tool.py +0 -27
- langchain/tools/searx_search/__init__.py +0 -0
- langchain/tools/searx_search/tool.py +0 -27
- langchain/tools/shell/__init__.py +0 -25
- langchain/tools/shell/tool.py +0 -28
- langchain/tools/slack/__init__.py +0 -38
- langchain/tools/slack/base.py +0 -23
- langchain/tools/slack/get_channel.py +0 -23
- langchain/tools/slack/get_message.py +0 -28
- langchain/tools/slack/schedule_message.py +0 -28
- langchain/tools/slack/send_message.py +0 -28
- langchain/tools/sleep/__init__.py +0 -1
- langchain/tools/sleep/tool.py +0 -28
- langchain/tools/spark_sql/__init__.py +0 -1
- langchain/tools/spark_sql/tool.py +0 -39
- langchain/tools/sql_database/__init__.py +0 -1
- langchain/tools/sql_database/prompt.py +0 -24
- langchain/tools/sql_database/tool.py +0 -39
- langchain/tools/stackexchange/__init__.py +0 -1
- langchain/tools/stackexchange/tool.py +0 -23
- langchain/tools/steam/__init__.py +0 -1
- langchain/tools/steam/tool.py +0 -23
- langchain/tools/steamship_image_generation/__init__.py +0 -25
- langchain/tools/steamship_image_generation/tool.py +0 -28
- langchain/tools/tavily_search/__init__.py +0 -32
- langchain/tools/tavily_search/tool.py +0 -33
- langchain/tools/vectorstore/__init__.py +0 -1
- langchain/tools/vectorstore/tool.py +0 -30
- langchain/tools/wikipedia/__init__.py +0 -1
- langchain/tools/wikipedia/tool.py +0 -23
- langchain/tools/wolfram_alpha/__init__.py +0 -25
- langchain/tools/wolfram_alpha/tool.py +0 -23
- langchain/tools/yahoo_finance_news.py +0 -23
- langchain/tools/youtube/__init__.py +0 -0
- langchain/tools/youtube/search.py +0 -23
- langchain/tools/zapier/__init__.py +0 -29
- langchain/tools/zapier/tool.py +0 -49
- langchain/utilities/__init__.py +0 -168
- langchain/utilities/alpha_vantage.py +0 -23
- langchain/utilities/anthropic.py +0 -30
- langchain/utilities/apify.py +0 -23
- langchain/utilities/arcee.py +0 -45
- langchain/utilities/arxiv.py +0 -23
- langchain/utilities/asyncio.py +0 -11
- langchain/utilities/awslambda.py +0 -23
- langchain/utilities/bibtex.py +0 -23
- langchain/utilities/bing_search.py +0 -23
- langchain/utilities/brave_search.py +0 -23
- langchain/utilities/clickup.py +0 -45
- langchain/utilities/dalle_image_generator.py +0 -25
- langchain/utilities/dataforseo_api_search.py +0 -25
- langchain/utilities/duckduckgo_search.py +0 -23
- langchain/utilities/github.py +0 -23
- langchain/utilities/gitlab.py +0 -23
- langchain/utilities/golden_query.py +0 -23
- langchain/utilities/google_finance.py +0 -23
- langchain/utilities/google_jobs.py +0 -23
- langchain/utilities/google_lens.py +0 -23
- langchain/utilities/google_places_api.py +0 -23
- langchain/utilities/google_scholar.py +0 -23
- langchain/utilities/google_search.py +0 -23
- langchain/utilities/google_serper.py +0 -23
- langchain/utilities/google_trends.py +0 -23
- langchain/utilities/graphql.py +0 -23
- langchain/utilities/jira.py +0 -23
- langchain/utilities/loading.py +0 -4
- langchain/utilities/max_compute.py +0 -23
- langchain/utilities/merriam_webster.py +0 -23
- langchain/utilities/metaphor_search.py +0 -23
- langchain/utilities/nasa.py +0 -23
- langchain/utilities/opaqueprompts.py +0 -27
- langchain/utilities/openapi.py +0 -28
- langchain/utilities/openweathermap.py +0 -23
- langchain/utilities/outline.py +0 -23
- langchain/utilities/portkey.py +0 -23
- langchain/utilities/powerbi.py +0 -23
- langchain/utilities/pubmed.py +0 -23
- langchain/utilities/python.py +0 -19
- langchain/utilities/reddit_search.py +0 -25
- langchain/utilities/redis.py +0 -33
- langchain/utilities/requests.py +0 -27
- langchain/utilities/scenexplain.py +0 -23
- langchain/utilities/searchapi.py +0 -23
- langchain/utilities/searx_search.py +0 -28
- langchain/utilities/serpapi.py +0 -28
- langchain/utilities/spark_sql.py +0 -23
- langchain/utilities/sql_database.py +0 -28
- langchain/utilities/stackexchange.py +0 -23
- langchain/utilities/steam.py +0 -23
- langchain/utilities/tavily_search.py +0 -25
- langchain/utilities/tensorflow_datasets.py +0 -23
- langchain/utilities/twilio.py +0 -23
- langchain/utilities/vertexai.py +0 -36
- langchain/utilities/wikipedia.py +0 -23
- langchain/utilities/wolfram_alpha.py +0 -23
- langchain/utilities/zapier.py +0 -23
- langchain/utils/__init__.py +0 -77
- langchain/utils/aiter.py +0 -3
- langchain/utils/env.py +0 -3
- langchain/utils/ernie_functions.py +0 -36
- langchain/utils/formatting.py +0 -3
- langchain/utils/html.py +0 -19
- langchain/utils/input.py +0 -8
- langchain/utils/iter.py +0 -3
- langchain/utils/json_schema.py +0 -11
- langchain/utils/loading.py +0 -3
- langchain/utils/math.py +0 -32
- langchain/utils/openai.py +0 -23
- langchain/utils/openai_functions.py +0 -13
- langchain/utils/pydantic.py +0 -3
- langchain/utils/strings.py +0 -3
- langchain/utils/utils.py +0 -21
- langchain/vectorstores/__init__.py +0 -262
- langchain/vectorstores/alibabacloud_opensearch.py +0 -30
- langchain/vectorstores/analyticdb.py +0 -23
- langchain/vectorstores/annoy.py +0 -23
- langchain/vectorstores/astradb.py +0 -23
- langchain/vectorstores/atlas.py +0 -23
- langchain/vectorstores/awadb.py +0 -23
- langchain/vectorstores/azure_cosmos_db.py +0 -28
- langchain/vectorstores/azuresearch.py +0 -30
- langchain/vectorstores/bageldb.py +0 -23
- langchain/vectorstores/baiducloud_vector_search.py +0 -23
- langchain/vectorstores/base.py +0 -3
- langchain/vectorstores/cassandra.py +0 -23
- langchain/vectorstores/chroma.py +0 -23
- langchain/vectorstores/clarifai.py +0 -23
- langchain/vectorstores/clickhouse.py +0 -27
- langchain/vectorstores/dashvector.py +0 -23
- langchain/vectorstores/databricks_vector_search.py +0 -23
- langchain/vectorstores/deeplake.py +0 -23
- langchain/vectorstores/dingo.py +0 -23
- langchain/vectorstores/docarray/__init__.py +0 -30
- langchain/vectorstores/docarray/base.py +0 -23
- langchain/vectorstores/docarray/hnsw.py +0 -23
- langchain/vectorstores/docarray/in_memory.py +0 -23
- langchain/vectorstores/elastic_vector_search.py +0 -27
- langchain/vectorstores/elasticsearch.py +0 -39
- langchain/vectorstores/epsilla.py +0 -23
- langchain/vectorstores/faiss.py +0 -23
- langchain/vectorstores/hippo.py +0 -23
- langchain/vectorstores/hologres.py +0 -23
- langchain/vectorstores/lancedb.py +0 -23
- langchain/vectorstores/llm_rails.py +0 -28
- langchain/vectorstores/marqo.py +0 -23
- langchain/vectorstores/matching_engine.py +0 -23
- langchain/vectorstores/meilisearch.py +0 -23
- langchain/vectorstores/milvus.py +0 -23
- langchain/vectorstores/momento_vector_index.py +0 -23
- langchain/vectorstores/mongodb_atlas.py +0 -23
- langchain/vectorstores/myscale.py +0 -30
- langchain/vectorstores/neo4j_vector.py +0 -28
- langchain/vectorstores/nucliadb.py +0 -23
- langchain/vectorstores/opensearch_vector_search.py +0 -23
- langchain/vectorstores/pgembedding.py +0 -36
- langchain/vectorstores/pgvecto_rs.py +0 -23
- langchain/vectorstores/pgvector.py +0 -28
- langchain/vectorstores/pinecone.py +0 -23
- langchain/vectorstores/qdrant.py +0 -28
- langchain/vectorstores/redis/__init__.py +0 -42
- langchain/vectorstores/redis/base.py +0 -33
- langchain/vectorstores/redis/filters.py +0 -48
- langchain/vectorstores/redis/schema.py +0 -54
- langchain/vectorstores/rocksetdb.py +0 -23
- langchain/vectorstores/scann.py +0 -23
- langchain/vectorstores/semadb.py +0 -23
- langchain/vectorstores/singlestoredb.py +0 -23
- langchain/vectorstores/sklearn.py +0 -42
- langchain/vectorstores/sqlitevss.py +0 -23
- langchain/vectorstores/starrocks.py +0 -28
- langchain/vectorstores/supabase.py +0 -23
- langchain/vectorstores/tair.py +0 -23
- langchain/vectorstores/tencentvectordb.py +0 -33
- langchain/vectorstores/tigris.py +0 -23
- langchain/vectorstores/tiledb.py +0 -23
- langchain/vectorstores/timescalevector.py +0 -23
- langchain/vectorstores/typesense.py +0 -23
- langchain/vectorstores/usearch.py +0 -23
- langchain/vectorstores/utils.py +0 -33
- langchain/vectorstores/vald.py +0 -23
- langchain/vectorstores/vearch.py +0 -23
- langchain/vectorstores/vectara.py +0 -28
- langchain/vectorstores/vespa.py +0 -23
- langchain/vectorstores/weaviate.py +0 -23
- langchain/vectorstores/xata.py +0 -23
- langchain/vectorstores/yellowbrick.py +0 -23
- langchain/vectorstores/zep.py +0 -28
- langchain/vectorstores/zilliz.py +0 -23
- langchain-0.3.27.dist-info/METADATA +0 -144
- langchain-0.3.27.dist-info/RECORD +0 -1342
- langchain-0.3.27.dist-info/entry_points.txt +0 -4
- {langchain-0.3.27.dist-info → langchain-1.0.0.dist-info}/licenses/LICENSE +0 -0
langchain/memory/vectorstore.py
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"""Class for a VectorStore-backed memory object."""
|
|
2
|
-
|
|
3
|
-
from collections.abc import Sequence
|
|
4
|
-
from typing import Any, Optional, Union
|
|
5
|
-
|
|
6
|
-
from langchain_core._api import deprecated
|
|
7
|
-
from langchain_core.documents import Document
|
|
8
|
-
from langchain_core.memory import BaseMemory
|
|
9
|
-
from langchain_core.vectorstores import VectorStoreRetriever
|
|
10
|
-
from pydantic import Field
|
|
11
|
-
|
|
12
|
-
from langchain.memory.utils import get_prompt_input_key
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@deprecated(
|
|
16
|
-
since="0.3.1",
|
|
17
|
-
removal="1.0.0",
|
|
18
|
-
message=(
|
|
19
|
-
"Please see the migration guide at: "
|
|
20
|
-
"https://python.langchain.com/docs/versions/migrating_memory/"
|
|
21
|
-
),
|
|
22
|
-
)
|
|
23
|
-
class VectorStoreRetrieverMemory(BaseMemory):
|
|
24
|
-
"""Store the conversation history in a vector store and retrieves the relevant
|
|
25
|
-
parts of past conversation based on the input.
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
retriever: VectorStoreRetriever = Field(exclude=True)
|
|
29
|
-
"""VectorStoreRetriever object to connect to."""
|
|
30
|
-
|
|
31
|
-
memory_key: str = "history" #: :meta private:
|
|
32
|
-
"""Key name to locate the memories in the result of load_memory_variables."""
|
|
33
|
-
|
|
34
|
-
input_key: Optional[str] = None
|
|
35
|
-
"""Key name to index the inputs to load_memory_variables."""
|
|
36
|
-
|
|
37
|
-
return_docs: bool = False
|
|
38
|
-
"""Whether or not to return the result of querying the database directly."""
|
|
39
|
-
|
|
40
|
-
exclude_input_keys: Sequence[str] = Field(default_factory=tuple)
|
|
41
|
-
"""Input keys to exclude in addition to memory key when constructing the document"""
|
|
42
|
-
|
|
43
|
-
@property
|
|
44
|
-
def memory_variables(self) -> list[str]:
|
|
45
|
-
"""The list of keys emitted from the load_memory_variables method."""
|
|
46
|
-
return [self.memory_key]
|
|
47
|
-
|
|
48
|
-
def _get_prompt_input_key(self, inputs: dict[str, Any]) -> str:
|
|
49
|
-
"""Get the input key for the prompt."""
|
|
50
|
-
if self.input_key is None:
|
|
51
|
-
return get_prompt_input_key(inputs, self.memory_variables)
|
|
52
|
-
return self.input_key
|
|
53
|
-
|
|
54
|
-
def _documents_to_memory_variables(
|
|
55
|
-
self,
|
|
56
|
-
docs: list[Document],
|
|
57
|
-
) -> dict[str, Union[list[Document], str]]:
|
|
58
|
-
result: Union[list[Document], str]
|
|
59
|
-
if not self.return_docs:
|
|
60
|
-
result = "\n".join([doc.page_content for doc in docs])
|
|
61
|
-
else:
|
|
62
|
-
result = docs
|
|
63
|
-
return {self.memory_key: result}
|
|
64
|
-
|
|
65
|
-
def load_memory_variables(
|
|
66
|
-
self,
|
|
67
|
-
inputs: dict[str, Any],
|
|
68
|
-
) -> dict[str, Union[list[Document], str]]:
|
|
69
|
-
"""Return history buffer."""
|
|
70
|
-
input_key = self._get_prompt_input_key(inputs)
|
|
71
|
-
query = inputs[input_key]
|
|
72
|
-
docs = self.retriever.invoke(query)
|
|
73
|
-
return self._documents_to_memory_variables(docs)
|
|
74
|
-
|
|
75
|
-
async def aload_memory_variables(
|
|
76
|
-
self,
|
|
77
|
-
inputs: dict[str, Any],
|
|
78
|
-
) -> dict[str, Union[list[Document], str]]:
|
|
79
|
-
"""Return history buffer."""
|
|
80
|
-
input_key = self._get_prompt_input_key(inputs)
|
|
81
|
-
query = inputs[input_key]
|
|
82
|
-
docs = await self.retriever.ainvoke(query)
|
|
83
|
-
return self._documents_to_memory_variables(docs)
|
|
84
|
-
|
|
85
|
-
def _form_documents(
|
|
86
|
-
self,
|
|
87
|
-
inputs: dict[str, Any],
|
|
88
|
-
outputs: dict[str, str],
|
|
89
|
-
) -> list[Document]:
|
|
90
|
-
"""Format context from this conversation to buffer."""
|
|
91
|
-
# Each document should only include the current turn, not the chat history
|
|
92
|
-
exclude = set(self.exclude_input_keys)
|
|
93
|
-
exclude.add(self.memory_key)
|
|
94
|
-
filtered_inputs = {k: v for k, v in inputs.items() if k not in exclude}
|
|
95
|
-
texts = [
|
|
96
|
-
f"{k}: {v}"
|
|
97
|
-
for k, v in list(filtered_inputs.items()) + list(outputs.items())
|
|
98
|
-
]
|
|
99
|
-
page_content = "\n".join(texts)
|
|
100
|
-
return [Document(page_content=page_content)]
|
|
101
|
-
|
|
102
|
-
def save_context(self, inputs: dict[str, Any], outputs: dict[str, str]) -> None:
|
|
103
|
-
"""Save context from this conversation to buffer."""
|
|
104
|
-
documents = self._form_documents(inputs, outputs)
|
|
105
|
-
self.retriever.add_documents(documents)
|
|
106
|
-
|
|
107
|
-
async def asave_context(
|
|
108
|
-
self,
|
|
109
|
-
inputs: dict[str, Any],
|
|
110
|
-
outputs: dict[str, str],
|
|
111
|
-
) -> None:
|
|
112
|
-
"""Save context from this conversation to buffer."""
|
|
113
|
-
documents = self._form_documents(inputs, outputs)
|
|
114
|
-
await self.retriever.aadd_documents(documents)
|
|
115
|
-
|
|
116
|
-
def clear(self) -> None:
|
|
117
|
-
"""Nothing to clear."""
|
|
118
|
-
|
|
119
|
-
async def aclear(self) -> None:
|
|
120
|
-
"""Nothing to clear."""
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Class for a conversation memory buffer with older messages stored in a vectorstore .
|
|
3
|
-
|
|
4
|
-
This implements a conversation memory in which the messages are stored in a memory
|
|
5
|
-
buffer up to a specified token limit. When the limit is exceeded, older messages are
|
|
6
|
-
saved to a vectorstore backing database. The vectorstore can be made persistent across
|
|
7
|
-
sessions.
|
|
8
|
-
"""
|
|
9
|
-
|
|
10
|
-
import warnings
|
|
11
|
-
from datetime import datetime
|
|
12
|
-
from typing import Any
|
|
13
|
-
|
|
14
|
-
from langchain_core.messages import BaseMessage
|
|
15
|
-
from langchain_core.prompts.chat import SystemMessagePromptTemplate
|
|
16
|
-
from langchain_core.vectorstores import VectorStoreRetriever
|
|
17
|
-
from pydantic import Field, PrivateAttr
|
|
18
|
-
|
|
19
|
-
from langchain.memory import ConversationTokenBufferMemory, VectorStoreRetrieverMemory
|
|
20
|
-
from langchain.memory.chat_memory import BaseChatMemory
|
|
21
|
-
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
|
22
|
-
|
|
23
|
-
DEFAULT_HISTORY_TEMPLATE = """
|
|
24
|
-
Current date and time: {current_time}.
|
|
25
|
-
|
|
26
|
-
Potentially relevant timestamped excerpts of previous conversations (you
|
|
27
|
-
do not need to use these if irrelevant):
|
|
28
|
-
{previous_history}
|
|
29
|
-
|
|
30
|
-
"""
|
|
31
|
-
|
|
32
|
-
TIMESTAMP_FORMAT = "%Y-%m-%d %H:%M:%S %Z"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
class ConversationVectorStoreTokenBufferMemory(ConversationTokenBufferMemory):
|
|
36
|
-
"""Conversation chat memory with token limit and vectordb backing.
|
|
37
|
-
|
|
38
|
-
load_memory_variables() will return a dict with the key "history".
|
|
39
|
-
It contains background information retrieved from the vector store
|
|
40
|
-
plus recent lines of the current conversation.
|
|
41
|
-
|
|
42
|
-
To help the LLM understand the part of the conversation stored in the
|
|
43
|
-
vectorstore, each interaction is timestamped and the current date and
|
|
44
|
-
time is also provided in the history. A side effect of this is that the
|
|
45
|
-
LLM will have access to the current date and time.
|
|
46
|
-
|
|
47
|
-
Initialization arguments:
|
|
48
|
-
|
|
49
|
-
This class accepts all the initialization arguments of
|
|
50
|
-
ConversationTokenBufferMemory, such as `llm`. In addition, it
|
|
51
|
-
accepts the following additional arguments
|
|
52
|
-
|
|
53
|
-
retriever: (required) A VectorStoreRetriever object to use
|
|
54
|
-
as the vector backing store
|
|
55
|
-
|
|
56
|
-
split_chunk_size: (optional, 1000) Token chunk split size
|
|
57
|
-
for long messages generated by the AI
|
|
58
|
-
|
|
59
|
-
previous_history_template: (optional) Template used to format
|
|
60
|
-
the contents of the prompt history
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
Example using ChromaDB:
|
|
64
|
-
|
|
65
|
-
.. code-block:: python
|
|
66
|
-
|
|
67
|
-
from langchain.memory.token_buffer_vectorstore_memory import (
|
|
68
|
-
ConversationVectorStoreTokenBufferMemory
|
|
69
|
-
)
|
|
70
|
-
from langchain_chroma import Chroma
|
|
71
|
-
from langchain_community.embeddings import HuggingFaceInstructEmbeddings
|
|
72
|
-
from langchain_openai import OpenAI
|
|
73
|
-
|
|
74
|
-
embedder = HuggingFaceInstructEmbeddings(
|
|
75
|
-
query_instruction="Represent the query for retrieval: "
|
|
76
|
-
)
|
|
77
|
-
chroma = Chroma(collection_name="demo",
|
|
78
|
-
embedding_function=embedder,
|
|
79
|
-
collection_metadata={"hnsw:space": "cosine"},
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
retriever = chroma.as_retriever(
|
|
83
|
-
search_type="similarity_score_threshold",
|
|
84
|
-
search_kwargs={
|
|
85
|
-
'k': 5,
|
|
86
|
-
'score_threshold': 0.75,
|
|
87
|
-
},
|
|
88
|
-
)
|
|
89
|
-
|
|
90
|
-
conversation_memory = ConversationVectorStoreTokenBufferMemory(
|
|
91
|
-
return_messages=True,
|
|
92
|
-
llm=OpenAI(),
|
|
93
|
-
retriever=retriever,
|
|
94
|
-
max_token_limit = 1000,
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
conversation_memory.save_context({"Human": "Hi there"},
|
|
98
|
-
{"AI": "Nice to meet you!"}
|
|
99
|
-
)
|
|
100
|
-
conversation_memory.save_context({"Human": "Nice day isn't it?"},
|
|
101
|
-
{"AI": "I love Wednesdays."}
|
|
102
|
-
)
|
|
103
|
-
conversation_memory.load_memory_variables({"input": "What time is it?"})
|
|
104
|
-
|
|
105
|
-
"""
|
|
106
|
-
|
|
107
|
-
retriever: VectorStoreRetriever = Field(exclude=True)
|
|
108
|
-
memory_key: str = "history"
|
|
109
|
-
previous_history_template: str = DEFAULT_HISTORY_TEMPLATE
|
|
110
|
-
split_chunk_size: int = 1000
|
|
111
|
-
|
|
112
|
-
_memory_retriever: VectorStoreRetrieverMemory = PrivateAttr(default=None) # type: ignore[assignment]
|
|
113
|
-
_timestamps: list[datetime] = PrivateAttr(default_factory=list)
|
|
114
|
-
|
|
115
|
-
@property
|
|
116
|
-
def memory_retriever(self) -> VectorStoreRetrieverMemory:
|
|
117
|
-
"""Return a memory retriever from the passed retriever object."""
|
|
118
|
-
if self._memory_retriever is not None:
|
|
119
|
-
return self._memory_retriever
|
|
120
|
-
self._memory_retriever = VectorStoreRetrieverMemory(retriever=self.retriever)
|
|
121
|
-
return self._memory_retriever
|
|
122
|
-
|
|
123
|
-
def load_memory_variables(self, inputs: dict[str, Any]) -> dict[str, Any]:
|
|
124
|
-
"""Return history and memory buffer."""
|
|
125
|
-
try:
|
|
126
|
-
with warnings.catch_warnings():
|
|
127
|
-
warnings.simplefilter("ignore")
|
|
128
|
-
memory_variables = self.memory_retriever.load_memory_variables(inputs)
|
|
129
|
-
previous_history = memory_variables[self.memory_retriever.memory_key]
|
|
130
|
-
except AssertionError: # happens when db is empty
|
|
131
|
-
previous_history = ""
|
|
132
|
-
current_history = super().load_memory_variables(inputs)
|
|
133
|
-
template = SystemMessagePromptTemplate.from_template(
|
|
134
|
-
self.previous_history_template,
|
|
135
|
-
)
|
|
136
|
-
messages = [
|
|
137
|
-
template.format(
|
|
138
|
-
previous_history=previous_history,
|
|
139
|
-
current_time=datetime.now().astimezone().strftime(TIMESTAMP_FORMAT),
|
|
140
|
-
),
|
|
141
|
-
]
|
|
142
|
-
messages.extend(current_history[self.memory_key])
|
|
143
|
-
return {self.memory_key: messages}
|
|
144
|
-
|
|
145
|
-
def save_context(self, inputs: dict[str, Any], outputs: dict[str, str]) -> None:
|
|
146
|
-
"""Save context from this conversation to buffer. Pruned."""
|
|
147
|
-
BaseChatMemory.save_context(self, inputs, outputs)
|
|
148
|
-
self._timestamps.append(datetime.now().astimezone())
|
|
149
|
-
# Prune buffer if it exceeds max token limit
|
|
150
|
-
buffer = self.chat_memory.messages
|
|
151
|
-
curr_buffer_length = self.llm.get_num_tokens_from_messages(buffer)
|
|
152
|
-
if curr_buffer_length > self.max_token_limit:
|
|
153
|
-
while curr_buffer_length > self.max_token_limit:
|
|
154
|
-
self._pop_and_store_interaction(buffer)
|
|
155
|
-
curr_buffer_length = self.llm.get_num_tokens_from_messages(buffer)
|
|
156
|
-
|
|
157
|
-
def save_remainder(self) -> None:
|
|
158
|
-
"""
|
|
159
|
-
Save the remainder of the conversation buffer to the vector store.
|
|
160
|
-
|
|
161
|
-
This is useful if you have made the vectorstore persistent, in which
|
|
162
|
-
case this can be called before the end of the session to store the
|
|
163
|
-
remainder of the conversation.
|
|
164
|
-
"""
|
|
165
|
-
buffer = self.chat_memory.messages
|
|
166
|
-
while len(buffer) > 0:
|
|
167
|
-
self._pop_and_store_interaction(buffer)
|
|
168
|
-
|
|
169
|
-
def _pop_and_store_interaction(self, buffer: list[BaseMessage]) -> None:
|
|
170
|
-
input_ = buffer.pop(0)
|
|
171
|
-
output = buffer.pop(0)
|
|
172
|
-
timestamp = self._timestamps.pop(0).strftime(TIMESTAMP_FORMAT)
|
|
173
|
-
# Split AI output into smaller chunks to avoid creating documents
|
|
174
|
-
# that will overflow the context window
|
|
175
|
-
ai_chunks = self._split_long_ai_text(str(output.content))
|
|
176
|
-
for index, chunk in enumerate(ai_chunks):
|
|
177
|
-
self.memory_retriever.save_context(
|
|
178
|
-
{"Human": f"<{timestamp}/00> {input_.content!s}"},
|
|
179
|
-
{"AI": f"<{timestamp}/{index:02}> {chunk}"},
|
|
180
|
-
)
|
|
181
|
-
|
|
182
|
-
def _split_long_ai_text(self, text: str) -> list[str]:
|
|
183
|
-
splitter = RecursiveCharacterTextSplitter(chunk_size=self.split_chunk_size)
|
|
184
|
-
return [chunk.page_content for chunk in splitter.create_documents([text])]
|
langchain/memory/zep_memory.py
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Any
|
|
2
|
-
|
|
3
|
-
from langchain._api import create_importer
|
|
4
|
-
|
|
5
|
-
if TYPE_CHECKING:
|
|
6
|
-
from langchain_community.memory.zep_memory import ZepMemory
|
|
7
|
-
|
|
8
|
-
# Create a way to dynamically look up deprecated imports.
|
|
9
|
-
# Used to consolidate logic for raising deprecation warnings and
|
|
10
|
-
# handling optional imports.
|
|
11
|
-
DEPRECATED_LOOKUP = {"ZepMemory": "langchain_community.memory.zep_memory"}
|
|
12
|
-
|
|
13
|
-
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
def __getattr__(name: str) -> Any:
|
|
17
|
-
"""Look up attributes dynamically."""
|
|
18
|
-
return _import_attribute(name)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__all__ = [
|
|
22
|
-
"ZepMemory",
|
|
23
|
-
]
|
langchain/model_laboratory.py
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"""Experiment with different models."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from collections.abc import Sequence
|
|
6
|
-
from typing import Optional
|
|
7
|
-
|
|
8
|
-
from langchain_core.language_models.llms import BaseLLM
|
|
9
|
-
from langchain_core.prompts.prompt import PromptTemplate
|
|
10
|
-
from langchain_core.utils.input import get_color_mapping, print_text
|
|
11
|
-
|
|
12
|
-
from langchain.chains.base import Chain
|
|
13
|
-
from langchain.chains.llm import LLMChain
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class ModelLaboratory:
|
|
17
|
-
"""A utility to experiment with and compare the performance of different models."""
|
|
18
|
-
|
|
19
|
-
def __init__(self, chains: Sequence[Chain], names: Optional[list[str]] = None):
|
|
20
|
-
"""Initialize the ModelLaboratory with chains to experiment with.
|
|
21
|
-
|
|
22
|
-
Args:
|
|
23
|
-
chains (Sequence[Chain]): A sequence of chains to experiment with.
|
|
24
|
-
Each chain must have exactly one input and one output variable.
|
|
25
|
-
names (Optional[List[str]]): Optional list of names corresponding to each chain.
|
|
26
|
-
If provided, its length must match the number of chains.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Raises:
|
|
30
|
-
ValueError: If any chain is not an instance of `Chain`.
|
|
31
|
-
ValueError: If a chain does not have exactly one input variable.
|
|
32
|
-
ValueError: If a chain does not have exactly one output variable.
|
|
33
|
-
ValueError: If the length of `names` does not match the number of chains.
|
|
34
|
-
"""
|
|
35
|
-
for chain in chains:
|
|
36
|
-
if not isinstance(chain, Chain):
|
|
37
|
-
msg = (
|
|
38
|
-
"ModelLaboratory should now be initialized with Chains. "
|
|
39
|
-
"If you want to initialize with LLMs, use the `from_llms` method "
|
|
40
|
-
"instead (`ModelLaboratory.from_llms(...)`)"
|
|
41
|
-
)
|
|
42
|
-
raise ValueError(msg) # noqa: TRY004
|
|
43
|
-
if len(chain.input_keys) != 1:
|
|
44
|
-
msg = (
|
|
45
|
-
"Currently only support chains with one input variable, "
|
|
46
|
-
f"got {chain.input_keys}"
|
|
47
|
-
)
|
|
48
|
-
raise ValueError(msg)
|
|
49
|
-
if len(chain.output_keys) != 1:
|
|
50
|
-
msg = (
|
|
51
|
-
"Currently only support chains with one output variable, "
|
|
52
|
-
f"got {chain.output_keys}"
|
|
53
|
-
)
|
|
54
|
-
if names is not None and len(names) != len(chains):
|
|
55
|
-
msg = "Length of chains does not match length of names."
|
|
56
|
-
raise ValueError(msg)
|
|
57
|
-
self.chains = chains
|
|
58
|
-
chain_range = [str(i) for i in range(len(self.chains))]
|
|
59
|
-
self.chain_colors = get_color_mapping(chain_range)
|
|
60
|
-
self.names = names
|
|
61
|
-
|
|
62
|
-
@classmethod
|
|
63
|
-
def from_llms(
|
|
64
|
-
cls,
|
|
65
|
-
llms: list[BaseLLM],
|
|
66
|
-
prompt: Optional[PromptTemplate] = None,
|
|
67
|
-
) -> ModelLaboratory:
|
|
68
|
-
"""Initialize the ModelLaboratory with LLMs and an optional prompt.
|
|
69
|
-
|
|
70
|
-
Args:
|
|
71
|
-
llms (List[BaseLLM]): A list of LLMs to experiment with.
|
|
72
|
-
prompt (Optional[PromptTemplate]): An optional prompt to use with the LLMs.
|
|
73
|
-
If provided, the prompt must contain exactly one input variable.
|
|
74
|
-
|
|
75
|
-
Returns:
|
|
76
|
-
ModelLaboratory: An instance of `ModelLaboratory` initialized with LLMs.
|
|
77
|
-
"""
|
|
78
|
-
if prompt is None:
|
|
79
|
-
prompt = PromptTemplate(input_variables=["_input"], template="{_input}")
|
|
80
|
-
chains = [LLMChain(llm=llm, prompt=prompt) for llm in llms]
|
|
81
|
-
names = [str(llm) for llm in llms]
|
|
82
|
-
return cls(chains, names=names)
|
|
83
|
-
|
|
84
|
-
def compare(self, text: str) -> None:
|
|
85
|
-
"""Compare model outputs on an input text.
|
|
86
|
-
|
|
87
|
-
If a prompt was provided with starting the laboratory, then this text will be
|
|
88
|
-
fed into the prompt. If no prompt was provided, then the input text is the
|
|
89
|
-
entire prompt.
|
|
90
|
-
|
|
91
|
-
Args:
|
|
92
|
-
text: input text to run all models on.
|
|
93
|
-
"""
|
|
94
|
-
print(f"\033[1mInput:\033[0m\n{text}\n") # noqa: T201
|
|
95
|
-
for i, chain in enumerate(self.chains):
|
|
96
|
-
name = self.names[i] if self.names is not None else str(chain)
|
|
97
|
-
print_text(name, end="\n")
|
|
98
|
-
output = chain.run(text)
|
|
99
|
-
print_text(output, color=self.chain_colors[str(i)], end="\n\n")
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"""**OutputParser** classes parse the output of an LLM call.
|
|
2
|
-
|
|
3
|
-
**Class hierarchy:**
|
|
4
|
-
|
|
5
|
-
.. code-block::
|
|
6
|
-
|
|
7
|
-
BaseLLMOutputParser --> BaseOutputParser --> <name>OutputParser # ListOutputParser, PydanticOutputParser
|
|
8
|
-
|
|
9
|
-
**Main helpers:**
|
|
10
|
-
|
|
11
|
-
.. code-block::
|
|
12
|
-
|
|
13
|
-
Serializable, Generation, PromptValue
|
|
14
|
-
""" # noqa: E501
|
|
15
|
-
|
|
16
|
-
from typing import TYPE_CHECKING, Any
|
|
17
|
-
|
|
18
|
-
from langchain_core.output_parsers import (
|
|
19
|
-
CommaSeparatedListOutputParser,
|
|
20
|
-
ListOutputParser,
|
|
21
|
-
MarkdownListOutputParser,
|
|
22
|
-
NumberedListOutputParser,
|
|
23
|
-
PydanticOutputParser,
|
|
24
|
-
XMLOutputParser,
|
|
25
|
-
)
|
|
26
|
-
from langchain_core.output_parsers.openai_tools import (
|
|
27
|
-
JsonOutputKeyToolsParser,
|
|
28
|
-
JsonOutputToolsParser,
|
|
29
|
-
PydanticToolsParser,
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
from langchain._api import create_importer
|
|
33
|
-
from langchain.output_parsers.boolean import BooleanOutputParser
|
|
34
|
-
from langchain.output_parsers.combining import CombiningOutputParser
|
|
35
|
-
from langchain.output_parsers.datetime import DatetimeOutputParser
|
|
36
|
-
from langchain.output_parsers.enum import EnumOutputParser
|
|
37
|
-
from langchain.output_parsers.fix import OutputFixingParser
|
|
38
|
-
from langchain.output_parsers.pandas_dataframe import PandasDataFrameOutputParser
|
|
39
|
-
from langchain.output_parsers.regex import RegexParser
|
|
40
|
-
from langchain.output_parsers.regex_dict import RegexDictParser
|
|
41
|
-
from langchain.output_parsers.retry import RetryOutputParser, RetryWithErrorOutputParser
|
|
42
|
-
from langchain.output_parsers.structured import ResponseSchema, StructuredOutputParser
|
|
43
|
-
from langchain.output_parsers.yaml import YamlOutputParser
|
|
44
|
-
|
|
45
|
-
if TYPE_CHECKING:
|
|
46
|
-
from langchain_community.output_parsers.rail_parser import GuardrailsOutputParser
|
|
47
|
-
|
|
48
|
-
# Create a way to dynamically look up deprecated imports.
|
|
49
|
-
# Used to consolidate logic for raising deprecation warnings and
|
|
50
|
-
# handling optional imports.
|
|
51
|
-
DEPRECATED_LOOKUP = {
|
|
52
|
-
"GuardrailsOutputParser": "langchain_community.output_parsers.rail_parser",
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def __getattr__(name: str) -> Any:
|
|
59
|
-
"""Look up attributes dynamically."""
|
|
60
|
-
return _import_attribute(name)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
__all__ = [
|
|
64
|
-
"BooleanOutputParser",
|
|
65
|
-
"CombiningOutputParser",
|
|
66
|
-
"CommaSeparatedListOutputParser",
|
|
67
|
-
"DatetimeOutputParser",
|
|
68
|
-
"EnumOutputParser",
|
|
69
|
-
"GuardrailsOutputParser",
|
|
70
|
-
"JsonOutputKeyToolsParser",
|
|
71
|
-
"JsonOutputToolsParser",
|
|
72
|
-
"ListOutputParser",
|
|
73
|
-
"MarkdownListOutputParser",
|
|
74
|
-
"NumberedListOutputParser",
|
|
75
|
-
"OutputFixingParser",
|
|
76
|
-
"PandasDataFrameOutputParser",
|
|
77
|
-
"PydanticOutputParser",
|
|
78
|
-
"PydanticToolsParser",
|
|
79
|
-
"RegexDictParser",
|
|
80
|
-
"RegexParser",
|
|
81
|
-
"ResponseSchema",
|
|
82
|
-
"RetryOutputParser",
|
|
83
|
-
"RetryWithErrorOutputParser",
|
|
84
|
-
"StructuredOutputParser",
|
|
85
|
-
"XMLOutputParser",
|
|
86
|
-
"YamlOutputParser",
|
|
87
|
-
]
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
|
|
3
|
-
from langchain_core.output_parsers import BaseOutputParser
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class BooleanOutputParser(BaseOutputParser[bool]):
|
|
7
|
-
"""Parse the output of an LLM call to a boolean."""
|
|
8
|
-
|
|
9
|
-
true_val: str = "YES"
|
|
10
|
-
"""The string value that should be parsed as True."""
|
|
11
|
-
false_val: str = "NO"
|
|
12
|
-
"""The string value that should be parsed as False."""
|
|
13
|
-
|
|
14
|
-
def parse(self, text: str) -> bool:
|
|
15
|
-
"""Parse the output of an LLM call to a boolean.
|
|
16
|
-
|
|
17
|
-
Args:
|
|
18
|
-
text: output of a language model
|
|
19
|
-
|
|
20
|
-
Returns:
|
|
21
|
-
boolean
|
|
22
|
-
"""
|
|
23
|
-
regexp = rf"\b({self.true_val}|{self.false_val})\b"
|
|
24
|
-
|
|
25
|
-
truthy = {
|
|
26
|
-
val.upper()
|
|
27
|
-
for val in re.findall(regexp, text, flags=re.IGNORECASE | re.MULTILINE)
|
|
28
|
-
}
|
|
29
|
-
if self.true_val.upper() in truthy:
|
|
30
|
-
if self.false_val.upper() in truthy:
|
|
31
|
-
msg = (
|
|
32
|
-
f"Ambiguous response. Both {self.true_val} and {self.false_val} "
|
|
33
|
-
f"in received: {text}."
|
|
34
|
-
)
|
|
35
|
-
raise ValueError(msg)
|
|
36
|
-
return True
|
|
37
|
-
if self.false_val.upper() in truthy:
|
|
38
|
-
if self.true_val.upper() in truthy:
|
|
39
|
-
msg = (
|
|
40
|
-
f"Ambiguous response. Both {self.true_val} and {self.false_val} "
|
|
41
|
-
f"in received: {text}."
|
|
42
|
-
)
|
|
43
|
-
raise ValueError(msg)
|
|
44
|
-
return False
|
|
45
|
-
msg = (
|
|
46
|
-
f"BooleanOutputParser expected output value to include either "
|
|
47
|
-
f"{self.true_val} or {self.false_val}. Received {text}."
|
|
48
|
-
)
|
|
49
|
-
raise ValueError(msg)
|
|
50
|
-
|
|
51
|
-
@property
|
|
52
|
-
def _type(self) -> str:
|
|
53
|
-
"""Snake-case string identifier for an output parser type."""
|
|
54
|
-
return "boolean_output_parser"
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import Any
|
|
4
|
-
|
|
5
|
-
from langchain_core.output_parsers import BaseOutputParser
|
|
6
|
-
from langchain_core.utils import pre_init
|
|
7
|
-
|
|
8
|
-
_MIN_PARSERS = 2
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class CombiningOutputParser(BaseOutputParser[dict[str, Any]]):
|
|
12
|
-
"""Combine multiple output parsers into one."""
|
|
13
|
-
|
|
14
|
-
parsers: list[BaseOutputParser]
|
|
15
|
-
|
|
16
|
-
@classmethod
|
|
17
|
-
def is_lc_serializable(cls) -> bool:
|
|
18
|
-
return True
|
|
19
|
-
|
|
20
|
-
@pre_init
|
|
21
|
-
def validate_parsers(cls, values: dict[str, Any]) -> dict[str, Any]:
|
|
22
|
-
"""Validate the parsers."""
|
|
23
|
-
parsers = values["parsers"]
|
|
24
|
-
if len(parsers) < _MIN_PARSERS:
|
|
25
|
-
msg = "Must have at least two parsers"
|
|
26
|
-
raise ValueError(msg)
|
|
27
|
-
for parser in parsers:
|
|
28
|
-
if parser._type == "combining":
|
|
29
|
-
msg = "Cannot nest combining parsers"
|
|
30
|
-
raise ValueError(msg)
|
|
31
|
-
if parser._type == "list":
|
|
32
|
-
msg = "Cannot combine list parsers"
|
|
33
|
-
raise ValueError(msg)
|
|
34
|
-
return values
|
|
35
|
-
|
|
36
|
-
@property
|
|
37
|
-
def _type(self) -> str:
|
|
38
|
-
"""Return the type key."""
|
|
39
|
-
return "combining"
|
|
40
|
-
|
|
41
|
-
def get_format_instructions(self) -> str:
|
|
42
|
-
"""Instructions on how the LLM output should be formatted."""
|
|
43
|
-
|
|
44
|
-
initial = f"For your first output: {self.parsers[0].get_format_instructions()}"
|
|
45
|
-
subsequent = "\n".join(
|
|
46
|
-
f"Complete that output fully. Then produce another output, separated by two newline characters: {p.get_format_instructions()}" # noqa: E501
|
|
47
|
-
for p in self.parsers[1:]
|
|
48
|
-
)
|
|
49
|
-
return f"{initial}\n{subsequent}"
|
|
50
|
-
|
|
51
|
-
def parse(self, text: str) -> dict[str, Any]:
|
|
52
|
-
"""Parse the output of an LLM call."""
|
|
53
|
-
texts = text.split("\n\n")
|
|
54
|
-
output = {}
|
|
55
|
-
for txt, parser in zip(texts, self.parsers):
|
|
56
|
-
output.update(parser.parse(txt.strip()))
|
|
57
|
-
return output
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
from datetime import datetime, timedelta, timezone
|
|
2
|
-
|
|
3
|
-
from langchain_core.exceptions import OutputParserException
|
|
4
|
-
from langchain_core.output_parsers import BaseOutputParser
|
|
5
|
-
from langchain_core.utils import comma_list
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class DatetimeOutputParser(BaseOutputParser[datetime]):
|
|
9
|
-
"""Parse the output of an LLM call to a datetime."""
|
|
10
|
-
|
|
11
|
-
format: str = "%Y-%m-%dT%H:%M:%S.%fZ"
|
|
12
|
-
"""The string value that is used as the datetime format.
|
|
13
|
-
|
|
14
|
-
Update this to match the desired datetime format for your application.
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
def get_format_instructions(self) -> str:
|
|
18
|
-
"""Returns the format instructions for the given format."""
|
|
19
|
-
if self.format == "%Y-%m-%dT%H:%M:%S.%fZ":
|
|
20
|
-
examples = comma_list(
|
|
21
|
-
[
|
|
22
|
-
"2023-07-04T14:30:00.000000Z",
|
|
23
|
-
"1999-12-31T23:59:59.999999Z",
|
|
24
|
-
"2025-01-01T00:00:00.000000Z",
|
|
25
|
-
],
|
|
26
|
-
)
|
|
27
|
-
else:
|
|
28
|
-
try:
|
|
29
|
-
now = datetime.now(tz=timezone.utc)
|
|
30
|
-
examples = comma_list(
|
|
31
|
-
[
|
|
32
|
-
now.strftime(self.format),
|
|
33
|
-
(now.replace(year=now.year - 1)).strftime(self.format),
|
|
34
|
-
(now - timedelta(days=1)).strftime(self.format),
|
|
35
|
-
],
|
|
36
|
-
)
|
|
37
|
-
except ValueError:
|
|
38
|
-
# Fallback if the format is very unusual
|
|
39
|
-
examples = f"e.g., a valid string in the format {self.format}"
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
f"Write a datetime string that matches the "
|
|
43
|
-
f"following pattern: '{self.format}'.\n\n"
|
|
44
|
-
f"Examples: {examples}\n\n"
|
|
45
|
-
f"Return ONLY this string, no other words!"
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
def parse(self, response: str) -> datetime:
|
|
49
|
-
"""Parse a string into a datetime object."""
|
|
50
|
-
try:
|
|
51
|
-
return datetime.strptime(response.strip(), self.format) # noqa: DTZ007
|
|
52
|
-
except ValueError as e:
|
|
53
|
-
msg = f"Could not parse datetime string: {response}"
|
|
54
|
-
raise OutputParserException(msg) from e
|
|
55
|
-
|
|
56
|
-
@property
|
|
57
|
-
def _type(self) -> str:
|
|
58
|
-
return "datetime"
|