langchain 0.4.0.dev0__py3-none-any.whl → 1.0.0a2__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 +7 -434
- langchain/_internal/_documents.py +35 -0
- langchain/_internal/_lazy_import.py +36 -0
- langchain/_internal/_prompts.py +165 -0
- langchain/_internal/_typing.py +70 -0
- langchain/_internal/_utils.py +7 -0
- langchain/agents/__init__.py +5 -179
- langchain/agents/_internal/__init__.py +1 -0
- langchain/agents/_internal/_typing.py +13 -0
- langchain/agents/interrupt.py +92 -0
- langchain/agents/react_agent.py +1175 -0
- langchain/agents/structured_output.py +403 -0
- langchain/agents/tool_node.py +1174 -0
- langchain/chat_models/__init__.py +2 -75
- langchain/chat_models/base.py +138 -208
- langchain/{docstore/document.py → documents/__init__.py} +3 -1
- langchain/embeddings/__init__.py +2 -218
- langchain/embeddings/base.py +6 -13
- langchain/embeddings/cache.py +16 -19
- langchain/globals.py +4 -166
- langchain/storage/__init__.py +0 -35
- langchain/storage/encoder_backed.py +9 -19
- langchain/tools/__init__.py +8 -201
- {langchain-0.4.0.dev0.dist-info → langchain-1.0.0a2.dist-info}/METADATA +20 -26
- langchain-1.0.0a2.dist-info/RECORD +33 -0
- 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/openai.py +0 -63
- langchain/agents/agent.py +0 -1824
- langchain/agents/agent_iterator.py +0 -438
- 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 -219
- 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 -180
- 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 -178
- 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 -183
- 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 -196
- 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 -218
- 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 -103
- langchain/agents/openai_functions_agent/base.py +0 -382
- 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 -109
- langchain/agents/output_parsers/__init__.py +0 -35
- langchain/agents/output_parsers/json.py +0 -64
- langchain/agents/output_parsers/openai_functions.py +0 -103
- langchain/agents/output_parsers/openai_tools.py +0 -77
- langchain/agents/output_parsers/react_json_single_input.py +0 -87
- langchain/agents/output_parsers/react_single_input.py +0 -102
- langchain/agents/output_parsers/self_ask.py +0 -53
- langchain/agents/output_parsers/tools.py +0 -121
- langchain/agents/output_parsers/xml.py +0 -126
- langchain/agents/react/__init__.py +0 -1
- langchain/agents/react/agent.py +0 -145
- langchain/agents/react/base.py +0 -189
- langchain/agents/react/output_parser.py +0 -35
- langchain/agents/react/textworld_prompt.py +0 -51
- langchain/agents/react/wiki_prompt.py +0 -70
- langchain/agents/schema.py +0 -37
- langchain/agents/self_ask_with_search/__init__.py +0 -4
- langchain/agents/self_ask_with_search/base.py +0 -219
- 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 -309
- langchain/agents/structured_chat/output_parser.py +0 -112
- 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 -111
- langchain/agents/tools.py +0 -50
- 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 -237
- 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 -86
- langchain/callbacks/streaming_aiter_final_only.py +0 -100
- langchain/callbacks/streaming_stdout.py +0 -5
- langchain/callbacks/streaming_stdout_final_only.py +0 -96
- 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 -57
- 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 -398
- 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 -806
- 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 -293
- langchain/chains/combine_documents/map_reduce.py +0 -303
- langchain/chains/combine_documents/map_rerank.py +0 -249
- langchain/chains/combine_documents/reduce.py +0 -382
- langchain/chains/combine_documents/refine.py +0 -237
- langchain/chains/combine_documents/stuff.py +0 -292
- langchain/chains/constitutional_ai/__init__.py +0 -2
- langchain/chains/constitutional_ai/base.py +0 -328
- 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 -146
- 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 -576
- langchain/chains/conversational_retrieval/prompts.py +0 -19
- langchain/chains/elasticsearch_database/__init__.py +0 -3
- langchain/chains/elasticsearch_database/base.py +0 -212
- 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 -284
- langchain/chains/flare/prompts.py +0 -46
- 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 -447
- langchain/chains/llm_bash/__init__.py +0 -10
- langchain/chains/llm_checker/__init__.py +0 -4
- langchain/chains/llm_checker/base.py +0 -205
- langchain/chains/llm_checker/prompt.py +0 -30
- langchain/chains/llm_math/__init__.py +0 -4
- langchain/chains/llm_math/base.py +0 -319
- 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 -217
- 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 -734
- langchain/chains/mapreduce.py +0 -121
- langchain/chains/moderation.py +0 -135
- langchain/chains/natbot/__init__.py +0 -4
- langchain/chains/natbot/base.py +0 -165
- langchain/chains/natbot/crawler.py +0 -472
- langchain/chains/natbot/prompt.py +0 -143
- langchain/chains/openai_functions/__init__.py +0 -44
- langchain/chains/openai_functions/base.py +0 -237
- langchain/chains/openai_functions/citation_fuzzy_match.py +0 -169
- langchain/chains/openai_functions/extraction.py +0 -197
- langchain/chains/openai_functions/openapi.py +0 -409
- langchain/chains/openai_functions/qa_with_structure.py +0 -142
- langchain/chains/openai_functions/tagging.py +0 -174
- 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 -128
- 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 -266
- 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 -88
- langchain/chains/query_constructor/__init__.py +0 -3
- langchain/chains/query_constructor/base.py +0 -378
- langchain/chains/query_constructor/ir.py +0 -23
- langchain/chains/query_constructor/parser.py +0 -272
- 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 -374
- langchain/chains/retrieval_qa/prompt.py +0 -11
- langchain/chains/router/__init__.py +0 -12
- langchain/chains/router/base.py +0 -154
- langchain/chains/router/embedding_router.py +0 -96
- langchain/chains/router/llm_router.py +0 -198
- langchain/chains/router/multi_prompt.py +0 -184
- 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 -127
- 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 -167
- langchain/chains/structured_output/__init__.py +0 -6
- langchain/chains/structured_output/base.py +0 -584
- 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 -88
- 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/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 -26
- 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/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 -416
- langchain/evaluation/agents/trajectory_eval_prompt.py +0 -146
- langchain/evaluation/comparison/__init__.py +0 -36
- langchain/evaluation/comparison/eval_chain.py +0 -462
- langchain/evaluation/comparison/prompt.py +0 -59
- langchain/evaluation/criteria/__init__.py +0 -56
- langchain/evaluation/criteria/eval_chain.py +0 -606
- langchain/evaluation/criteria/prompt.py +0 -37
- langchain/evaluation/embedding_distance/__init__.py +0 -13
- langchain/evaluation/embedding_distance/base.py +0 -613
- langchain/evaluation/exact_match/__init__.py +0 -0
- langchain/evaluation/exact_match/base.py +0 -110
- langchain/evaluation/loading.py +0 -207
- langchain/evaluation/parsing/__init__.py +0 -0
- langchain/evaluation/parsing/base.py +0 -175
- langchain/evaluation/parsing/json_distance.py +0 -108
- langchain/evaluation/parsing/json_schema.py +0 -97
- langchain/evaluation/qa/__init__.py +0 -10
- langchain/evaluation/qa/eval_chain.py +0 -372
- langchain/evaluation/qa/eval_prompt.py +0 -78
- langchain/evaluation/qa/generate_chain.py +0 -36
- langchain/evaluation/qa/generate_prompt.py +0 -21
- langchain/evaluation/regex_match/__init__.py +0 -0
- langchain/evaluation/regex_match/base.py +0 -94
- langchain/evaluation/schema.py +0 -491
- langchain/evaluation/scoring/__init__.py +0 -31
- langchain/evaluation/scoring/eval_chain.py +0 -476
- langchain/evaluation/scoring/prompt.py +0 -53
- langchain/evaluation/string_distance/__init__.py +0 -13
- langchain/evaluation/string_distance/base.py +0 -472
- langchain/example_generator.py +0 -5
- langchain/formatting.py +0 -5
- 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 -178
- langchain/memory/buffer_window.py +0 -62
- 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 -611
- 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 -27
- langchain/memory/summary.py +0 -170
- langchain/memory/summary_buffer.py +0 -151
- langchain/memory/token_buffer.py +0 -74
- 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 -59
- langchain/output_parsers/datetime.py +0 -58
- langchain/output_parsers/enum.py +0 -45
- langchain/output_parsers/ernie_functions.py +0 -45
- langchain/output_parsers/fix.py +0 -155
- 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 -171
- 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 -41
- langchain/output_parsers/regex_dict.py +0 -43
- langchain/output_parsers/retry.py +0 -316
- langchain/output_parsers/structured.py +0 -116
- langchain/output_parsers/xml.py +0 -3
- langchain/output_parsers/yaml.py +0 -77
- 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 -123
- 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 -126
- langchain/retrievers/document_compressors/cross_encoder.py +0 -16
- langchain/retrievers/document_compressors/cross_encoder_rerank.py +0 -50
- langchain/retrievers/document_compressors/embeddings_filter.py +0 -140
- langchain/retrievers/document_compressors/flashrank_rerank.py +0 -27
- langchain/retrievers/document_compressors/listwise_rerank.py +0 -145
- 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 -233
- langchain/retrievers/multi_vector.py +0 -135
- langchain/retrievers/outline.py +0 -23
- langchain/retrievers/parent_document_retriever.py +0 -172
- 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 -416
- 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 -196
- 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 -44
- langchain/runnables/openai_functions.py +0 -57
- 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 -103
- langchain/smith/evaluation/__init__.py +0 -68
- langchain/smith/evaluation/config.py +0 -365
- langchain/smith/evaluation/name_generation.py +0 -727
- langchain/smith/evaluation/progress.py +0 -146
- langchain/smith/evaluation/runner_utils.py +0 -1689
- langchain/smith/evaluation/string_run_evaluator.py +0 -467
- langchain/sql_database.py +0 -25
- langchain/storage/_lc_store.py +0 -91
- langchain/storage/file_system.py +0 -176
- langchain/storage/redis.py +0 -23
- langchain/storage/upstash_redis.py +0 -27
- 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.4.0.dev0.dist-info/RECORD +0 -1341
- /langchain/{adapters → _internal}/__init__.py +0 -0
- {langchain-0.4.0.dev0.dist-info → langchain-1.0.0a2.dist-info}/WHEEL +0 -0
- {langchain-0.4.0.dev0.dist-info → langchain-1.0.0a2.dist-info}/entry_points.txt +0 -0
- {langchain-0.4.0.dev0.dist-info → langchain-1.0.0a2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
"""Chain that does self-ask with search."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from collections.abc import Sequence
|
|
6
|
-
from typing import TYPE_CHECKING, Any, Union
|
|
7
|
-
|
|
8
|
-
from langchain_core._api import deprecated
|
|
9
|
-
from langchain_core.language_models import BaseLanguageModel
|
|
10
|
-
from langchain_core.prompts import BasePromptTemplate
|
|
11
|
-
from langchain_core.runnables import Runnable, RunnablePassthrough
|
|
12
|
-
from langchain_core.tools import BaseTool, Tool
|
|
13
|
-
from pydantic import Field
|
|
14
|
-
from typing_extensions import override
|
|
15
|
-
|
|
16
|
-
from langchain.agents.agent import Agent, AgentExecutor, AgentOutputParser
|
|
17
|
-
from langchain.agents.agent_types import AgentType
|
|
18
|
-
from langchain.agents.format_scratchpad import format_log_to_str
|
|
19
|
-
from langchain.agents.self_ask_with_search.output_parser import SelfAskOutputParser
|
|
20
|
-
from langchain.agents.self_ask_with_search.prompt import PROMPT
|
|
21
|
-
from langchain.agents.utils import validate_tools_single_input
|
|
22
|
-
|
|
23
|
-
if TYPE_CHECKING:
|
|
24
|
-
from langchain_community.utilities.google_serper import GoogleSerperAPIWrapper
|
|
25
|
-
from langchain_community.utilities.searchapi import SearchApiAPIWrapper
|
|
26
|
-
from langchain_community.utilities.serpapi import SerpAPIWrapper
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@deprecated("0.1.0", alternative="create_self_ask_with_search", removal="1.0")
|
|
30
|
-
class SelfAskWithSearchAgent(Agent):
|
|
31
|
-
"""Agent for the self-ask-with-search paper."""
|
|
32
|
-
|
|
33
|
-
output_parser: AgentOutputParser = Field(default_factory=SelfAskOutputParser)
|
|
34
|
-
|
|
35
|
-
@classmethod
|
|
36
|
-
@override
|
|
37
|
-
def _get_default_output_parser(cls, **kwargs: Any) -> AgentOutputParser:
|
|
38
|
-
return SelfAskOutputParser()
|
|
39
|
-
|
|
40
|
-
@property
|
|
41
|
-
def _agent_type(self) -> str:
|
|
42
|
-
"""Return Identifier of an agent type."""
|
|
43
|
-
return AgentType.SELF_ASK_WITH_SEARCH
|
|
44
|
-
|
|
45
|
-
@classmethod
|
|
46
|
-
@override
|
|
47
|
-
def create_prompt(cls, tools: Sequence[BaseTool]) -> BasePromptTemplate:
|
|
48
|
-
"""Prompt does not depend on tools."""
|
|
49
|
-
return PROMPT
|
|
50
|
-
|
|
51
|
-
@classmethod
|
|
52
|
-
def _validate_tools(cls, tools: Sequence[BaseTool]) -> None:
|
|
53
|
-
validate_tools_single_input(cls.__name__, tools)
|
|
54
|
-
super()._validate_tools(tools)
|
|
55
|
-
if len(tools) != 1:
|
|
56
|
-
msg = f"Exactly one tool must be specified, but got {tools}"
|
|
57
|
-
raise ValueError(msg)
|
|
58
|
-
tool_names = {tool.name for tool in tools}
|
|
59
|
-
if tool_names != {"Intermediate Answer"}:
|
|
60
|
-
msg = f"Tool name should be Intermediate Answer, got {tool_names}"
|
|
61
|
-
raise ValueError(msg)
|
|
62
|
-
|
|
63
|
-
@property
|
|
64
|
-
def observation_prefix(self) -> str:
|
|
65
|
-
"""Prefix to append the observation with."""
|
|
66
|
-
return "Intermediate answer: "
|
|
67
|
-
|
|
68
|
-
@property
|
|
69
|
-
def llm_prefix(self) -> str:
|
|
70
|
-
"""Prefix to append the LLM call with."""
|
|
71
|
-
return ""
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
@deprecated("0.1.0", removal="1.0")
|
|
75
|
-
class SelfAskWithSearchChain(AgentExecutor):
|
|
76
|
-
"""[Deprecated] Chain that does self-ask with search."""
|
|
77
|
-
|
|
78
|
-
def __init__(
|
|
79
|
-
self,
|
|
80
|
-
llm: BaseLanguageModel,
|
|
81
|
-
search_chain: Union[
|
|
82
|
-
GoogleSerperAPIWrapper,
|
|
83
|
-
SearchApiAPIWrapper,
|
|
84
|
-
SerpAPIWrapper,
|
|
85
|
-
],
|
|
86
|
-
**kwargs: Any,
|
|
87
|
-
):
|
|
88
|
-
"""Initialize only with an LLM and a search chain."""
|
|
89
|
-
search_tool = Tool(
|
|
90
|
-
name="Intermediate Answer",
|
|
91
|
-
func=search_chain.run,
|
|
92
|
-
coroutine=search_chain.arun,
|
|
93
|
-
description="Search",
|
|
94
|
-
)
|
|
95
|
-
agent = SelfAskWithSearchAgent.from_llm_and_tools(llm, [search_tool])
|
|
96
|
-
super().__init__(agent=agent, tools=[search_tool], **kwargs)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
def create_self_ask_with_search_agent(
|
|
100
|
-
llm: BaseLanguageModel,
|
|
101
|
-
tools: Sequence[BaseTool],
|
|
102
|
-
prompt: BasePromptTemplate,
|
|
103
|
-
) -> Runnable:
|
|
104
|
-
"""Create an agent that uses self-ask with search prompting.
|
|
105
|
-
|
|
106
|
-
Args:
|
|
107
|
-
llm: LLM to use as the agent.
|
|
108
|
-
tools: List of tools. Should just be of length 1, with that tool having
|
|
109
|
-
name `Intermediate Answer`
|
|
110
|
-
prompt: The prompt to use, must have input key `agent_scratchpad` which will
|
|
111
|
-
contain agent actions and tool outputs.
|
|
112
|
-
|
|
113
|
-
Returns:
|
|
114
|
-
A Runnable sequence representing an agent. It takes as input all the same input
|
|
115
|
-
variables as the prompt passed in does. It returns as output either an
|
|
116
|
-
AgentAction or AgentFinish.
|
|
117
|
-
|
|
118
|
-
Examples:
|
|
119
|
-
|
|
120
|
-
.. code-block:: python
|
|
121
|
-
|
|
122
|
-
from langchain import hub
|
|
123
|
-
from langchain_community.chat_models import ChatAnthropic
|
|
124
|
-
from langchain.agents import (
|
|
125
|
-
AgentExecutor, create_self_ask_with_search_agent
|
|
126
|
-
)
|
|
127
|
-
|
|
128
|
-
prompt = hub.pull("hwchase17/self-ask-with-search")
|
|
129
|
-
model = ChatAnthropic(model="claude-3-haiku-20240307")
|
|
130
|
-
tools = [...] # Should just be one tool with name `Intermediate Answer`
|
|
131
|
-
|
|
132
|
-
agent = create_self_ask_with_search_agent(model, tools, prompt)
|
|
133
|
-
agent_executor = AgentExecutor(agent=agent, tools=tools)
|
|
134
|
-
|
|
135
|
-
agent_executor.invoke({"input": "hi"})
|
|
136
|
-
|
|
137
|
-
Prompt:
|
|
138
|
-
|
|
139
|
-
The prompt must have input key `agent_scratchpad` which will
|
|
140
|
-
contain agent actions and tool outputs as a string.
|
|
141
|
-
|
|
142
|
-
Here's an example:
|
|
143
|
-
|
|
144
|
-
.. code-block:: python
|
|
145
|
-
|
|
146
|
-
from langchain_core.prompts import PromptTemplate
|
|
147
|
-
|
|
148
|
-
template = '''Question: Who lived longer, Muhammad Ali or Alan Turing?
|
|
149
|
-
Are follow up questions needed here: Yes.
|
|
150
|
-
Follow up: How old was Muhammad Ali when he died?
|
|
151
|
-
Intermediate answer: Muhammad Ali was 74 years old when he died.
|
|
152
|
-
Follow up: How old was Alan Turing when he died?
|
|
153
|
-
Intermediate answer: Alan Turing was 41 years old when he died.
|
|
154
|
-
So the final answer is: Muhammad Ali
|
|
155
|
-
|
|
156
|
-
Question: When was the founder of craigslist born?
|
|
157
|
-
Are follow up questions needed here: Yes.
|
|
158
|
-
Follow up: Who was the founder of craigslist?
|
|
159
|
-
Intermediate answer: Craigslist was founded by Craig Newmark.
|
|
160
|
-
Follow up: When was Craig Newmark born?
|
|
161
|
-
Intermediate answer: Craig Newmark was born on December 6, 1952.
|
|
162
|
-
So the final answer is: December 6, 1952
|
|
163
|
-
|
|
164
|
-
Question: Who was the maternal grandfather of George Washington?
|
|
165
|
-
Are follow up questions needed here: Yes.
|
|
166
|
-
Follow up: Who was the mother of George Washington?
|
|
167
|
-
Intermediate answer: The mother of George Washington was Mary Ball Washington.
|
|
168
|
-
Follow up: Who was the father of Mary Ball Washington?
|
|
169
|
-
Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
|
|
170
|
-
So the final answer is: Joseph Ball
|
|
171
|
-
|
|
172
|
-
Question: Are both the directors of Jaws and Casino Royale from the same country?
|
|
173
|
-
Are follow up questions needed here: Yes.
|
|
174
|
-
Follow up: Who is the director of Jaws?
|
|
175
|
-
Intermediate answer: The director of Jaws is Steven Spielberg.
|
|
176
|
-
Follow up: Where is Steven Spielberg from?
|
|
177
|
-
Intermediate answer: The United States.
|
|
178
|
-
Follow up: Who is the director of Casino Royale?
|
|
179
|
-
Intermediate answer: The director of Casino Royale is Martin Campbell.
|
|
180
|
-
Follow up: Where is Martin Campbell from?
|
|
181
|
-
Intermediate answer: New Zealand.
|
|
182
|
-
So the final answer is: No
|
|
183
|
-
|
|
184
|
-
Question: {input}
|
|
185
|
-
Are followup questions needed here:{agent_scratchpad}'''
|
|
186
|
-
|
|
187
|
-
prompt = PromptTemplate.from_template(template)
|
|
188
|
-
|
|
189
|
-
""" # noqa: E501
|
|
190
|
-
missing_vars = {"agent_scratchpad"}.difference(
|
|
191
|
-
prompt.input_variables + list(prompt.partial_variables),
|
|
192
|
-
)
|
|
193
|
-
if missing_vars:
|
|
194
|
-
msg = f"Prompt missing required variables: {missing_vars}"
|
|
195
|
-
raise ValueError(msg)
|
|
196
|
-
|
|
197
|
-
if len(tools) != 1:
|
|
198
|
-
msg = "This agent expects exactly one tool"
|
|
199
|
-
raise ValueError(msg)
|
|
200
|
-
tool = next(iter(tools))
|
|
201
|
-
if tool.name != "Intermediate Answer":
|
|
202
|
-
msg = "This agent expects the tool to be named `Intermediate Answer`"
|
|
203
|
-
raise ValueError(msg)
|
|
204
|
-
|
|
205
|
-
llm_with_stop = llm.bind(stop=["\nIntermediate answer:"])
|
|
206
|
-
return (
|
|
207
|
-
RunnablePassthrough.assign(
|
|
208
|
-
agent_scratchpad=lambda x: format_log_to_str(
|
|
209
|
-
x["intermediate_steps"],
|
|
210
|
-
observation_prefix="\nIntermediate answer: ",
|
|
211
|
-
llm_prefix="",
|
|
212
|
-
),
|
|
213
|
-
# Give it a default
|
|
214
|
-
chat_history=lambda x: x.get("chat_history", ""),
|
|
215
|
-
)
|
|
216
|
-
| prompt
|
|
217
|
-
| llm_with_stop
|
|
218
|
-
| SelfAskOutputParser()
|
|
219
|
-
)
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
from langchain_core.prompts.prompt import PromptTemplate
|
|
2
|
-
|
|
3
|
-
_DEFAULT_TEMPLATE = """Question: Who lived longer, Muhammad Ali or Alan Turing?
|
|
4
|
-
Are follow up questions needed here: Yes.
|
|
5
|
-
Follow up: How old was Muhammad Ali when he died?
|
|
6
|
-
Intermediate answer: Muhammad Ali was 74 years old when he died.
|
|
7
|
-
Follow up: How old was Alan Turing when he died?
|
|
8
|
-
Intermediate answer: Alan Turing was 41 years old when he died.
|
|
9
|
-
So the final answer is: Muhammad Ali
|
|
10
|
-
|
|
11
|
-
Question: When was the founder of craigslist born?
|
|
12
|
-
Are follow up questions needed here: Yes.
|
|
13
|
-
Follow up: Who was the founder of craigslist?
|
|
14
|
-
Intermediate answer: Craigslist was founded by Craig Newmark.
|
|
15
|
-
Follow up: When was Craig Newmark born?
|
|
16
|
-
Intermediate answer: Craig Newmark was born on December 6, 1952.
|
|
17
|
-
So the final answer is: December 6, 1952
|
|
18
|
-
|
|
19
|
-
Question: Who was the maternal grandfather of George Washington?
|
|
20
|
-
Are follow up questions needed here: Yes.
|
|
21
|
-
Follow up: Who was the mother of George Washington?
|
|
22
|
-
Intermediate answer: The mother of George Washington was Mary Ball Washington.
|
|
23
|
-
Follow up: Who was the father of Mary Ball Washington?
|
|
24
|
-
Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
|
|
25
|
-
So the final answer is: Joseph Ball
|
|
26
|
-
|
|
27
|
-
Question: Are both the directors of Jaws and Casino Royale from the same country?
|
|
28
|
-
Are follow up questions needed here: Yes.
|
|
29
|
-
Follow up: Who is the director of Jaws?
|
|
30
|
-
Intermediate answer: The director of Jaws is Steven Spielberg.
|
|
31
|
-
Follow up: Where is Steven Spielberg from?
|
|
32
|
-
Intermediate answer: The United States.
|
|
33
|
-
Follow up: Who is the director of Casino Royale?
|
|
34
|
-
Intermediate answer: The director of Casino Royale is Martin Campbell.
|
|
35
|
-
Follow up: Where is Martin Campbell from?
|
|
36
|
-
Intermediate answer: New Zealand.
|
|
37
|
-
So the final answer is: No
|
|
38
|
-
|
|
39
|
-
Question: {input}
|
|
40
|
-
Are followup questions needed here:{agent_scratchpad}"""
|
|
41
|
-
PROMPT = PromptTemplate(
|
|
42
|
-
input_variables=["input", "agent_scratchpad"], template=_DEFAULT_TEMPLATE
|
|
43
|
-
)
|
|
File without changes
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
from collections.abc import Sequence
|
|
3
|
-
from typing import Any, Optional, Union
|
|
4
|
-
|
|
5
|
-
from langchain_core._api import deprecated
|
|
6
|
-
from langchain_core.agents import AgentAction
|
|
7
|
-
from langchain_core.callbacks import BaseCallbackManager
|
|
8
|
-
from langchain_core.language_models import BaseLanguageModel
|
|
9
|
-
from langchain_core.prompts import BasePromptTemplate
|
|
10
|
-
from langchain_core.prompts.chat import (
|
|
11
|
-
ChatPromptTemplate,
|
|
12
|
-
HumanMessagePromptTemplate,
|
|
13
|
-
SystemMessagePromptTemplate,
|
|
14
|
-
)
|
|
15
|
-
from langchain_core.runnables import Runnable, RunnablePassthrough
|
|
16
|
-
from langchain_core.tools import BaseTool
|
|
17
|
-
from langchain_core.tools.render import ToolsRenderer
|
|
18
|
-
from pydantic import Field
|
|
19
|
-
from typing_extensions import override
|
|
20
|
-
|
|
21
|
-
from langchain.agents.agent import Agent, AgentOutputParser
|
|
22
|
-
from langchain.agents.format_scratchpad import format_log_to_str
|
|
23
|
-
from langchain.agents.output_parsers import JSONAgentOutputParser
|
|
24
|
-
from langchain.agents.structured_chat.output_parser import (
|
|
25
|
-
StructuredChatOutputParserWithRetries,
|
|
26
|
-
)
|
|
27
|
-
from langchain.agents.structured_chat.prompt import FORMAT_INSTRUCTIONS, PREFIX, SUFFIX
|
|
28
|
-
from langchain.chains.llm import LLMChain
|
|
29
|
-
from langchain.tools.render import render_text_description_and_args
|
|
30
|
-
|
|
31
|
-
HUMAN_MESSAGE_TEMPLATE = "{input}\n\n{agent_scratchpad}"
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
@deprecated("0.1.0", alternative="create_structured_chat_agent", removal="1.0")
|
|
35
|
-
class StructuredChatAgent(Agent):
|
|
36
|
-
"""Structured Chat Agent."""
|
|
37
|
-
|
|
38
|
-
output_parser: AgentOutputParser = Field(
|
|
39
|
-
default_factory=StructuredChatOutputParserWithRetries,
|
|
40
|
-
)
|
|
41
|
-
"""Output parser for the agent."""
|
|
42
|
-
|
|
43
|
-
@property
|
|
44
|
-
def observation_prefix(self) -> str:
|
|
45
|
-
"""Prefix to append the observation with."""
|
|
46
|
-
return "Observation: "
|
|
47
|
-
|
|
48
|
-
@property
|
|
49
|
-
def llm_prefix(self) -> str:
|
|
50
|
-
"""Prefix to append the llm call with."""
|
|
51
|
-
return "Thought:"
|
|
52
|
-
|
|
53
|
-
def _construct_scratchpad(
|
|
54
|
-
self,
|
|
55
|
-
intermediate_steps: list[tuple[AgentAction, str]],
|
|
56
|
-
) -> str:
|
|
57
|
-
agent_scratchpad = super()._construct_scratchpad(intermediate_steps)
|
|
58
|
-
if not isinstance(agent_scratchpad, str):
|
|
59
|
-
msg = "agent_scratchpad should be of type string."
|
|
60
|
-
raise ValueError(msg) # noqa: TRY004
|
|
61
|
-
if agent_scratchpad:
|
|
62
|
-
return (
|
|
63
|
-
f"This was your previous work "
|
|
64
|
-
f"(but I haven't seen any of it! I only see what "
|
|
65
|
-
f"you return as final answer):\n{agent_scratchpad}"
|
|
66
|
-
)
|
|
67
|
-
return agent_scratchpad
|
|
68
|
-
|
|
69
|
-
@classmethod
|
|
70
|
-
def _validate_tools(cls, tools: Sequence[BaseTool]) -> None:
|
|
71
|
-
pass
|
|
72
|
-
|
|
73
|
-
@classmethod
|
|
74
|
-
@override
|
|
75
|
-
def _get_default_output_parser(
|
|
76
|
-
cls,
|
|
77
|
-
llm: Optional[BaseLanguageModel] = None,
|
|
78
|
-
**kwargs: Any,
|
|
79
|
-
) -> AgentOutputParser:
|
|
80
|
-
return StructuredChatOutputParserWithRetries.from_llm(llm=llm)
|
|
81
|
-
|
|
82
|
-
@property
|
|
83
|
-
@override
|
|
84
|
-
def _stop(self) -> list[str]:
|
|
85
|
-
return ["Observation:"]
|
|
86
|
-
|
|
87
|
-
@classmethod
|
|
88
|
-
@override
|
|
89
|
-
def create_prompt(
|
|
90
|
-
cls,
|
|
91
|
-
tools: Sequence[BaseTool],
|
|
92
|
-
prefix: str = PREFIX,
|
|
93
|
-
suffix: str = SUFFIX,
|
|
94
|
-
human_message_template: str = HUMAN_MESSAGE_TEMPLATE,
|
|
95
|
-
format_instructions: str = FORMAT_INSTRUCTIONS,
|
|
96
|
-
input_variables: Optional[list[str]] = None,
|
|
97
|
-
memory_prompts: Optional[list[BasePromptTemplate]] = None,
|
|
98
|
-
) -> BasePromptTemplate:
|
|
99
|
-
tool_strings = []
|
|
100
|
-
for tool in tools:
|
|
101
|
-
args_schema = re.sub("}", "}}", re.sub("{", "{{", str(tool.args)))
|
|
102
|
-
tool_strings.append(f"{tool.name}: {tool.description}, args: {args_schema}")
|
|
103
|
-
formatted_tools = "\n".join(tool_strings)
|
|
104
|
-
tool_names = ", ".join([tool.name for tool in tools])
|
|
105
|
-
format_instructions = format_instructions.format(tool_names=tool_names)
|
|
106
|
-
template = f"{prefix}\n\n{formatted_tools}\n\n{format_instructions}\n\n{suffix}"
|
|
107
|
-
if input_variables is None:
|
|
108
|
-
input_variables = ["input", "agent_scratchpad"]
|
|
109
|
-
_memory_prompts = memory_prompts or []
|
|
110
|
-
messages = [
|
|
111
|
-
SystemMessagePromptTemplate.from_template(template),
|
|
112
|
-
*_memory_prompts,
|
|
113
|
-
HumanMessagePromptTemplate.from_template(human_message_template),
|
|
114
|
-
]
|
|
115
|
-
return ChatPromptTemplate(input_variables=input_variables, messages=messages) # type: ignore[arg-type]
|
|
116
|
-
|
|
117
|
-
@classmethod
|
|
118
|
-
def from_llm_and_tools(
|
|
119
|
-
cls,
|
|
120
|
-
llm: BaseLanguageModel,
|
|
121
|
-
tools: Sequence[BaseTool],
|
|
122
|
-
callback_manager: Optional[BaseCallbackManager] = None,
|
|
123
|
-
output_parser: Optional[AgentOutputParser] = None,
|
|
124
|
-
prefix: str = PREFIX,
|
|
125
|
-
suffix: str = SUFFIX,
|
|
126
|
-
human_message_template: str = HUMAN_MESSAGE_TEMPLATE,
|
|
127
|
-
format_instructions: str = FORMAT_INSTRUCTIONS,
|
|
128
|
-
input_variables: Optional[list[str]] = None,
|
|
129
|
-
memory_prompts: Optional[list[BasePromptTemplate]] = None,
|
|
130
|
-
**kwargs: Any,
|
|
131
|
-
) -> Agent:
|
|
132
|
-
"""Construct an agent from an LLM and tools."""
|
|
133
|
-
cls._validate_tools(tools)
|
|
134
|
-
prompt = cls.create_prompt(
|
|
135
|
-
tools,
|
|
136
|
-
prefix=prefix,
|
|
137
|
-
suffix=suffix,
|
|
138
|
-
human_message_template=human_message_template,
|
|
139
|
-
format_instructions=format_instructions,
|
|
140
|
-
input_variables=input_variables,
|
|
141
|
-
memory_prompts=memory_prompts,
|
|
142
|
-
)
|
|
143
|
-
llm_chain = LLMChain(
|
|
144
|
-
llm=llm,
|
|
145
|
-
prompt=prompt,
|
|
146
|
-
callback_manager=callback_manager,
|
|
147
|
-
)
|
|
148
|
-
tool_names = [tool.name for tool in tools]
|
|
149
|
-
_output_parser = output_parser or cls._get_default_output_parser(llm=llm)
|
|
150
|
-
return cls(
|
|
151
|
-
llm_chain=llm_chain,
|
|
152
|
-
allowed_tools=tool_names,
|
|
153
|
-
output_parser=_output_parser,
|
|
154
|
-
**kwargs,
|
|
155
|
-
)
|
|
156
|
-
|
|
157
|
-
@property
|
|
158
|
-
def _agent_type(self) -> str:
|
|
159
|
-
raise ValueError
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
def create_structured_chat_agent(
|
|
163
|
-
llm: BaseLanguageModel,
|
|
164
|
-
tools: Sequence[BaseTool],
|
|
165
|
-
prompt: ChatPromptTemplate,
|
|
166
|
-
tools_renderer: ToolsRenderer = render_text_description_and_args,
|
|
167
|
-
*,
|
|
168
|
-
stop_sequence: Union[bool, list[str]] = True,
|
|
169
|
-
) -> Runnable:
|
|
170
|
-
"""Create an agent aimed at supporting tools with multiple inputs.
|
|
171
|
-
|
|
172
|
-
Args:
|
|
173
|
-
llm: LLM to use as the agent.
|
|
174
|
-
tools: Tools this agent has access to.
|
|
175
|
-
prompt: The prompt to use. See Prompt section below for more.
|
|
176
|
-
stop_sequence: bool or list of str.
|
|
177
|
-
If True, adds a stop token of "Observation:" to avoid hallucinates.
|
|
178
|
-
If False, does not add a stop token.
|
|
179
|
-
If a list of str, uses the provided list as the stop tokens.
|
|
180
|
-
|
|
181
|
-
Default is True. You may to set this to False if the LLM you are using
|
|
182
|
-
does not support stop sequences.
|
|
183
|
-
tools_renderer: This controls how the tools are converted into a string and
|
|
184
|
-
then passed into the LLM. Default is `render_text_description`.
|
|
185
|
-
|
|
186
|
-
Returns:
|
|
187
|
-
A Runnable sequence representing an agent. It takes as input all the same input
|
|
188
|
-
variables as the prompt passed in does. It returns as output either an
|
|
189
|
-
AgentAction or AgentFinish.
|
|
190
|
-
|
|
191
|
-
Examples:
|
|
192
|
-
|
|
193
|
-
.. code-block:: python
|
|
194
|
-
|
|
195
|
-
from langchain import hub
|
|
196
|
-
from langchain_community.chat_models import ChatOpenAI
|
|
197
|
-
from langchain.agents import AgentExecutor, create_structured_chat_agent
|
|
198
|
-
|
|
199
|
-
prompt = hub.pull("hwchase17/structured-chat-agent")
|
|
200
|
-
model = ChatOpenAI()
|
|
201
|
-
tools = ...
|
|
202
|
-
|
|
203
|
-
agent = create_structured_chat_agent(model, tools, prompt)
|
|
204
|
-
agent_executor = AgentExecutor(agent=agent, tools=tools)
|
|
205
|
-
|
|
206
|
-
agent_executor.invoke({"input": "hi"})
|
|
207
|
-
|
|
208
|
-
# Using with chat history
|
|
209
|
-
from langchain_core.messages import AIMessage, HumanMessage
|
|
210
|
-
agent_executor.invoke(
|
|
211
|
-
{
|
|
212
|
-
"input": "what's my name?",
|
|
213
|
-
"chat_history": [
|
|
214
|
-
HumanMessage(content="hi! my name is bob"),
|
|
215
|
-
AIMessage(content="Hello Bob! How can I assist you today?"),
|
|
216
|
-
],
|
|
217
|
-
}
|
|
218
|
-
)
|
|
219
|
-
|
|
220
|
-
Prompt:
|
|
221
|
-
|
|
222
|
-
The prompt must have input keys:
|
|
223
|
-
* `tools`: contains descriptions and arguments for each tool.
|
|
224
|
-
* `tool_names`: contains all tool names.
|
|
225
|
-
* `agent_scratchpad`: contains previous agent actions and tool outputs as a string.
|
|
226
|
-
|
|
227
|
-
Here's an example:
|
|
228
|
-
|
|
229
|
-
.. code-block:: python
|
|
230
|
-
|
|
231
|
-
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
|
|
232
|
-
|
|
233
|
-
system = '''Respond to the human as helpfully and accurately as possible. You have access to the following tools:
|
|
234
|
-
|
|
235
|
-
{tools}
|
|
236
|
-
|
|
237
|
-
Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input).
|
|
238
|
-
|
|
239
|
-
Valid "action" values: "Final Answer" or {tool_names}
|
|
240
|
-
|
|
241
|
-
Provide only ONE action per $JSON_BLOB, as shown:
|
|
242
|
-
|
|
243
|
-
```
|
|
244
|
-
{{
|
|
245
|
-
"action": $TOOL_NAME,
|
|
246
|
-
"action_input": $INPUT
|
|
247
|
-
}}
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
Follow this format:
|
|
251
|
-
|
|
252
|
-
Question: input question to answer
|
|
253
|
-
Thought: consider previous and subsequent steps
|
|
254
|
-
Action:
|
|
255
|
-
```
|
|
256
|
-
$JSON_BLOB
|
|
257
|
-
```
|
|
258
|
-
Observation: action result
|
|
259
|
-
... (repeat Thought/Action/Observation N times)
|
|
260
|
-
Thought: I know what to respond
|
|
261
|
-
Action:
|
|
262
|
-
```
|
|
263
|
-
{{
|
|
264
|
-
"action": "Final Answer",
|
|
265
|
-
"action_input": "Final response to human"
|
|
266
|
-
}}
|
|
267
|
-
|
|
268
|
-
Begin! Reminder to ALWAYS respond with a valid json blob of a single action. Use tools if necessary. Respond directly if appropriate. Format is Action:```$JSON_BLOB```then Observation'''
|
|
269
|
-
|
|
270
|
-
human = '''{input}
|
|
271
|
-
|
|
272
|
-
{agent_scratchpad}
|
|
273
|
-
|
|
274
|
-
(reminder to respond in a JSON blob no matter what)'''
|
|
275
|
-
|
|
276
|
-
prompt = ChatPromptTemplate.from_messages(
|
|
277
|
-
[
|
|
278
|
-
("system", system),
|
|
279
|
-
MessagesPlaceholder("chat_history", optional=True),
|
|
280
|
-
("human", human),
|
|
281
|
-
]
|
|
282
|
-
)
|
|
283
|
-
|
|
284
|
-
""" # noqa: E501
|
|
285
|
-
missing_vars = {"tools", "tool_names", "agent_scratchpad"}.difference(
|
|
286
|
-
prompt.input_variables + list(prompt.partial_variables),
|
|
287
|
-
)
|
|
288
|
-
if missing_vars:
|
|
289
|
-
msg = f"Prompt missing required variables: {missing_vars}"
|
|
290
|
-
raise ValueError(msg)
|
|
291
|
-
|
|
292
|
-
prompt = prompt.partial(
|
|
293
|
-
tools=tools_renderer(list(tools)),
|
|
294
|
-
tool_names=", ".join([t.name for t in tools]),
|
|
295
|
-
)
|
|
296
|
-
if stop_sequence:
|
|
297
|
-
stop = ["\nObservation"] if stop_sequence is True else stop_sequence
|
|
298
|
-
llm_with_stop = llm.bind(stop=stop)
|
|
299
|
-
else:
|
|
300
|
-
llm_with_stop = llm
|
|
301
|
-
|
|
302
|
-
return (
|
|
303
|
-
RunnablePassthrough.assign(
|
|
304
|
-
agent_scratchpad=lambda x: format_log_to_str(x["intermediate_steps"]),
|
|
305
|
-
)
|
|
306
|
-
| prompt
|
|
307
|
-
| llm_with_stop
|
|
308
|
-
| JSONAgentOutputParser()
|
|
309
|
-
)
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import json
|
|
4
|
-
import logging
|
|
5
|
-
import re
|
|
6
|
-
from re import Pattern
|
|
7
|
-
from typing import Optional, Union
|
|
8
|
-
|
|
9
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
10
|
-
from langchain_core.exceptions import OutputParserException
|
|
11
|
-
from langchain_core.language_models import BaseLanguageModel
|
|
12
|
-
from pydantic import Field
|
|
13
|
-
from typing_extensions import override
|
|
14
|
-
|
|
15
|
-
from langchain.agents.agent import AgentOutputParser
|
|
16
|
-
from langchain.agents.structured_chat.prompt import FORMAT_INSTRUCTIONS
|
|
17
|
-
from langchain.output_parsers import OutputFixingParser
|
|
18
|
-
|
|
19
|
-
logger = logging.getLogger(__name__)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class StructuredChatOutputParser(AgentOutputParser):
|
|
23
|
-
"""Output parser for the structured chat agent."""
|
|
24
|
-
|
|
25
|
-
format_instructions: str = FORMAT_INSTRUCTIONS
|
|
26
|
-
"""Default formatting instructions"""
|
|
27
|
-
|
|
28
|
-
pattern: Pattern = re.compile(r"```(?:json\s+)?(\W.*?)```", re.DOTALL)
|
|
29
|
-
"""Regex pattern to parse the output."""
|
|
30
|
-
|
|
31
|
-
@override
|
|
32
|
-
def get_format_instructions(self) -> str:
|
|
33
|
-
"""Returns formatting instructions for the given output parser."""
|
|
34
|
-
return self.format_instructions
|
|
35
|
-
|
|
36
|
-
@override
|
|
37
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
38
|
-
try:
|
|
39
|
-
action_match = self.pattern.search(text)
|
|
40
|
-
if action_match is not None:
|
|
41
|
-
response = json.loads(action_match.group(1).strip(), strict=False)
|
|
42
|
-
if isinstance(response, list):
|
|
43
|
-
# gpt turbo frequently ignores the directive to emit a single action
|
|
44
|
-
logger.warning("Got multiple action responses: %s", response)
|
|
45
|
-
response = response[0]
|
|
46
|
-
if response["action"] == "Final Answer":
|
|
47
|
-
return AgentFinish({"output": response["action_input"]}, text)
|
|
48
|
-
return AgentAction(
|
|
49
|
-
response["action"],
|
|
50
|
-
response.get("action_input", {}),
|
|
51
|
-
text,
|
|
52
|
-
)
|
|
53
|
-
return AgentFinish({"output": text}, text)
|
|
54
|
-
except Exception as e:
|
|
55
|
-
msg = f"Could not parse LLM output: {text}"
|
|
56
|
-
raise OutputParserException(msg) from e
|
|
57
|
-
|
|
58
|
-
@property
|
|
59
|
-
def _type(self) -> str:
|
|
60
|
-
return "structured_chat"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
class StructuredChatOutputParserWithRetries(AgentOutputParser):
|
|
64
|
-
"""Output parser with retries for the structured chat agent."""
|
|
65
|
-
|
|
66
|
-
base_parser: AgentOutputParser = Field(default_factory=StructuredChatOutputParser)
|
|
67
|
-
"""The base parser to use."""
|
|
68
|
-
output_fixing_parser: Optional[OutputFixingParser] = None
|
|
69
|
-
"""The output fixing parser to use."""
|
|
70
|
-
|
|
71
|
-
@override
|
|
72
|
-
def get_format_instructions(self) -> str:
|
|
73
|
-
return FORMAT_INSTRUCTIONS
|
|
74
|
-
|
|
75
|
-
@override
|
|
76
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
77
|
-
try:
|
|
78
|
-
if self.output_fixing_parser is not None:
|
|
79
|
-
return self.output_fixing_parser.parse(text)
|
|
80
|
-
return self.base_parser.parse(text)
|
|
81
|
-
except Exception as e:
|
|
82
|
-
msg = f"Could not parse LLM output: {text}"
|
|
83
|
-
raise OutputParserException(msg) from e
|
|
84
|
-
|
|
85
|
-
@classmethod
|
|
86
|
-
def from_llm(
|
|
87
|
-
cls,
|
|
88
|
-
llm: Optional[BaseLanguageModel] = None,
|
|
89
|
-
base_parser: Optional[StructuredChatOutputParser] = None,
|
|
90
|
-
) -> StructuredChatOutputParserWithRetries:
|
|
91
|
-
"""Create a StructuredChatOutputParserWithRetries from a language model.
|
|
92
|
-
|
|
93
|
-
Args:
|
|
94
|
-
llm: The language model to use.
|
|
95
|
-
base_parser: An optional StructuredChatOutputParser to use.
|
|
96
|
-
Returns:
|
|
97
|
-
An instance of StructuredChatOutputParserWithRetries.
|
|
98
|
-
"""
|
|
99
|
-
if llm is not None:
|
|
100
|
-
base_parser = base_parser or StructuredChatOutputParser()
|
|
101
|
-
output_fixing_parser: OutputFixingParser = OutputFixingParser.from_llm(
|
|
102
|
-
llm=llm,
|
|
103
|
-
parser=base_parser,
|
|
104
|
-
)
|
|
105
|
-
return cls(output_fixing_parser=output_fixing_parser)
|
|
106
|
-
if base_parser is not None:
|
|
107
|
-
return cls(base_parser=base_parser)
|
|
108
|
-
return cls()
|
|
109
|
-
|
|
110
|
-
@property
|
|
111
|
-
def _type(self) -> str:
|
|
112
|
-
return "structured_chat_with_retries"
|