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
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
from typing import Union
|
|
2
|
-
|
|
3
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
4
|
-
from langchain_core.messages import BaseMessage
|
|
5
|
-
from langchain_core.outputs import ChatGeneration, Generation
|
|
6
|
-
|
|
7
|
-
from langchain.agents.agent import MultiActionAgentOutputParser
|
|
8
|
-
from langchain.agents.output_parsers.tools import (
|
|
9
|
-
ToolAgentAction,
|
|
10
|
-
parse_ai_message_to_tool_action,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
OpenAIToolAgentAction = ToolAgentAction
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
def parse_ai_message_to_openai_tool_action(
|
|
17
|
-
message: BaseMessage,
|
|
18
|
-
) -> Union[list[AgentAction], AgentFinish]:
|
|
19
|
-
"""Parse an AI message potentially containing tool_calls."""
|
|
20
|
-
tool_actions = parse_ai_message_to_tool_action(message)
|
|
21
|
-
if isinstance(tool_actions, AgentFinish):
|
|
22
|
-
return tool_actions
|
|
23
|
-
final_actions: list[AgentAction] = []
|
|
24
|
-
for action in tool_actions:
|
|
25
|
-
if isinstance(action, ToolAgentAction):
|
|
26
|
-
final_actions.append(
|
|
27
|
-
OpenAIToolAgentAction(
|
|
28
|
-
tool=action.tool,
|
|
29
|
-
tool_input=action.tool_input,
|
|
30
|
-
log=action.log,
|
|
31
|
-
message_log=action.message_log,
|
|
32
|
-
tool_call_id=action.tool_call_id,
|
|
33
|
-
),
|
|
34
|
-
)
|
|
35
|
-
else:
|
|
36
|
-
final_actions.append(action)
|
|
37
|
-
return final_actions
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class OpenAIToolsAgentOutputParser(MultiActionAgentOutputParser):
|
|
41
|
-
"""Parses a message into agent actions/finish.
|
|
42
|
-
|
|
43
|
-
Is meant to be used with OpenAI models, as it relies on the specific
|
|
44
|
-
tool_calls parameter from OpenAI to convey what tools to use.
|
|
45
|
-
|
|
46
|
-
If a tool_calls parameter is passed, then that is used to get
|
|
47
|
-
the tool names and tool inputs.
|
|
48
|
-
|
|
49
|
-
If one is not passed, then the AIMessage is assumed to be the final output.
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
@property
|
|
53
|
-
def _type(self) -> str:
|
|
54
|
-
return "openai-tools-agent-output-parser"
|
|
55
|
-
|
|
56
|
-
def parse_result(
|
|
57
|
-
self,
|
|
58
|
-
result: list[Generation],
|
|
59
|
-
*,
|
|
60
|
-
partial: bool = False,
|
|
61
|
-
) -> Union[list[AgentAction], AgentFinish]:
|
|
62
|
-
if not isinstance(result[0], ChatGeneration):
|
|
63
|
-
msg = "This output parser only works on ChatGeneration output"
|
|
64
|
-
raise ValueError(msg) # noqa: TRY004
|
|
65
|
-
message = result[0].message
|
|
66
|
-
return parse_ai_message_to_openai_tool_action(message)
|
|
67
|
-
|
|
68
|
-
def parse(self, text: str) -> Union[list[AgentAction], AgentFinish]:
|
|
69
|
-
msg = "Can only parse messages"
|
|
70
|
-
raise ValueError(msg)
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import re
|
|
3
|
-
from re import Pattern
|
|
4
|
-
from typing import Union
|
|
5
|
-
|
|
6
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
7
|
-
from langchain_core.exceptions import OutputParserException
|
|
8
|
-
|
|
9
|
-
from langchain.agents.agent import AgentOutputParser
|
|
10
|
-
from langchain.agents.chat.prompt import FORMAT_INSTRUCTIONS
|
|
11
|
-
|
|
12
|
-
FINAL_ANSWER_ACTION = "Final Answer:"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class ReActJsonSingleInputOutputParser(AgentOutputParser):
|
|
16
|
-
"""Parses ReAct-style LLM calls that have a single tool input in json format.
|
|
17
|
-
|
|
18
|
-
Expects output to be in one of two formats.
|
|
19
|
-
|
|
20
|
-
If the output signals that an action should be taken,
|
|
21
|
-
should be in the below format. This will result in an AgentAction
|
|
22
|
-
being returned.
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
Thought: agent thought here
|
|
26
|
-
Action:
|
|
27
|
-
```
|
|
28
|
-
{
|
|
29
|
-
"action": "search",
|
|
30
|
-
"action_input": "what is the temperature in SF"
|
|
31
|
-
}
|
|
32
|
-
```
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
If the output signals that a final answer should be given,
|
|
36
|
-
should be in the below format. This will result in an AgentFinish
|
|
37
|
-
being returned.
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
Thought: agent thought here
|
|
41
|
-
Final Answer: The temperature is 100 degrees
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
pattern: Pattern = re.compile(r"^.*?`{3}(?:json)?\n?(.*?)`{3}.*?$", re.DOTALL)
|
|
47
|
-
"""Regex pattern to parse the output."""
|
|
48
|
-
|
|
49
|
-
def get_format_instructions(self) -> str:
|
|
50
|
-
return FORMAT_INSTRUCTIONS
|
|
51
|
-
|
|
52
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
53
|
-
includes_answer = FINAL_ANSWER_ACTION in text
|
|
54
|
-
try:
|
|
55
|
-
found = self.pattern.search(text)
|
|
56
|
-
if not found:
|
|
57
|
-
# Fast fail to parse Final Answer.
|
|
58
|
-
msg = "action not found"
|
|
59
|
-
raise ValueError(msg)
|
|
60
|
-
action = found.group(1)
|
|
61
|
-
response = json.loads(action.strip())
|
|
62
|
-
includes_action = "action" in response
|
|
63
|
-
if includes_answer and includes_action:
|
|
64
|
-
msg = (
|
|
65
|
-
"Parsing LLM output produced a final answer "
|
|
66
|
-
f"and a parse-able action: {text}"
|
|
67
|
-
)
|
|
68
|
-
raise OutputParserException(msg)
|
|
69
|
-
return AgentAction(
|
|
70
|
-
response["action"],
|
|
71
|
-
response.get("action_input", {}),
|
|
72
|
-
text,
|
|
73
|
-
)
|
|
74
|
-
|
|
75
|
-
except Exception as e:
|
|
76
|
-
if not includes_answer:
|
|
77
|
-
msg = f"Could not parse LLM output: {text}"
|
|
78
|
-
raise OutputParserException(msg) from e
|
|
79
|
-
output = text.split(FINAL_ANSWER_ACTION)[-1].strip()
|
|
80
|
-
return AgentFinish({"output": output}, text)
|
|
81
|
-
|
|
82
|
-
@property
|
|
83
|
-
def _type(self) -> str:
|
|
84
|
-
return "react-json-single-input"
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
from typing import Union
|
|
3
|
-
|
|
4
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
5
|
-
from langchain_core.exceptions import OutputParserException
|
|
6
|
-
|
|
7
|
-
from langchain.agents.agent import AgentOutputParser
|
|
8
|
-
from langchain.agents.mrkl.prompt import FORMAT_INSTRUCTIONS
|
|
9
|
-
|
|
10
|
-
FINAL_ANSWER_ACTION = "Final Answer:"
|
|
11
|
-
MISSING_ACTION_AFTER_THOUGHT_ERROR_MESSAGE = (
|
|
12
|
-
"Invalid Format: Missing 'Action:' after 'Thought:'"
|
|
13
|
-
)
|
|
14
|
-
MISSING_ACTION_INPUT_AFTER_ACTION_ERROR_MESSAGE = (
|
|
15
|
-
"Invalid Format: Missing 'Action Input:' after 'Action:'"
|
|
16
|
-
)
|
|
17
|
-
FINAL_ANSWER_AND_PARSABLE_ACTION_ERROR_MESSAGE = (
|
|
18
|
-
"Parsing LLM output produced both a final answer and a parse-able action:"
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class ReActSingleInputOutputParser(AgentOutputParser):
|
|
23
|
-
"""Parses ReAct-style LLM calls that have a single tool input.
|
|
24
|
-
|
|
25
|
-
Expects output to be in one of two formats.
|
|
26
|
-
|
|
27
|
-
If the output signals that an action should be taken,
|
|
28
|
-
should be in the below format. This will result in an AgentAction
|
|
29
|
-
being returned.
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
Thought: agent thought here
|
|
33
|
-
Action: search
|
|
34
|
-
Action Input: what is the temperature in SF?
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
If the output signals that a final answer should be given,
|
|
38
|
-
should be in the below format. This will result in an AgentFinish
|
|
39
|
-
being returned.
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
Thought: agent thought here
|
|
43
|
-
Final Answer: The temperature is 100 degrees
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
"""
|
|
47
|
-
|
|
48
|
-
def get_format_instructions(self) -> str:
|
|
49
|
-
return FORMAT_INSTRUCTIONS
|
|
50
|
-
|
|
51
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
52
|
-
includes_answer = FINAL_ANSWER_ACTION in text
|
|
53
|
-
regex = (
|
|
54
|
-
r"Action\s*\d*\s*:[\s]*(.*?)[\s]*Action\s*\d*\s*Input\s*\d*\s*:[\s]*(.*)"
|
|
55
|
-
)
|
|
56
|
-
action_match = re.search(regex, text, re.DOTALL)
|
|
57
|
-
if action_match:
|
|
58
|
-
if includes_answer:
|
|
59
|
-
msg = f"{FINAL_ANSWER_AND_PARSABLE_ACTION_ERROR_MESSAGE}: {text}"
|
|
60
|
-
raise OutputParserException(msg)
|
|
61
|
-
action = action_match.group(1).strip()
|
|
62
|
-
action_input = action_match.group(2)
|
|
63
|
-
tool_input = action_input.strip(" ")
|
|
64
|
-
tool_input = tool_input.strip('"')
|
|
65
|
-
|
|
66
|
-
return AgentAction(action, tool_input, text)
|
|
67
|
-
|
|
68
|
-
if includes_answer:
|
|
69
|
-
return AgentFinish(
|
|
70
|
-
{"output": text.split(FINAL_ANSWER_ACTION)[-1].strip()},
|
|
71
|
-
text,
|
|
72
|
-
)
|
|
73
|
-
|
|
74
|
-
if not re.search(r"Action\s*\d*\s*:[\s]*(.*?)", text, re.DOTALL):
|
|
75
|
-
msg = f"Could not parse LLM output: `{text}`"
|
|
76
|
-
raise OutputParserException(
|
|
77
|
-
msg,
|
|
78
|
-
observation=MISSING_ACTION_AFTER_THOUGHT_ERROR_MESSAGE,
|
|
79
|
-
llm_output=text,
|
|
80
|
-
send_to_llm=True,
|
|
81
|
-
)
|
|
82
|
-
if not re.search(
|
|
83
|
-
r"[\s]*Action\s*\d*\s*Input\s*\d*\s*:[\s]*(.*)",
|
|
84
|
-
text,
|
|
85
|
-
re.DOTALL,
|
|
86
|
-
):
|
|
87
|
-
msg = f"Could not parse LLM output: `{text}`"
|
|
88
|
-
raise OutputParserException(
|
|
89
|
-
msg,
|
|
90
|
-
observation=MISSING_ACTION_INPUT_AFTER_ACTION_ERROR_MESSAGE,
|
|
91
|
-
llm_output=text,
|
|
92
|
-
send_to_llm=True,
|
|
93
|
-
)
|
|
94
|
-
msg = f"Could not parse LLM output: `{text}`"
|
|
95
|
-
raise OutputParserException(msg)
|
|
96
|
-
|
|
97
|
-
@property
|
|
98
|
-
def _type(self) -> str:
|
|
99
|
-
return "react-single-input"
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
from collections.abc import Sequence
|
|
2
|
-
from typing import Union
|
|
3
|
-
|
|
4
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
5
|
-
from langchain_core.exceptions import OutputParserException
|
|
6
|
-
|
|
7
|
-
from langchain.agents.agent import AgentOutputParser
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class SelfAskOutputParser(AgentOutputParser):
|
|
11
|
-
"""Parses self-ask style LLM calls.
|
|
12
|
-
|
|
13
|
-
Expects output to be in one of two formats.
|
|
14
|
-
|
|
15
|
-
If the output signals that an action should be taken,
|
|
16
|
-
should be in the below format. This will result in an AgentAction
|
|
17
|
-
being returned.
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Thoughts go here...
|
|
21
|
-
Follow up: what is the temperature in SF?
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
If the output signals that a final answer should be given,
|
|
25
|
-
should be in the below format. This will result in an AgentFinish
|
|
26
|
-
being returned.
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
Thoughts go here...
|
|
30
|
-
So the final answer is: The temperature is 100 degrees
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
|
-
followups: Sequence[str] = ("Follow up:", "Followup:")
|
|
36
|
-
finish_string: str = "So the final answer is: "
|
|
37
|
-
|
|
38
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
39
|
-
last_line = text.split("\n")[-1]
|
|
40
|
-
if not any(follow in last_line for follow in self.followups):
|
|
41
|
-
if self.finish_string not in last_line:
|
|
42
|
-
msg = f"Could not parse output: {text}"
|
|
43
|
-
raise OutputParserException(msg)
|
|
44
|
-
return AgentFinish({"output": last_line[len(self.finish_string) :]}, text)
|
|
45
|
-
|
|
46
|
-
after_colon = text.split(":")[-1].strip()
|
|
47
|
-
return AgentAction("Intermediate Answer", after_colon, text)
|
|
48
|
-
|
|
49
|
-
@property
|
|
50
|
-
def _type(self) -> str:
|
|
51
|
-
return "self_ask"
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from json import JSONDecodeError
|
|
3
|
-
from typing import Union
|
|
4
|
-
|
|
5
|
-
from langchain_core.agents import AgentAction, AgentActionMessageLog, AgentFinish
|
|
6
|
-
from langchain_core.exceptions import OutputParserException
|
|
7
|
-
from langchain_core.messages import (
|
|
8
|
-
AIMessage,
|
|
9
|
-
BaseMessage,
|
|
10
|
-
ToolCall,
|
|
11
|
-
)
|
|
12
|
-
from langchain_core.outputs import ChatGeneration, Generation
|
|
13
|
-
|
|
14
|
-
from langchain.agents.agent import MultiActionAgentOutputParser
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class ToolAgentAction(AgentActionMessageLog):
|
|
18
|
-
tool_call_id: str
|
|
19
|
-
"""Tool call that this message is responding to."""
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def parse_ai_message_to_tool_action(
|
|
23
|
-
message: BaseMessage,
|
|
24
|
-
) -> Union[list[AgentAction], AgentFinish]:
|
|
25
|
-
"""Parse an AI message potentially containing tool_calls."""
|
|
26
|
-
if not isinstance(message, AIMessage):
|
|
27
|
-
msg = f"Expected an AI message got {type(message)}"
|
|
28
|
-
raise TypeError(msg)
|
|
29
|
-
|
|
30
|
-
actions: list = []
|
|
31
|
-
if message.tool_calls:
|
|
32
|
-
tool_calls = message.tool_calls
|
|
33
|
-
else:
|
|
34
|
-
if not message.additional_kwargs.get("tool_calls"):
|
|
35
|
-
return AgentFinish(
|
|
36
|
-
return_values={"output": message.content},
|
|
37
|
-
log=str(message.content),
|
|
38
|
-
)
|
|
39
|
-
# Best-effort parsing
|
|
40
|
-
tool_calls = []
|
|
41
|
-
for tool_call in message.additional_kwargs["tool_calls"]:
|
|
42
|
-
function = tool_call["function"]
|
|
43
|
-
function_name = function["name"]
|
|
44
|
-
try:
|
|
45
|
-
args = json.loads(function["arguments"] or "{}")
|
|
46
|
-
tool_calls.append(
|
|
47
|
-
ToolCall(name=function_name, args=args, id=tool_call["id"]),
|
|
48
|
-
)
|
|
49
|
-
except JSONDecodeError as e:
|
|
50
|
-
msg = (
|
|
51
|
-
f"Could not parse tool input: {function} because "
|
|
52
|
-
f"the `arguments` is not valid JSON."
|
|
53
|
-
)
|
|
54
|
-
raise OutputParserException(msg) from e
|
|
55
|
-
for tool_call in tool_calls:
|
|
56
|
-
# HACK HACK HACK:
|
|
57
|
-
# The code that encodes tool input into Open AI uses a special variable
|
|
58
|
-
# name called `__arg1` to handle old style tools that do not expose a
|
|
59
|
-
# schema and expect a single string argument as an input.
|
|
60
|
-
# We unpack the argument here if it exists.
|
|
61
|
-
# Open AI does not support passing in a JSON array as an argument.
|
|
62
|
-
function_name = tool_call["name"]
|
|
63
|
-
_tool_input = tool_call["args"]
|
|
64
|
-
tool_input = _tool_input.get("__arg1", _tool_input)
|
|
65
|
-
|
|
66
|
-
content_msg = f"responded: {message.content}\n" if message.content else "\n"
|
|
67
|
-
log = f"\nInvoking: `{function_name}` with `{tool_input}`\n{content_msg}\n"
|
|
68
|
-
actions.append(
|
|
69
|
-
ToolAgentAction(
|
|
70
|
-
tool=function_name,
|
|
71
|
-
tool_input=tool_input,
|
|
72
|
-
log=log,
|
|
73
|
-
message_log=[message],
|
|
74
|
-
tool_call_id=tool_call["id"],
|
|
75
|
-
),
|
|
76
|
-
)
|
|
77
|
-
return actions
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
class ToolsAgentOutputParser(MultiActionAgentOutputParser):
|
|
81
|
-
"""Parses a message into agent actions/finish.
|
|
82
|
-
|
|
83
|
-
If a tool_calls parameter is passed, then that is used to get
|
|
84
|
-
the tool names and tool inputs.
|
|
85
|
-
|
|
86
|
-
If one is not passed, then the AIMessage is assumed to be the final output.
|
|
87
|
-
"""
|
|
88
|
-
|
|
89
|
-
@property
|
|
90
|
-
def _type(self) -> str:
|
|
91
|
-
return "tools-agent-output-parser"
|
|
92
|
-
|
|
93
|
-
def parse_result(
|
|
94
|
-
self,
|
|
95
|
-
result: list[Generation],
|
|
96
|
-
*,
|
|
97
|
-
partial: bool = False,
|
|
98
|
-
) -> Union[list[AgentAction], AgentFinish]:
|
|
99
|
-
if not isinstance(result[0], ChatGeneration):
|
|
100
|
-
msg = "This output parser only works on ChatGeneration output"
|
|
101
|
-
raise ValueError(msg) # noqa: TRY004
|
|
102
|
-
message = result[0].message
|
|
103
|
-
return parse_ai_message_to_tool_action(message)
|
|
104
|
-
|
|
105
|
-
def parse(self, text: str) -> Union[list[AgentAction], AgentFinish]:
|
|
106
|
-
msg = "Can only parse messages"
|
|
107
|
-
raise ValueError(msg)
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
from typing import Literal, Optional, Union
|
|
3
|
-
|
|
4
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
5
|
-
from pydantic import Field
|
|
6
|
-
|
|
7
|
-
from langchain.agents import AgentOutputParser
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def _unescape(text: str) -> str:
|
|
11
|
-
"""Convert custom tag delimiters back into XML tags."""
|
|
12
|
-
replacements = {
|
|
13
|
-
"[[tool]]": "<tool>",
|
|
14
|
-
"[[/tool]]": "</tool>",
|
|
15
|
-
"[[tool_input]]": "<tool_input>",
|
|
16
|
-
"[[/tool_input]]": "</tool_input>",
|
|
17
|
-
"[[observation]]": "<observation>",
|
|
18
|
-
"[[/observation]]": "</observation>",
|
|
19
|
-
}
|
|
20
|
-
for repl, orig in replacements.items():
|
|
21
|
-
text = text.replace(repl, orig)
|
|
22
|
-
return text
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class XMLAgentOutputParser(AgentOutputParser):
|
|
26
|
-
"""Parses tool invocations and final answers from XML-formatted agent output.
|
|
27
|
-
|
|
28
|
-
This parser extracts structured information from XML tags to determine whether
|
|
29
|
-
an agent should perform a tool action or provide a final answer. It includes
|
|
30
|
-
built-in escaping support to safely handle tool names and inputs
|
|
31
|
-
containing XML special characters.
|
|
32
|
-
|
|
33
|
-
Args:
|
|
34
|
-
escape_format: The escaping format to use when parsing XML content.
|
|
35
|
-
Supports 'minimal' which uses custom delimiters like [[tool]] to replace
|
|
36
|
-
XML tags within content, preventing parsing conflicts.
|
|
37
|
-
Use 'minimal' if using a corresponding encoding format that uses
|
|
38
|
-
the _escape function when formatting the output (e.g., with format_xml).
|
|
39
|
-
|
|
40
|
-
Expected formats:
|
|
41
|
-
Tool invocation (returns AgentAction):
|
|
42
|
-
<tool>search</tool>
|
|
43
|
-
<tool_input>what is 2 + 2</tool_input>
|
|
44
|
-
|
|
45
|
-
Final answer (returns AgentFinish):
|
|
46
|
-
<final_answer>The answer is 4</final_answer>
|
|
47
|
-
|
|
48
|
-
Note:
|
|
49
|
-
Minimal escaping allows tool names containing XML tags to be safely
|
|
50
|
-
represented. For example, a tool named "search<tool>nested</tool>" would be
|
|
51
|
-
escaped as "search[[tool]]nested[[/tool]]" in the XML and automatically
|
|
52
|
-
unescaped during parsing.
|
|
53
|
-
|
|
54
|
-
Raises:
|
|
55
|
-
ValueError: If the input doesn't match either expected XML format or
|
|
56
|
-
contains malformed XML structure.
|
|
57
|
-
"""
|
|
58
|
-
|
|
59
|
-
escape_format: Optional[Literal["minimal"]] = Field(default="minimal")
|
|
60
|
-
"""The format to use for escaping XML characters.
|
|
61
|
-
|
|
62
|
-
minimal - uses custom delimiters to replace XML tags within content,
|
|
63
|
-
preventing parsing conflicts. This is the only supported format currently.
|
|
64
|
-
|
|
65
|
-
None - no escaping is applied, which may lead to parsing conflicts.
|
|
66
|
-
"""
|
|
67
|
-
|
|
68
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
69
|
-
# Check for tool invocation first
|
|
70
|
-
tool_matches = re.findall(r"<tool>(.*?)</tool>", text, re.DOTALL)
|
|
71
|
-
if tool_matches:
|
|
72
|
-
if len(tool_matches) != 1:
|
|
73
|
-
msg = (
|
|
74
|
-
f"Malformed tool invocation: expected exactly one <tool> block, "
|
|
75
|
-
f"but found {len(tool_matches)}."
|
|
76
|
-
)
|
|
77
|
-
raise ValueError(msg)
|
|
78
|
-
_tool = tool_matches[0]
|
|
79
|
-
|
|
80
|
-
# Match optional tool input
|
|
81
|
-
input_matches = re.findall(
|
|
82
|
-
r"<tool_input>(.*?)</tool_input>", text, re.DOTALL
|
|
83
|
-
)
|
|
84
|
-
if len(input_matches) > 1:
|
|
85
|
-
msg = (
|
|
86
|
-
f"Malformed tool invocation: expected at most one <tool_input> "
|
|
87
|
-
f"block, but found {len(input_matches)}."
|
|
88
|
-
)
|
|
89
|
-
raise ValueError(msg)
|
|
90
|
-
_tool_input = input_matches[0] if input_matches else ""
|
|
91
|
-
|
|
92
|
-
# Unescape if minimal escape format is used
|
|
93
|
-
if self.escape_format == "minimal":
|
|
94
|
-
_tool = _unescape(_tool)
|
|
95
|
-
_tool_input = _unescape(_tool_input)
|
|
96
|
-
|
|
97
|
-
return AgentAction(tool=_tool, tool_input=_tool_input, log=text)
|
|
98
|
-
# Check for final answer
|
|
99
|
-
if "<final_answer>" in text and "</final_answer>" in text:
|
|
100
|
-
matches = re.findall(r"<final_answer>(.*?)</final_answer>", text, re.DOTALL)
|
|
101
|
-
if len(matches) != 1:
|
|
102
|
-
msg = (
|
|
103
|
-
"Malformed output: expected exactly one "
|
|
104
|
-
"<final_answer>...</final_answer> block."
|
|
105
|
-
)
|
|
106
|
-
raise ValueError(msg)
|
|
107
|
-
answer = matches[0]
|
|
108
|
-
# Unescape custom delimiters in final answer
|
|
109
|
-
if self.escape_format == "minimal":
|
|
110
|
-
answer = _unescape(answer)
|
|
111
|
-
return AgentFinish(return_values={"output": answer}, log=text)
|
|
112
|
-
msg = (
|
|
113
|
-
"Malformed output: expected either a tool invocation "
|
|
114
|
-
"or a final answer in XML format."
|
|
115
|
-
)
|
|
116
|
-
raise ValueError(msg)
|
|
117
|
-
|
|
118
|
-
def get_format_instructions(self) -> str:
|
|
119
|
-
raise NotImplementedError
|
|
120
|
-
|
|
121
|
-
@property
|
|
122
|
-
def _type(self) -> str:
|
|
123
|
-
return "xml-agent"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"""Implements the ReAct paper from https://arxiv.org/pdf/2210.03629.pdf."""
|
langchain/agents/react/agent.py
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from collections.abc import Sequence
|
|
4
|
-
from typing import Optional, Union
|
|
5
|
-
|
|
6
|
-
from langchain_core.language_models import BaseLanguageModel
|
|
7
|
-
from langchain_core.prompts import BasePromptTemplate
|
|
8
|
-
from langchain_core.runnables import Runnable, RunnablePassthrough
|
|
9
|
-
from langchain_core.tools import BaseTool
|
|
10
|
-
from langchain_core.tools.render import ToolsRenderer, render_text_description
|
|
11
|
-
|
|
12
|
-
from langchain.agents import AgentOutputParser
|
|
13
|
-
from langchain.agents.format_scratchpad import format_log_to_str
|
|
14
|
-
from langchain.agents.output_parsers import ReActSingleInputOutputParser
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def create_react_agent(
|
|
18
|
-
llm: BaseLanguageModel,
|
|
19
|
-
tools: Sequence[BaseTool],
|
|
20
|
-
prompt: BasePromptTemplate,
|
|
21
|
-
output_parser: Optional[AgentOutputParser] = None,
|
|
22
|
-
tools_renderer: ToolsRenderer = render_text_description,
|
|
23
|
-
*,
|
|
24
|
-
stop_sequence: Union[bool, list[str]] = True,
|
|
25
|
-
) -> Runnable:
|
|
26
|
-
"""Create an agent that uses ReAct prompting.
|
|
27
|
-
|
|
28
|
-
Based on paper "ReAct: Synergizing Reasoning and Acting in Language Models"
|
|
29
|
-
(https://arxiv.org/abs/2210.03629)
|
|
30
|
-
|
|
31
|
-
.. warning::
|
|
32
|
-
This implementation is based on the foundational ReAct paper but is older and not well-suited for production applications.
|
|
33
|
-
For a more robust and feature-rich implementation, we recommend using the `create_react_agent` function from the LangGraph library.
|
|
34
|
-
See the [reference doc](https://langchain-ai.github.io/langgraph/reference/prebuilt/#langgraph.prebuilt.chat_agent_executor.create_react_agent)
|
|
35
|
-
for more information.
|
|
36
|
-
|
|
37
|
-
Args:
|
|
38
|
-
llm: LLM to use as the agent.
|
|
39
|
-
tools: Tools this agent has access to.
|
|
40
|
-
prompt: The prompt to use. See Prompt section below for more.
|
|
41
|
-
output_parser: AgentOutputParser for parse the LLM output.
|
|
42
|
-
tools_renderer: This controls how the tools are converted into a string and
|
|
43
|
-
then passed into the LLM. Default is `render_text_description`.
|
|
44
|
-
stop_sequence: bool or list of str.
|
|
45
|
-
If True, adds a stop token of "Observation:" to avoid hallucinates.
|
|
46
|
-
If False, does not add a stop token.
|
|
47
|
-
If a list of str, uses the provided list as the stop tokens.
|
|
48
|
-
|
|
49
|
-
Default is True. You may to set this to False if the LLM you are using
|
|
50
|
-
does not support stop sequences.
|
|
51
|
-
|
|
52
|
-
Returns:
|
|
53
|
-
A Runnable sequence representing an agent. It takes as input all the same input
|
|
54
|
-
variables as the prompt passed in does. It returns as output either an
|
|
55
|
-
AgentAction or AgentFinish.
|
|
56
|
-
|
|
57
|
-
Examples:
|
|
58
|
-
|
|
59
|
-
.. code-block:: python
|
|
60
|
-
|
|
61
|
-
from langchain import hub
|
|
62
|
-
from langchain_community.llms import OpenAI
|
|
63
|
-
from langchain.agents import AgentExecutor, create_react_agent
|
|
64
|
-
|
|
65
|
-
prompt = hub.pull("hwchase17/react")
|
|
66
|
-
model = OpenAI()
|
|
67
|
-
tools = ...
|
|
68
|
-
|
|
69
|
-
agent = create_react_agent(model, tools, prompt)
|
|
70
|
-
agent_executor = AgentExecutor(agent=agent, tools=tools)
|
|
71
|
-
|
|
72
|
-
agent_executor.invoke({"input": "hi"})
|
|
73
|
-
|
|
74
|
-
# Use with chat history
|
|
75
|
-
from langchain_core.messages import AIMessage, HumanMessage
|
|
76
|
-
agent_executor.invoke(
|
|
77
|
-
{
|
|
78
|
-
"input": "what's my name?",
|
|
79
|
-
# Notice that chat_history is a string
|
|
80
|
-
# since this prompt is aimed at LLMs, not chat models
|
|
81
|
-
"chat_history": "Human: My name is Bob\\nAI: Hello Bob!",
|
|
82
|
-
}
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
Prompt:
|
|
86
|
-
|
|
87
|
-
The prompt must have input keys:
|
|
88
|
-
* `tools`: contains descriptions and arguments for each tool.
|
|
89
|
-
* `tool_names`: contains all tool names.
|
|
90
|
-
* `agent_scratchpad`: contains previous agent actions and tool outputs as a string.
|
|
91
|
-
|
|
92
|
-
Here's an example:
|
|
93
|
-
|
|
94
|
-
.. code-block:: python
|
|
95
|
-
|
|
96
|
-
from langchain_core.prompts import PromptTemplate
|
|
97
|
-
|
|
98
|
-
template = '''Answer the following questions as best you can. You have access to the following tools:
|
|
99
|
-
|
|
100
|
-
{tools}
|
|
101
|
-
|
|
102
|
-
Use the following format:
|
|
103
|
-
|
|
104
|
-
Question: the input question you must answer
|
|
105
|
-
Thought: you should always think about what to do
|
|
106
|
-
Action: the action to take, should be one of [{tool_names}]
|
|
107
|
-
Action Input: the input to the action
|
|
108
|
-
Observation: the result of the action
|
|
109
|
-
... (this Thought/Action/Action Input/Observation can repeat N times)
|
|
110
|
-
Thought: I now know the final answer
|
|
111
|
-
Final Answer: the final answer to the original input question
|
|
112
|
-
|
|
113
|
-
Begin!
|
|
114
|
-
|
|
115
|
-
Question: {input}
|
|
116
|
-
Thought:{agent_scratchpad}'''
|
|
117
|
-
|
|
118
|
-
prompt = PromptTemplate.from_template(template)
|
|
119
|
-
""" # noqa: E501
|
|
120
|
-
missing_vars = {"tools", "tool_names", "agent_scratchpad"}.difference(
|
|
121
|
-
prompt.input_variables + list(prompt.partial_variables),
|
|
122
|
-
)
|
|
123
|
-
if missing_vars:
|
|
124
|
-
msg = f"Prompt missing required variables: {missing_vars}"
|
|
125
|
-
raise ValueError(msg)
|
|
126
|
-
|
|
127
|
-
prompt = prompt.partial(
|
|
128
|
-
tools=tools_renderer(list(tools)),
|
|
129
|
-
tool_names=", ".join([t.name for t in tools]),
|
|
130
|
-
)
|
|
131
|
-
if stop_sequence:
|
|
132
|
-
stop = ["\nObservation"] if stop_sequence is True else stop_sequence
|
|
133
|
-
llm_with_stop = llm.bind(stop=stop)
|
|
134
|
-
else:
|
|
135
|
-
llm_with_stop = llm
|
|
136
|
-
output_parser = output_parser or ReActSingleInputOutputParser()
|
|
137
|
-
return (
|
|
138
|
-
RunnablePassthrough.assign(
|
|
139
|
-
agent_scratchpad=lambda x: format_log_to_str(x["intermediate_steps"]),
|
|
140
|
-
)
|
|
141
|
-
| prompt
|
|
142
|
-
| llm_with_stop
|
|
143
|
-
| output_parser
|
|
144
|
-
)
|