langchain 0.3.27__py3-none-any.whl → 1.0.0a1__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 +133 -166
- langchain/{docstore/document.py → documents/__init__.py} +3 -1
- langchain/embeddings/__init__.py +2 -218
- langchain/embeddings/base.py +8 -13
- langchain/embeddings/cache.py +19 -22
- langchain/globals.py +4 -166
- langchain/storage/__init__.py +0 -35
- langchain/storage/encoder_backed.py +10 -19
- langchain/tools/__init__.py +8 -201
- {langchain-0.3.27.dist-info → langchain-1.0.0a1.dist-info}/METADATA +12 -28
- langchain-1.0.0a1.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 -1828
- langchain/agents/agent_iterator.py +0 -431
- langchain/agents/agent_toolkits/__init__.py +0 -167
- langchain/agents/agent_toolkits/ainetwork/__init__.py +0 -1
- langchain/agents/agent_toolkits/ainetwork/toolkit.py +0 -25
- langchain/agents/agent_toolkits/amadeus/toolkit.py +0 -23
- langchain/agents/agent_toolkits/azure_cognitive_services.py +0 -29
- langchain/agents/agent_toolkits/base.py +0 -3
- langchain/agents/agent_toolkits/clickup/__init__.py +0 -0
- langchain/agents/agent_toolkits/clickup/toolkit.py +0 -25
- langchain/agents/agent_toolkits/conversational_retrieval/__init__.py +0 -0
- langchain/agents/agent_toolkits/conversational_retrieval/openai_functions.py +0 -87
- langchain/agents/agent_toolkits/conversational_retrieval/tool.py +0 -3
- langchain/agents/agent_toolkits/csv/__init__.py +0 -28
- langchain/agents/agent_toolkits/file_management/__init__.py +0 -31
- langchain/agents/agent_toolkits/file_management/toolkit.py +0 -29
- langchain/agents/agent_toolkits/github/__init__.py +0 -1
- langchain/agents/agent_toolkits/github/toolkit.py +0 -69
- langchain/agents/agent_toolkits/gitlab/__init__.py +0 -1
- langchain/agents/agent_toolkits/gitlab/toolkit.py +0 -25
- langchain/agents/agent_toolkits/gmail/__init__.py +0 -1
- langchain/agents/agent_toolkits/gmail/toolkit.py +0 -23
- langchain/agents/agent_toolkits/jira/__init__.py +0 -1
- langchain/agents/agent_toolkits/jira/toolkit.py +0 -23
- langchain/agents/agent_toolkits/json/__init__.py +0 -1
- langchain/agents/agent_toolkits/json/base.py +0 -25
- langchain/agents/agent_toolkits/json/prompt.py +0 -24
- langchain/agents/agent_toolkits/json/toolkit.py +0 -23
- langchain/agents/agent_toolkits/multion/__init__.py +0 -1
- langchain/agents/agent_toolkits/multion/toolkit.py +0 -25
- langchain/agents/agent_toolkits/nasa/__init__.py +0 -1
- langchain/agents/agent_toolkits/nasa/toolkit.py +0 -23
- langchain/agents/agent_toolkits/nla/__init__.py +0 -0
- langchain/agents/agent_toolkits/nla/tool.py +0 -23
- langchain/agents/agent_toolkits/nla/toolkit.py +0 -23
- langchain/agents/agent_toolkits/office365/__init__.py +0 -1
- langchain/agents/agent_toolkits/office365/toolkit.py +0 -25
- langchain/agents/agent_toolkits/openapi/__init__.py +0 -1
- langchain/agents/agent_toolkits/openapi/base.py +0 -25
- langchain/agents/agent_toolkits/openapi/planner.py +0 -52
- langchain/agents/agent_toolkits/openapi/planner_prompt.py +0 -103
- langchain/agents/agent_toolkits/openapi/prompt.py +0 -29
- langchain/agents/agent_toolkits/openapi/spec.py +0 -30
- langchain/agents/agent_toolkits/openapi/toolkit.py +0 -30
- langchain/agents/agent_toolkits/pandas/__init__.py +0 -28
- langchain/agents/agent_toolkits/playwright/__init__.py +0 -29
- langchain/agents/agent_toolkits/playwright/toolkit.py +0 -27
- langchain/agents/agent_toolkits/powerbi/__init__.py +0 -1
- langchain/agents/agent_toolkits/powerbi/base.py +0 -25
- langchain/agents/agent_toolkits/powerbi/chat_base.py +0 -27
- langchain/agents/agent_toolkits/powerbi/prompt.py +0 -36
- langchain/agents/agent_toolkits/powerbi/toolkit.py +0 -25
- langchain/agents/agent_toolkits/python/__init__.py +0 -28
- langchain/agents/agent_toolkits/slack/__init__.py +0 -1
- langchain/agents/agent_toolkits/slack/toolkit.py +0 -23
- langchain/agents/agent_toolkits/spark/__init__.py +0 -28
- langchain/agents/agent_toolkits/spark_sql/__init__.py +0 -1
- langchain/agents/agent_toolkits/spark_sql/base.py +0 -25
- langchain/agents/agent_toolkits/spark_sql/prompt.py +0 -27
- langchain/agents/agent_toolkits/spark_sql/toolkit.py +0 -25
- langchain/agents/agent_toolkits/sql/__init__.py +0 -1
- langchain/agents/agent_toolkits/sql/base.py +0 -23
- langchain/agents/agent_toolkits/sql/prompt.py +0 -29
- langchain/agents/agent_toolkits/sql/toolkit.py +0 -25
- langchain/agents/agent_toolkits/steam/__init__.py +0 -1
- langchain/agents/agent_toolkits/steam/toolkit.py +0 -23
- langchain/agents/agent_toolkits/vectorstore/__init__.py +0 -1
- langchain/agents/agent_toolkits/vectorstore/base.py +0 -217
- langchain/agents/agent_toolkits/vectorstore/prompt.py +0 -11
- langchain/agents/agent_toolkits/vectorstore/toolkit.py +0 -97
- langchain/agents/agent_toolkits/xorbits/__init__.py +0 -28
- langchain/agents/agent_toolkits/zapier/__init__.py +0 -1
- langchain/agents/agent_toolkits/zapier/toolkit.py +0 -25
- langchain/agents/agent_types.py +0 -57
- langchain/agents/chat/__init__.py +0 -0
- langchain/agents/chat/base.py +0 -178
- langchain/agents/chat/output_parser.py +0 -74
- langchain/agents/chat/prompt.py +0 -29
- langchain/agents/conversational/__init__.py +0 -1
- langchain/agents/conversational/base.py +0 -176
- langchain/agents/conversational/output_parser.py +0 -51
- langchain/agents/conversational/prompt.py +0 -35
- langchain/agents/conversational_chat/__init__.py +0 -1
- langchain/agents/conversational_chat/base.py +0 -181
- langchain/agents/conversational_chat/output_parser.py +0 -57
- langchain/agents/conversational_chat/prompt.py +0 -56
- langchain/agents/format_scratchpad/__init__.py +0 -25
- langchain/agents/format_scratchpad/log.py +0 -25
- langchain/agents/format_scratchpad/log_to_messages.py +0 -26
- langchain/agents/format_scratchpad/openai_functions.py +0 -80
- langchain/agents/format_scratchpad/openai_tools.py +0 -5
- langchain/agents/format_scratchpad/tools.py +0 -65
- langchain/agents/format_scratchpad/xml.py +0 -52
- langchain/agents/initialize.py +0 -105
- langchain/agents/json_chat/__init__.py +0 -0
- langchain/agents/json_chat/base.py +0 -195
- langchain/agents/json_chat/prompt.py +0 -8
- langchain/agents/load_tools.py +0 -13
- langchain/agents/loading.py +0 -148
- langchain/agents/mrkl/__init__.py +0 -1
- langchain/agents/mrkl/base.py +0 -216
- langchain/agents/mrkl/output_parser.py +0 -103
- langchain/agents/mrkl/prompt.py +0 -15
- langchain/agents/openai_assistant/__init__.py +0 -3
- langchain/agents/openai_assistant/base.py +0 -818
- langchain/agents/openai_functions_agent/__init__.py +0 -0
- langchain/agents/openai_functions_agent/agent_token_buffer_memory.py +0 -101
- langchain/agents/openai_functions_agent/base.py +0 -381
- langchain/agents/openai_functions_multi_agent/__init__.py +0 -0
- langchain/agents/openai_functions_multi_agent/base.py +0 -337
- langchain/agents/openai_tools/__init__.py +0 -0
- langchain/agents/openai_tools/base.py +0 -108
- langchain/agents/output_parsers/__init__.py +0 -35
- langchain/agents/output_parsers/json.py +0 -62
- langchain/agents/output_parsers/openai_functions.py +0 -96
- langchain/agents/output_parsers/openai_tools.py +0 -70
- langchain/agents/output_parsers/react_json_single_input.py +0 -84
- langchain/agents/output_parsers/react_single_input.py +0 -99
- langchain/agents/output_parsers/self_ask.py +0 -51
- langchain/agents/output_parsers/tools.py +0 -107
- langchain/agents/output_parsers/xml.py +0 -123
- langchain/agents/react/__init__.py +0 -1
- langchain/agents/react/agent.py +0 -144
- langchain/agents/react/base.py +0 -185
- langchain/agents/react/output_parser.py +0 -33
- langchain/agents/react/textworld_prompt.py +0 -51
- langchain/agents/react/wiki_prompt.py +0 -70
- langchain/agents/schema.py +0 -35
- langchain/agents/self_ask_with_search/__init__.py +0 -4
- langchain/agents/self_ask_with_search/base.py +0 -215
- langchain/agents/self_ask_with_search/output_parser.py +0 -4
- langchain/agents/self_ask_with_search/prompt.py +0 -43
- langchain/agents/structured_chat/__init__.py +0 -0
- langchain/agents/structured_chat/base.py +0 -304
- langchain/agents/structured_chat/output_parser.py +0 -99
- langchain/agents/structured_chat/prompt.py +0 -34
- langchain/agents/tool_calling_agent/__init__.py +0 -0
- langchain/agents/tool_calling_agent/base.py +0 -110
- langchain/agents/tools.py +0 -47
- langchain/agents/types.py +0 -27
- langchain/agents/utils.py +0 -19
- langchain/agents/xml/__init__.py +0 -0
- langchain/agents/xml/base.py +0 -231
- langchain/agents/xml/prompt.py +0 -21
- langchain/base_language.py +0 -7
- langchain/cache.py +0 -72
- langchain/callbacks/__init__.py +0 -139
- langchain/callbacks/aim_callback.py +0 -33
- langchain/callbacks/argilla_callback.py +0 -25
- langchain/callbacks/arize_callback.py +0 -25
- langchain/callbacks/arthur_callback.py +0 -25
- langchain/callbacks/base.py +0 -29
- langchain/callbacks/clearml_callback.py +0 -25
- langchain/callbacks/comet_ml_callback.py +0 -25
- langchain/callbacks/confident_callback.py +0 -25
- langchain/callbacks/context_callback.py +0 -25
- langchain/callbacks/file.py +0 -3
- langchain/callbacks/flyte_callback.py +0 -25
- langchain/callbacks/human.py +0 -33
- langchain/callbacks/infino_callback.py +0 -25
- langchain/callbacks/labelstudio_callback.py +0 -33
- langchain/callbacks/llmonitor_callback.py +0 -27
- langchain/callbacks/manager.py +0 -89
- langchain/callbacks/mlflow_callback.py +0 -38
- langchain/callbacks/openai_info.py +0 -25
- langchain/callbacks/promptlayer_callback.py +0 -27
- langchain/callbacks/sagemaker_callback.py +0 -27
- langchain/callbacks/stdout.py +0 -3
- langchain/callbacks/streaming_aiter.py +0 -75
- langchain/callbacks/streaming_aiter_final_only.py +0 -91
- langchain/callbacks/streaming_stdout.py +0 -5
- langchain/callbacks/streaming_stdout_final_only.py +0 -91
- langchain/callbacks/streamlit/__init__.py +0 -86
- langchain/callbacks/streamlit/mutable_expander.py +0 -33
- langchain/callbacks/streamlit/streamlit_callback_handler.py +0 -49
- langchain/callbacks/tracers/__init__.py +0 -38
- langchain/callbacks/tracers/base.py +0 -6
- langchain/callbacks/tracers/comet.py +0 -30
- langchain/callbacks/tracers/evaluation.py +0 -8
- langchain/callbacks/tracers/langchain.py +0 -8
- langchain/callbacks/tracers/langchain_v1.py +0 -3
- langchain/callbacks/tracers/log_stream.py +0 -9
- langchain/callbacks/tracers/logging.py +0 -46
- langchain/callbacks/tracers/root_listeners.py +0 -3
- langchain/callbacks/tracers/run_collector.py +0 -3
- langchain/callbacks/tracers/schemas.py +0 -27
- langchain/callbacks/tracers/stdout.py +0 -6
- langchain/callbacks/tracers/wandb.py +0 -27
- langchain/callbacks/trubrics_callback.py +0 -25
- langchain/callbacks/utils.py +0 -48
- langchain/callbacks/wandb_callback.py +0 -25
- langchain/callbacks/whylabs_callback.py +0 -25
- langchain/chains/__init__.py +0 -96
- langchain/chains/api/__init__.py +0 -1
- langchain/chains/api/base.py +0 -394
- langchain/chains/api/news_docs.py +0 -31
- langchain/chains/api/open_meteo_docs.py +0 -32
- langchain/chains/api/openapi/__init__.py +0 -0
- langchain/chains/api/openapi/chain.py +0 -23
- langchain/chains/api/openapi/prompts.py +0 -27
- langchain/chains/api/openapi/requests_chain.py +0 -29
- langchain/chains/api/openapi/response_chain.py +0 -29
- langchain/chains/api/podcast_docs.py +0 -27
- langchain/chains/api/prompt.py +0 -35
- langchain/chains/api/tmdb_docs.py +0 -36
- langchain/chains/base.py +0 -800
- langchain/chains/chat_vector_db/__init__.py +0 -0
- langchain/chains/chat_vector_db/prompts.py +0 -19
- langchain/chains/combine_documents/__init__.py +0 -15
- langchain/chains/combine_documents/base.py +0 -287
- langchain/chains/combine_documents/map_reduce.py +0 -300
- langchain/chains/combine_documents/map_rerank.py +0 -247
- langchain/chains/combine_documents/reduce.py +0 -381
- langchain/chains/combine_documents/refine.py +0 -236
- langchain/chains/combine_documents/stuff.py +0 -288
- langchain/chains/constitutional_ai/__init__.py +0 -2
- langchain/chains/constitutional_ai/base.py +0 -321
- langchain/chains/constitutional_ai/models.py +0 -11
- langchain/chains/constitutional_ai/principles.py +0 -278
- langchain/chains/constitutional_ai/prompts.py +0 -120
- langchain/chains/conversation/__init__.py +0 -1
- langchain/chains/conversation/base.py +0 -143
- langchain/chains/conversation/memory.py +0 -45
- langchain/chains/conversation/prompt.py +0 -28
- langchain/chains/conversational_retrieval/__init__.py +0 -1
- langchain/chains/conversational_retrieval/base.py +0 -568
- langchain/chains/conversational_retrieval/prompts.py +0 -19
- langchain/chains/elasticsearch_database/__init__.py +0 -3
- langchain/chains/elasticsearch_database/base.py +0 -211
- langchain/chains/elasticsearch_database/prompts.py +0 -35
- langchain/chains/ernie_functions/__init__.py +0 -44
- langchain/chains/ernie_functions/base.py +0 -49
- langchain/chains/example_generator.py +0 -22
- langchain/chains/flare/__init__.py +0 -1
- langchain/chains/flare/base.py +0 -282
- langchain/chains/flare/prompts.py +0 -44
- langchain/chains/graph_qa/__init__.py +0 -0
- langchain/chains/graph_qa/arangodb.py +0 -23
- langchain/chains/graph_qa/base.py +0 -23
- langchain/chains/graph_qa/cypher.py +0 -39
- langchain/chains/graph_qa/cypher_utils.py +0 -27
- langchain/chains/graph_qa/falkordb.py +0 -29
- langchain/chains/graph_qa/gremlin.py +0 -36
- langchain/chains/graph_qa/hugegraph.py +0 -23
- langchain/chains/graph_qa/kuzu.py +0 -29
- langchain/chains/graph_qa/nebulagraph.py +0 -23
- langchain/chains/graph_qa/neptune_cypher.py +0 -39
- langchain/chains/graph_qa/neptune_sparql.py +0 -36
- langchain/chains/graph_qa/ontotext_graphdb.py +0 -25
- langchain/chains/graph_qa/prompts.py +0 -96
- langchain/chains/graph_qa/sparql.py +0 -23
- langchain/chains/history_aware_retriever.py +0 -68
- langchain/chains/hyde/__init__.py +0 -4
- langchain/chains/hyde/base.py +0 -124
- langchain/chains/hyde/prompts.py +0 -46
- langchain/chains/llm.py +0 -442
- langchain/chains/llm_bash/__init__.py +0 -10
- langchain/chains/llm_checker/__init__.py +0 -4
- langchain/chains/llm_checker/base.py +0 -194
- langchain/chains/llm_checker/prompt.py +0 -30
- langchain/chains/llm_math/__init__.py +0 -4
- langchain/chains/llm_math/base.py +0 -311
- langchain/chains/llm_math/prompt.py +0 -43
- langchain/chains/llm_requests.py +0 -23
- langchain/chains/llm_summarization_checker/__init__.py +0 -7
- langchain/chains/llm_summarization_checker/base.py +0 -205
- langchain/chains/llm_summarization_checker/prompts/are_all_true_prompt.txt +0 -38
- langchain/chains/llm_summarization_checker/prompts/check_facts.txt +0 -10
- langchain/chains/llm_summarization_checker/prompts/create_facts.txt +0 -10
- langchain/chains/llm_summarization_checker/prompts/revise_summary.txt +0 -17
- langchain/chains/llm_symbolic_math/__init__.py +0 -10
- langchain/chains/loading.py +0 -732
- langchain/chains/mapreduce.py +0 -121
- langchain/chains/moderation.py +0 -132
- langchain/chains/natbot/__init__.py +0 -4
- langchain/chains/natbot/base.py +0 -163
- langchain/chains/natbot/crawler.py +0 -443
- langchain/chains/natbot/prompt.py +0 -143
- langchain/chains/openai_functions/__init__.py +0 -44
- langchain/chains/openai_functions/base.py +0 -235
- langchain/chains/openai_functions/citation_fuzzy_match.py +0 -160
- langchain/chains/openai_functions/extraction.py +0 -197
- langchain/chains/openai_functions/openapi.py +0 -405
- langchain/chains/openai_functions/qa_with_structure.py +0 -142
- langchain/chains/openai_functions/tagging.py +0 -172
- langchain/chains/openai_functions/utils.py +0 -40
- langchain/chains/openai_tools/__init__.py +0 -3
- langchain/chains/openai_tools/extraction.py +0 -79
- langchain/chains/prompt_selector.py +0 -65
- langchain/chains/qa_generation/__init__.py +0 -0
- langchain/chains/qa_generation/base.py +0 -124
- langchain/chains/qa_generation/prompt.py +0 -50
- langchain/chains/qa_with_sources/__init__.py +0 -5
- langchain/chains/qa_with_sources/base.py +0 -263
- langchain/chains/qa_with_sources/loading.py +0 -209
- langchain/chains/qa_with_sources/map_reduce_prompt.py +0 -54
- langchain/chains/qa_with_sources/refine_prompts.py +0 -37
- langchain/chains/qa_with_sources/retrieval.py +0 -75
- langchain/chains/qa_with_sources/stuff_prompt.py +0 -43
- langchain/chains/qa_with_sources/vector_db.py +0 -86
- langchain/chains/query_constructor/__init__.py +0 -3
- langchain/chains/query_constructor/base.py +0 -376
- langchain/chains/query_constructor/ir.py +0 -23
- langchain/chains/query_constructor/parser.py +0 -210
- langchain/chains/query_constructor/prompt.py +0 -226
- langchain/chains/query_constructor/schema.py +0 -14
- langchain/chains/question_answering/__init__.py +0 -6
- langchain/chains/question_answering/chain.py +0 -279
- langchain/chains/question_answering/map_reduce_prompt.py +0 -80
- langchain/chains/question_answering/map_rerank_prompt.py +0 -66
- langchain/chains/question_answering/refine_prompts.py +0 -72
- langchain/chains/question_answering/stuff_prompt.py +0 -33
- langchain/chains/retrieval.py +0 -67
- langchain/chains/retrieval_qa/__init__.py +0 -1
- langchain/chains/retrieval_qa/base.py +0 -370
- langchain/chains/retrieval_qa/prompt.py +0 -11
- langchain/chains/router/__init__.py +0 -12
- langchain/chains/router/base.py +0 -142
- langchain/chains/router/embedding_router.py +0 -93
- langchain/chains/router/llm_router.py +0 -196
- langchain/chains/router/multi_prompt.py +0 -181
- langchain/chains/router/multi_prompt_prompt.py +0 -32
- langchain/chains/router/multi_retrieval_prompt.py +0 -30
- langchain/chains/router/multi_retrieval_qa.py +0 -109
- langchain/chains/sequential.py +0 -220
- langchain/chains/sql_database/__init__.py +0 -1
- langchain/chains/sql_database/prompt.py +0 -282
- langchain/chains/sql_database/query.py +0 -166
- langchain/chains/structured_output/__init__.py +0 -6
- langchain/chains/structured_output/base.py +0 -582
- langchain/chains/summarize/__init__.py +0 -6
- langchain/chains/summarize/chain.py +0 -174
- langchain/chains/summarize/map_reduce_prompt.py +0 -10
- langchain/chains/summarize/refine_prompts.py +0 -23
- langchain/chains/summarize/stuff_prompt.py +0 -10
- langchain/chains/transform.py +0 -84
- langchain/chat_loaders/__init__.py +0 -19
- langchain/chat_loaders/base.py +0 -3
- langchain/chat_loaders/facebook_messenger.py +0 -32
- langchain/chat_loaders/gmail.py +0 -23
- langchain/chat_loaders/imessage.py +0 -23
- langchain/chat_loaders/langsmith.py +0 -30
- langchain/chat_loaders/slack.py +0 -23
- langchain/chat_loaders/telegram.py +0 -23
- langchain/chat_loaders/utils.py +0 -36
- langchain/chat_loaders/whatsapp.py +0 -23
- langchain/chat_models/anthropic.py +0 -30
- langchain/chat_models/anyscale.py +0 -23
- langchain/chat_models/azure_openai.py +0 -23
- langchain/chat_models/azureml_endpoint.py +0 -30
- langchain/chat_models/baichuan.py +0 -23
- langchain/chat_models/baidu_qianfan_endpoint.py +0 -27
- langchain/chat_models/bedrock.py +0 -27
- langchain/chat_models/cohere.py +0 -23
- langchain/chat_models/databricks.py +0 -23
- langchain/chat_models/ernie.py +0 -23
- langchain/chat_models/everlyai.py +0 -23
- langchain/chat_models/fake.py +0 -30
- langchain/chat_models/fireworks.py +0 -23
- langchain/chat_models/gigachat.py +0 -23
- langchain/chat_models/google_palm.py +0 -30
- langchain/chat_models/human.py +0 -23
- langchain/chat_models/hunyuan.py +0 -23
- langchain/chat_models/javelin_ai_gateway.py +0 -30
- langchain/chat_models/jinachat.py +0 -23
- langchain/chat_models/konko.py +0 -23
- langchain/chat_models/litellm.py +0 -30
- langchain/chat_models/meta.py +0 -25
- langchain/chat_models/minimax.py +0 -23
- langchain/chat_models/mlflow.py +0 -23
- langchain/chat_models/mlflow_ai_gateway.py +0 -30
- langchain/chat_models/ollama.py +0 -23
- langchain/chat_models/openai.py +0 -23
- langchain/chat_models/pai_eas_endpoint.py +0 -25
- langchain/chat_models/promptlayer_openai.py +0 -25
- langchain/chat_models/tongyi.py +0 -23
- langchain/chat_models/vertexai.py +0 -23
- langchain/chat_models/volcengine_maas.py +0 -30
- langchain/chat_models/yandex.py +0 -23
- langchain/docstore/__init__.py +0 -48
- langchain/docstore/arbitrary_fn.py +0 -23
- langchain/docstore/base.py +0 -27
- langchain/docstore/in_memory.py +0 -23
- langchain/docstore/wikipedia.py +0 -23
- langchain/document_loaders/__init__.py +0 -553
- langchain/document_loaders/acreom.py +0 -23
- langchain/document_loaders/airbyte.py +0 -48
- langchain/document_loaders/airbyte_json.py +0 -23
- langchain/document_loaders/airtable.py +0 -23
- langchain/document_loaders/apify_dataset.py +0 -23
- langchain/document_loaders/arcgis_loader.py +0 -23
- langchain/document_loaders/arxiv.py +0 -23
- langchain/document_loaders/assemblyai.py +0 -28
- langchain/document_loaders/async_html.py +0 -23
- langchain/document_loaders/azlyrics.py +0 -23
- langchain/document_loaders/azure_ai_data.py +0 -23
- langchain/document_loaders/azure_blob_storage_container.py +0 -25
- langchain/document_loaders/azure_blob_storage_file.py +0 -25
- langchain/document_loaders/baiducloud_bos_directory.py +0 -29
- langchain/document_loaders/baiducloud_bos_file.py +0 -27
- langchain/document_loaders/base.py +0 -3
- langchain/document_loaders/base_o365.py +0 -23
- langchain/document_loaders/bibtex.py +0 -23
- langchain/document_loaders/bigquery.py +0 -23
- langchain/document_loaders/bilibili.py +0 -23
- langchain/document_loaders/blackboard.py +0 -23
- langchain/document_loaders/blob_loaders/__init__.py +0 -36
- langchain/document_loaders/blob_loaders/file_system.py +0 -23
- langchain/document_loaders/blob_loaders/schema.py +0 -29
- langchain/document_loaders/blob_loaders/youtube_audio.py +0 -23
- langchain/document_loaders/blockchain.py +0 -28
- langchain/document_loaders/brave_search.py +0 -23
- langchain/document_loaders/browserless.py +0 -23
- langchain/document_loaders/chatgpt.py +0 -28
- langchain/document_loaders/chromium.py +0 -23
- langchain/document_loaders/college_confidential.py +0 -25
- langchain/document_loaders/concurrent.py +0 -23
- langchain/document_loaders/confluence.py +0 -28
- langchain/document_loaders/conllu.py +0 -23
- langchain/document_loaders/couchbase.py +0 -23
- langchain/document_loaders/csv_loader.py +0 -27
- langchain/document_loaders/cube_semantic.py +0 -23
- langchain/document_loaders/datadog_logs.py +0 -23
- langchain/document_loaders/dataframe.py +0 -28
- langchain/document_loaders/diffbot.py +0 -23
- langchain/document_loaders/directory.py +0 -23
- langchain/document_loaders/discord.py +0 -23
- langchain/document_loaders/docugami.py +0 -23
- langchain/document_loaders/docusaurus.py +0 -23
- langchain/document_loaders/dropbox.py +0 -23
- langchain/document_loaders/duckdb_loader.py +0 -23
- langchain/document_loaders/email.py +0 -30
- langchain/document_loaders/epub.py +0 -23
- langchain/document_loaders/etherscan.py +0 -23
- langchain/document_loaders/evernote.py +0 -23
- langchain/document_loaders/excel.py +0 -23
- langchain/document_loaders/facebook_chat.py +0 -28
- langchain/document_loaders/fauna.py +0 -23
- langchain/document_loaders/figma.py +0 -23
- langchain/document_loaders/gcs_directory.py +0 -23
- langchain/document_loaders/gcs_file.py +0 -23
- langchain/document_loaders/generic.py +0 -23
- langchain/document_loaders/geodataframe.py +0 -23
- langchain/document_loaders/git.py +0 -23
- langchain/document_loaders/gitbook.py +0 -23
- langchain/document_loaders/github.py +0 -28
- langchain/document_loaders/google_speech_to_text.py +0 -23
- langchain/document_loaders/googledrive.py +0 -23
- langchain/document_loaders/gutenberg.py +0 -23
- langchain/document_loaders/helpers.py +0 -30
- langchain/document_loaders/hn.py +0 -23
- langchain/document_loaders/html.py +0 -23
- langchain/document_loaders/html_bs.py +0 -23
- langchain/document_loaders/hugging_face_dataset.py +0 -23
- langchain/document_loaders/ifixit.py +0 -23
- langchain/document_loaders/image.py +0 -23
- langchain/document_loaders/image_captions.py +0 -23
- langchain/document_loaders/imsdb.py +0 -23
- langchain/document_loaders/iugu.py +0 -23
- langchain/document_loaders/joplin.py +0 -23
- langchain/document_loaders/json_loader.py +0 -23
- langchain/document_loaders/lakefs.py +0 -33
- langchain/document_loaders/larksuite.py +0 -23
- langchain/document_loaders/markdown.py +0 -25
- langchain/document_loaders/mastodon.py +0 -23
- langchain/document_loaders/max_compute.py +0 -23
- langchain/document_loaders/mediawikidump.py +0 -23
- langchain/document_loaders/merge.py +0 -23
- langchain/document_loaders/mhtml.py +0 -23
- langchain/document_loaders/modern_treasury.py +0 -23
- langchain/document_loaders/mongodb.py +0 -23
- langchain/document_loaders/news.py +0 -23
- langchain/document_loaders/notebook.py +0 -33
- langchain/document_loaders/notion.py +0 -23
- langchain/document_loaders/notiondb.py +0 -23
- langchain/document_loaders/nuclia.py +0 -23
- langchain/document_loaders/obs_directory.py +0 -23
- langchain/document_loaders/obs_file.py +0 -23
- langchain/document_loaders/obsidian.py +0 -23
- langchain/document_loaders/odt.py +0 -23
- langchain/document_loaders/onedrive.py +0 -23
- langchain/document_loaders/onedrive_file.py +0 -23
- langchain/document_loaders/onenote.py +0 -23
- langchain/document_loaders/open_city_data.py +0 -23
- langchain/document_loaders/org_mode.py +0 -25
- langchain/document_loaders/parsers/__init__.py +0 -58
- langchain/document_loaders/parsers/audio.py +0 -33
- langchain/document_loaders/parsers/docai.py +0 -30
- langchain/document_loaders/parsers/generic.py +0 -25
- langchain/document_loaders/parsers/grobid.py +0 -30
- langchain/document_loaders/parsers/html/__init__.py +0 -25
- langchain/document_loaders/parsers/html/bs4.py +0 -25
- langchain/document_loaders/parsers/language/__init__.py +0 -29
- langchain/document_loaders/parsers/language/cobol.py +0 -27
- langchain/document_loaders/parsers/language/code_segmenter.py +0 -29
- langchain/document_loaders/parsers/language/javascript.py +0 -29
- langchain/document_loaders/parsers/language/language_parser.py +0 -29
- langchain/document_loaders/parsers/language/python.py +0 -27
- langchain/document_loaders/parsers/msword.py +0 -25
- langchain/document_loaders/parsers/pdf.py +0 -50
- langchain/document_loaders/parsers/registry.py +0 -25
- langchain/document_loaders/parsers/txt.py +0 -23
- langchain/document_loaders/pdf.py +0 -65
- langchain/document_loaders/polars_dataframe.py +0 -23
- langchain/document_loaders/powerpoint.py +0 -25
- langchain/document_loaders/psychic.py +0 -23
- langchain/document_loaders/pubmed.py +0 -23
- langchain/document_loaders/pyspark_dataframe.py +0 -26
- langchain/document_loaders/python.py +0 -22
- langchain/document_loaders/quip.py +0 -23
- langchain/document_loaders/readthedocs.py +0 -23
- langchain/document_loaders/recursive_url_loader.py +0 -23
- langchain/document_loaders/reddit.py +0 -23
- langchain/document_loaders/roam.py +0 -23
- langchain/document_loaders/rocksetdb.py +0 -23
- langchain/document_loaders/rspace.py +0 -23
- langchain/document_loaders/rss.py +0 -23
- langchain/document_loaders/rst.py +0 -23
- langchain/document_loaders/rtf.py +0 -23
- langchain/document_loaders/s3_directory.py +0 -23
- langchain/document_loaders/s3_file.py +0 -23
- langchain/document_loaders/sharepoint.py +0 -23
- langchain/document_loaders/sitemap.py +0 -23
- langchain/document_loaders/slack_directory.py +0 -23
- langchain/document_loaders/snowflake_loader.py +0 -23
- langchain/document_loaders/spreedly.py +0 -23
- langchain/document_loaders/srt.py +0 -23
- langchain/document_loaders/stripe.py +0 -23
- langchain/document_loaders/telegram.py +0 -38
- langchain/document_loaders/tencent_cos_directory.py +0 -25
- langchain/document_loaders/tencent_cos_file.py +0 -23
- langchain/document_loaders/tensorflow_datasets.py +0 -23
- langchain/document_loaders/text.py +0 -23
- langchain/document_loaders/tomarkdown.py +0 -23
- langchain/document_loaders/toml.py +0 -23
- langchain/document_loaders/trello.py +0 -23
- langchain/document_loaders/tsv.py +0 -23
- langchain/document_loaders/twitter.py +0 -23
- langchain/document_loaders/unstructured.py +0 -54
- langchain/document_loaders/url.py +0 -23
- langchain/document_loaders/url_playwright.py +0 -33
- langchain/document_loaders/url_selenium.py +0 -23
- langchain/document_loaders/weather.py +0 -23
- langchain/document_loaders/web_base.py +0 -23
- langchain/document_loaders/whatsapp_chat.py +0 -28
- langchain/document_loaders/wikipedia.py +0 -23
- langchain/document_loaders/word_document.py +0 -30
- langchain/document_loaders/xml.py +0 -23
- langchain/document_loaders/xorbits.py +0 -23
- langchain/document_loaders/youtube.py +0 -33
- langchain/document_transformers/__init__.py +0 -77
- langchain/document_transformers/beautiful_soup_transformer.py +0 -25
- langchain/document_transformers/doctran_text_extract.py +0 -25
- langchain/document_transformers/doctran_text_qa.py +0 -25
- langchain/document_transformers/doctran_text_translate.py +0 -25
- langchain/document_transformers/embeddings_redundant_filter.py +0 -50
- langchain/document_transformers/google_translate.py +0 -25
- langchain/document_transformers/html2text.py +0 -25
- langchain/document_transformers/long_context_reorder.py +0 -23
- langchain/document_transformers/nuclia_text_transform.py +0 -25
- langchain/document_transformers/openai_functions.py +0 -32
- langchain/document_transformers/xsl/html_chunks_with_headers.xslt +0 -199
- langchain/embeddings/aleph_alpha.py +0 -30
- langchain/embeddings/awa.py +0 -23
- langchain/embeddings/azure_openai.py +0 -23
- langchain/embeddings/baidu_qianfan_endpoint.py +0 -23
- langchain/embeddings/bedrock.py +0 -23
- langchain/embeddings/bookend.py +0 -23
- langchain/embeddings/clarifai.py +0 -23
- langchain/embeddings/cloudflare_workersai.py +0 -29
- langchain/embeddings/cohere.py +0 -23
- langchain/embeddings/dashscope.py +0 -23
- langchain/embeddings/databricks.py +0 -23
- langchain/embeddings/deepinfra.py +0 -23
- langchain/embeddings/edenai.py +0 -23
- langchain/embeddings/elasticsearch.py +0 -23
- langchain/embeddings/embaas.py +0 -23
- langchain/embeddings/ernie.py +0 -23
- langchain/embeddings/fake.py +0 -30
- langchain/embeddings/fastembed.py +0 -23
- langchain/embeddings/google_palm.py +0 -23
- langchain/embeddings/gpt4all.py +0 -23
- langchain/embeddings/gradient_ai.py +0 -23
- langchain/embeddings/huggingface.py +0 -36
- langchain/embeddings/huggingface_hub.py +0 -23
- langchain/embeddings/infinity.py +0 -30
- langchain/embeddings/javelin_ai_gateway.py +0 -23
- langchain/embeddings/jina.py +0 -23
- langchain/embeddings/johnsnowlabs.py +0 -23
- langchain/embeddings/llamacpp.py +0 -23
- langchain/embeddings/llm_rails.py +0 -23
- langchain/embeddings/localai.py +0 -23
- langchain/embeddings/minimax.py +0 -23
- langchain/embeddings/mlflow.py +0 -23
- langchain/embeddings/mlflow_gateway.py +0 -23
- langchain/embeddings/modelscope_hub.py +0 -23
- langchain/embeddings/mosaicml.py +0 -23
- langchain/embeddings/nlpcloud.py +0 -23
- langchain/embeddings/octoai_embeddings.py +0 -23
- langchain/embeddings/ollama.py +0 -23
- langchain/embeddings/openai.py +0 -23
- langchain/embeddings/sagemaker_endpoint.py +0 -30
- langchain/embeddings/self_hosted.py +0 -23
- langchain/embeddings/self_hosted_hugging_face.py +0 -30
- langchain/embeddings/sentence_transformer.py +0 -21
- langchain/embeddings/spacy_embeddings.py +0 -23
- langchain/embeddings/tensorflow_hub.py +0 -23
- langchain/embeddings/vertexai.py +0 -23
- langchain/embeddings/voyageai.py +0 -23
- langchain/embeddings/xinference.py +0 -23
- langchain/env.py +0 -17
- langchain/evaluation/__init__.py +0 -128
- langchain/evaluation/agents/__init__.py +0 -5
- langchain/evaluation/agents/trajectory_eval_chain.py +0 -415
- langchain/evaluation/agents/trajectory_eval_prompt.py +0 -146
- langchain/evaluation/comparison/__init__.py +0 -36
- langchain/evaluation/comparison/eval_chain.py +0 -461
- langchain/evaluation/comparison/prompt.py +0 -59
- langchain/evaluation/criteria/__init__.py +0 -56
- langchain/evaluation/criteria/eval_chain.py +0 -603
- langchain/evaluation/criteria/prompt.py +0 -37
- langchain/evaluation/embedding_distance/__init__.py +0 -13
- langchain/evaluation/embedding_distance/base.py +0 -602
- langchain/evaluation/exact_match/__init__.py +0 -0
- langchain/evaluation/exact_match/base.py +0 -97
- langchain/evaluation/loading.py +0 -206
- langchain/evaluation/parsing/__init__.py +0 -0
- langchain/evaluation/parsing/base.py +0 -162
- langchain/evaluation/parsing/json_distance.py +0 -97
- langchain/evaluation/parsing/json_schema.py +0 -100
- langchain/evaluation/qa/__init__.py +0 -10
- langchain/evaluation/qa/eval_chain.py +0 -364
- langchain/evaluation/qa/eval_prompt.py +0 -78
- langchain/evaluation/qa/generate_chain.py +0 -34
- langchain/evaluation/qa/generate_prompt.py +0 -21
- langchain/evaluation/regex_match/__init__.py +0 -0
- langchain/evaluation/regex_match/base.py +0 -86
- langchain/evaluation/schema.py +0 -491
- langchain/evaluation/scoring/__init__.py +0 -31
- langchain/evaluation/scoring/eval_chain.py +0 -475
- langchain/evaluation/scoring/prompt.py +0 -53
- langchain/evaluation/string_distance/__init__.py +0 -13
- langchain/evaluation/string_distance/base.py +0 -466
- langchain/example_generator.py +0 -5
- langchain/formatting.py +0 -5
- langchain/graphs/__init__.py +0 -57
- langchain/graphs/arangodb_graph.py +0 -28
- langchain/graphs/falkordb_graph.py +0 -23
- langchain/graphs/graph_document.py +0 -33
- langchain/graphs/graph_store.py +0 -23
- langchain/graphs/hugegraph.py +0 -23
- langchain/graphs/kuzu_graph.py +0 -23
- langchain/graphs/memgraph_graph.py +0 -23
- langchain/graphs/nebula_graph.py +0 -23
- langchain/graphs/neo4j_graph.py +0 -23
- langchain/graphs/neptune_graph.py +0 -23
- langchain/graphs/networkx_graph.py +0 -36
- langchain/graphs/rdf_graph.py +0 -23
- langchain/hub.py +0 -131
- langchain/indexes/__init__.py +0 -50
- langchain/indexes/_api.py +0 -5
- langchain/indexes/_sql_record_manager.py +0 -539
- langchain/indexes/graph.py +0 -28
- langchain/indexes/prompts/__init__.py +0 -13
- langchain/indexes/prompts/entity_extraction.py +0 -39
- langchain/indexes/prompts/entity_summarization.py +0 -24
- langchain/indexes/prompts/knowledge_triplet_extraction.py +0 -36
- langchain/indexes/vectorstore.py +0 -269
- langchain/input.py +0 -15
- langchain/llms/__init__.py +0 -734
- langchain/llms/ai21.py +0 -28
- langchain/llms/aleph_alpha.py +0 -23
- langchain/llms/amazon_api_gateway.py +0 -23
- langchain/llms/anthropic.py +0 -23
- langchain/llms/anyscale.py +0 -23
- langchain/llms/arcee.py +0 -23
- langchain/llms/aviary.py +0 -23
- langchain/llms/azureml_endpoint.py +0 -48
- langchain/llms/baidu_qianfan_endpoint.py +0 -23
- langchain/llms/bananadev.py +0 -23
- langchain/llms/base.py +0 -20
- langchain/llms/baseten.py +0 -23
- langchain/llms/beam.py +0 -23
- langchain/llms/bedrock.py +0 -28
- langchain/llms/bittensor.py +0 -23
- langchain/llms/cerebriumai.py +0 -23
- langchain/llms/chatglm.py +0 -23
- langchain/llms/clarifai.py +0 -23
- langchain/llms/cloudflare_workersai.py +0 -25
- langchain/llms/cohere.py +0 -23
- langchain/llms/ctransformers.py +0 -23
- langchain/llms/ctranslate2.py +0 -23
- langchain/llms/databricks.py +0 -23
- langchain/llms/deepinfra.py +0 -23
- langchain/llms/deepsparse.py +0 -23
- langchain/llms/edenai.py +0 -23
- langchain/llms/fake.py +0 -28
- langchain/llms/fireworks.py +0 -23
- langchain/llms/forefrontai.py +0 -23
- langchain/llms/gigachat.py +0 -23
- langchain/llms/google_palm.py +0 -23
- langchain/llms/gooseai.py +0 -23
- langchain/llms/gpt4all.py +0 -23
- langchain/llms/gradient_ai.py +0 -28
- langchain/llms/grammars/json.gbnf +0 -29
- langchain/llms/grammars/list.gbnf +0 -14
- langchain/llms/huggingface_endpoint.py +0 -23
- langchain/llms/huggingface_hub.py +0 -23
- langchain/llms/huggingface_pipeline.py +0 -23
- langchain/llms/huggingface_text_gen_inference.py +0 -23
- langchain/llms/human.py +0 -23
- langchain/llms/javelin_ai_gateway.py +0 -28
- langchain/llms/koboldai.py +0 -23
- langchain/llms/llamacpp.py +0 -23
- langchain/llms/loading.py +0 -27
- langchain/llms/manifest.py +0 -23
- langchain/llms/minimax.py +0 -23
- langchain/llms/mlflow.py +0 -23
- langchain/llms/mlflow_ai_gateway.py +0 -23
- langchain/llms/modal.py +0 -23
- langchain/llms/mosaicml.py +0 -23
- langchain/llms/nlpcloud.py +0 -23
- langchain/llms/octoai_endpoint.py +0 -23
- langchain/llms/ollama.py +0 -23
- langchain/llms/opaqueprompts.py +0 -23
- langchain/llms/openai.py +0 -32
- langchain/llms/openllm.py +0 -23
- langchain/llms/openlm.py +0 -23
- langchain/llms/pai_eas_endpoint.py +0 -23
- langchain/llms/petals.py +0 -23
- langchain/llms/pipelineai.py +0 -23
- langchain/llms/predibase.py +0 -23
- langchain/llms/predictionguard.py +0 -23
- langchain/llms/promptlayer_openai.py +0 -27
- langchain/llms/replicate.py +0 -23
- langchain/llms/rwkv.py +0 -23
- langchain/llms/sagemaker_endpoint.py +0 -28
- langchain/llms/self_hosted.py +0 -23
- langchain/llms/self_hosted_hugging_face.py +0 -23
- langchain/llms/stochasticai.py +0 -23
- langchain/llms/symblai_nebula.py +0 -23
- langchain/llms/textgen.py +0 -23
- langchain/llms/titan_takeoff.py +0 -23
- langchain/llms/titan_takeoff_pro.py +0 -23
- langchain/llms/together.py +0 -23
- langchain/llms/tongyi.py +0 -23
- langchain/llms/utils.py +0 -23
- langchain/llms/vertexai.py +0 -27
- langchain/llms/vllm.py +0 -27
- langchain/llms/volcengine_maas.py +0 -28
- langchain/llms/watsonxllm.py +0 -23
- langchain/llms/writer.py +0 -23
- langchain/llms/xinference.py +0 -23
- langchain/llms/yandex.py +0 -23
- langchain/load/__init__.py +0 -11
- langchain/load/dump.py +0 -3
- langchain/load/load.py +0 -3
- langchain/load/serializable.py +0 -19
- langchain/memory/__init__.py +0 -153
- langchain/memory/buffer.py +0 -173
- langchain/memory/buffer_window.py +0 -60
- langchain/memory/chat_memory.py +0 -104
- langchain/memory/chat_message_histories/__init__.py +0 -84
- langchain/memory/chat_message_histories/astradb.py +0 -25
- langchain/memory/chat_message_histories/cassandra.py +0 -25
- langchain/memory/chat_message_histories/cosmos_db.py +0 -25
- langchain/memory/chat_message_histories/dynamodb.py +0 -25
- langchain/memory/chat_message_histories/elasticsearch.py +0 -27
- langchain/memory/chat_message_histories/file.py +0 -25
- langchain/memory/chat_message_histories/firestore.py +0 -25
- langchain/memory/chat_message_histories/in_memory.py +0 -5
- langchain/memory/chat_message_histories/momento.py +0 -25
- langchain/memory/chat_message_histories/mongodb.py +0 -25
- langchain/memory/chat_message_histories/neo4j.py +0 -25
- langchain/memory/chat_message_histories/postgres.py +0 -25
- langchain/memory/chat_message_histories/redis.py +0 -25
- langchain/memory/chat_message_histories/rocksetdb.py +0 -25
- langchain/memory/chat_message_histories/singlestoredb.py +0 -27
- langchain/memory/chat_message_histories/sql.py +0 -33
- langchain/memory/chat_message_histories/streamlit.py +0 -25
- langchain/memory/chat_message_histories/upstash_redis.py +0 -27
- langchain/memory/chat_message_histories/xata.py +0 -25
- langchain/memory/chat_message_histories/zep.py +0 -25
- langchain/memory/combined.py +0 -85
- langchain/memory/entity.py +0 -564
- langchain/memory/kg.py +0 -23
- langchain/memory/motorhead_memory.py +0 -23
- langchain/memory/prompt.py +0 -164
- langchain/memory/readonly.py +0 -24
- langchain/memory/simple.py +0 -24
- langchain/memory/summary.py +0 -140
- langchain/memory/summary_buffer.py +0 -148
- langchain/memory/token_buffer.py +0 -72
- langchain/memory/utils.py +0 -21
- langchain/memory/vectorstore.py +0 -120
- langchain/memory/vectorstore_token_buffer_memory.py +0 -184
- langchain/memory/zep_memory.py +0 -23
- langchain/model_laboratory.py +0 -99
- langchain/output_parsers/__init__.py +0 -87
- langchain/output_parsers/boolean.py +0 -54
- langchain/output_parsers/combining.py +0 -57
- langchain/output_parsers/datetime.py +0 -58
- langchain/output_parsers/enum.py +0 -41
- langchain/output_parsers/ernie_functions.py +0 -45
- langchain/output_parsers/fix.py +0 -148
- langchain/output_parsers/format_instructions.py +0 -79
- langchain/output_parsers/json.py +0 -15
- langchain/output_parsers/list.py +0 -13
- langchain/output_parsers/loading.py +0 -22
- langchain/output_parsers/openai_functions.py +0 -13
- langchain/output_parsers/openai_tools.py +0 -7
- langchain/output_parsers/pandas_dataframe.py +0 -156
- langchain/output_parsers/prompts.py +0 -21
- langchain/output_parsers/pydantic.py +0 -3
- langchain/output_parsers/rail_parser.py +0 -25
- langchain/output_parsers/regex.py +0 -39
- langchain/output_parsers/regex_dict.py +0 -43
- langchain/output_parsers/retry.py +0 -296
- langchain/output_parsers/structured.py +0 -106
- langchain/output_parsers/xml.py +0 -3
- langchain/output_parsers/yaml.py +0 -73
- langchain/prompts/__init__.py +0 -102
- langchain/prompts/base.py +0 -21
- langchain/prompts/chat.py +0 -37
- langchain/prompts/example_selector/__init__.py +0 -42
- langchain/prompts/example_selector/base.py +0 -3
- langchain/prompts/example_selector/length_based.py +0 -5
- langchain/prompts/example_selector/ngram_overlap.py +0 -32
- langchain/prompts/example_selector/semantic_similarity.py +0 -11
- langchain/prompts/few_shot.py +0 -11
- langchain/prompts/few_shot_with_templates.py +0 -3
- langchain/prompts/loading.py +0 -23
- langchain/prompts/pipeline.py +0 -3
- langchain/prompts/prompt.py +0 -6
- langchain/pydantic_v1/__init__.py +0 -38
- langchain/pydantic_v1/dataclasses.py +0 -20
- langchain/pydantic_v1/main.py +0 -20
- langchain/python.py +0 -19
- langchain/requests.py +0 -35
- langchain/retrievers/__init__.py +0 -178
- langchain/retrievers/arcee.py +0 -23
- langchain/retrievers/arxiv.py +0 -23
- langchain/retrievers/azure_ai_search.py +0 -30
- langchain/retrievers/bedrock.py +0 -33
- langchain/retrievers/bm25.py +0 -28
- langchain/retrievers/chaindesk.py +0 -23
- langchain/retrievers/chatgpt_plugin_retriever.py +0 -23
- langchain/retrievers/cohere_rag_retriever.py +0 -23
- langchain/retrievers/contextual_compression.py +0 -81
- langchain/retrievers/databerry.py +0 -23
- langchain/retrievers/docarray.py +0 -28
- langchain/retrievers/document_compressors/__init__.py +0 -44
- langchain/retrievers/document_compressors/base.py +0 -82
- langchain/retrievers/document_compressors/chain_extract.py +0 -121
- langchain/retrievers/document_compressors/chain_extract_prompt.py +0 -10
- langchain/retrievers/document_compressors/chain_filter.py +0 -133
- langchain/retrievers/document_compressors/chain_filter_prompt.py +0 -8
- langchain/retrievers/document_compressors/cohere_rerank.py +0 -124
- langchain/retrievers/document_compressors/cross_encoder.py +0 -16
- langchain/retrievers/document_compressors/cross_encoder_rerank.py +0 -48
- langchain/retrievers/document_compressors/embeddings_filter.py +0 -137
- langchain/retrievers/document_compressors/flashrank_rerank.py +0 -27
- langchain/retrievers/document_compressors/listwise_rerank.py +0 -144
- langchain/retrievers/elastic_search_bm25.py +0 -23
- langchain/retrievers/embedchain.py +0 -23
- langchain/retrievers/ensemble.py +0 -336
- langchain/retrievers/google_cloud_documentai_warehouse.py +0 -25
- langchain/retrievers/google_vertex_ai_search.py +0 -33
- langchain/retrievers/kay.py +0 -23
- langchain/retrievers/kendra.py +0 -66
- langchain/retrievers/knn.py +0 -23
- langchain/retrievers/llama_index.py +0 -30
- langchain/retrievers/merger_retriever.py +0 -123
- langchain/retrievers/metal.py +0 -23
- langchain/retrievers/milvus.py +0 -28
- langchain/retrievers/multi_query.py +0 -231
- langchain/retrievers/multi_vector.py +0 -132
- langchain/retrievers/outline.py +0 -23
- langchain/retrievers/parent_document_retriever.py +0 -157
- langchain/retrievers/pinecone_hybrid_search.py +0 -23
- langchain/retrievers/pubmed.py +0 -23
- langchain/retrievers/pupmed.py +0 -23
- langchain/retrievers/re_phraser.py +0 -89
- langchain/retrievers/remote_retriever.py +0 -23
- langchain/retrievers/self_query/__init__.py +0 -0
- langchain/retrievers/self_query/astradb.py +0 -23
- langchain/retrievers/self_query/base.py +0 -397
- langchain/retrievers/self_query/chroma.py +0 -23
- langchain/retrievers/self_query/dashvector.py +0 -23
- langchain/retrievers/self_query/databricks_vector_search.py +0 -27
- langchain/retrievers/self_query/deeplake.py +0 -27
- langchain/retrievers/self_query/dingo.py +0 -23
- langchain/retrievers/self_query/elasticsearch.py +0 -25
- langchain/retrievers/self_query/milvus.py +0 -27
- langchain/retrievers/self_query/mongodb_atlas.py +0 -25
- langchain/retrievers/self_query/myscale.py +0 -23
- langchain/retrievers/self_query/opensearch.py +0 -23
- langchain/retrievers/self_query/pgvector.py +0 -23
- langchain/retrievers/self_query/pinecone.py +0 -23
- langchain/retrievers/self_query/qdrant.py +0 -23
- langchain/retrievers/self_query/redis.py +0 -23
- langchain/retrievers/self_query/supabase.py +0 -23
- langchain/retrievers/self_query/tencentvectordb.py +0 -27
- langchain/retrievers/self_query/timescalevector.py +0 -27
- langchain/retrievers/self_query/vectara.py +0 -27
- langchain/retrievers/self_query/weaviate.py +0 -23
- langchain/retrievers/svm.py +0 -23
- langchain/retrievers/tavily_search_api.py +0 -28
- langchain/retrievers/tfidf.py +0 -23
- langchain/retrievers/time_weighted_retriever.py +0 -193
- langchain/retrievers/vespa_retriever.py +0 -23
- langchain/retrievers/weaviate_hybrid_search.py +0 -23
- langchain/retrievers/web_research.py +0 -29
- langchain/retrievers/wikipedia.py +0 -23
- langchain/retrievers/you.py +0 -23
- langchain/retrievers/zep.py +0 -30
- langchain/retrievers/zilliz.py +0 -28
- langchain/runnables/__init__.py +0 -18
- langchain/runnables/hub.py +0 -32
- langchain/runnables/openai_functions.py +0 -51
- langchain/schema/__init__.py +0 -82
- langchain/schema/agent.py +0 -3
- langchain/schema/cache.py +0 -3
- langchain/schema/callbacks/__init__.py +0 -0
- langchain/schema/callbacks/base.py +0 -23
- langchain/schema/callbacks/manager.py +0 -55
- langchain/schema/callbacks/stdout.py +0 -3
- langchain/schema/callbacks/streaming_stdout.py +0 -3
- langchain/schema/callbacks/tracers/__init__.py +0 -0
- langchain/schema/callbacks/tracers/base.py +0 -4
- langchain/schema/callbacks/tracers/evaluation.py +0 -6
- langchain/schema/callbacks/tracers/langchain.py +0 -8
- langchain/schema/callbacks/tracers/langchain_v1.py +0 -3
- langchain/schema/callbacks/tracers/log_stream.py +0 -9
- langchain/schema/callbacks/tracers/root_listeners.py +0 -3
- langchain/schema/callbacks/tracers/run_collector.py +0 -3
- langchain/schema/callbacks/tracers/schemas.py +0 -27
- langchain/schema/callbacks/tracers/stdout.py +0 -13
- langchain/schema/chat.py +0 -3
- langchain/schema/chat_history.py +0 -3
- langchain/schema/document.py +0 -3
- langchain/schema/embeddings.py +0 -3
- langchain/schema/exceptions.py +0 -3
- langchain/schema/language_model.py +0 -15
- langchain/schema/memory.py +0 -3
- langchain/schema/messages.py +0 -51
- langchain/schema/output.py +0 -19
- langchain/schema/output_parser.py +0 -25
- langchain/schema/prompt.py +0 -3
- langchain/schema/prompt_template.py +0 -3
- langchain/schema/retriever.py +0 -3
- langchain/schema/runnable/__init__.py +0 -58
- langchain/schema/runnable/base.py +0 -38
- langchain/schema/runnable/branch.py +0 -3
- langchain/schema/runnable/config.py +0 -27
- langchain/schema/runnable/configurable.py +0 -15
- langchain/schema/runnable/fallbacks.py +0 -3
- langchain/schema/runnable/history.py +0 -11
- langchain/schema/runnable/passthrough.py +0 -8
- langchain/schema/runnable/retry.py +0 -3
- langchain/schema/runnable/router.py +0 -3
- langchain/schema/runnable/utils.py +0 -51
- langchain/schema/storage.py +0 -3
- langchain/schema/vectorstore.py +0 -3
- langchain/serpapi.py +0 -25
- langchain/smith/__init__.py +0 -102
- langchain/smith/evaluation/__init__.py +0 -68
- langchain/smith/evaluation/config.py +0 -382
- langchain/smith/evaluation/name_generation.py +0 -727
- langchain/smith/evaluation/progress.py +0 -137
- langchain/smith/evaluation/runner_utils.py +0 -1572
- langchain/smith/evaluation/string_run_evaluator.py +0 -440
- langchain/smith/evaluation/utils.py +0 -0
- langchain/sql_database.py +0 -25
- langchain/storage/_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.3.27.dist-info/RECORD +0 -1342
- /langchain/{adapters → _internal}/__init__.py +0 -0
- {langchain-0.3.27.dist-info → langchain-1.0.0a1.dist-info}/WHEEL +0 -0
- {langchain-0.3.27.dist-info → langchain-1.0.0a1.dist-info}/entry_points.txt +0 -0
- {langchain-0.3.27.dist-info → langchain-1.0.0a1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import re
|
|
3
|
-
from re import Pattern
|
|
4
|
-
from typing import Union
|
|
5
|
-
|
|
6
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
7
|
-
from langchain_core.exceptions import OutputParserException
|
|
8
|
-
|
|
9
|
-
from langchain.agents.agent import AgentOutputParser
|
|
10
|
-
from langchain.agents.chat.prompt import FORMAT_INSTRUCTIONS
|
|
11
|
-
|
|
12
|
-
FINAL_ANSWER_ACTION = "Final Answer:"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class ChatOutputParser(AgentOutputParser):
|
|
16
|
-
"""Output parser for the chat agent."""
|
|
17
|
-
|
|
18
|
-
format_instructions: str = FORMAT_INSTRUCTIONS
|
|
19
|
-
"""Default formatting instructions"""
|
|
20
|
-
|
|
21
|
-
pattern: Pattern = re.compile(r"^.*?`{3}(?:json)?\n(.*?)`{3}.*?$", re.DOTALL)
|
|
22
|
-
"""Regex pattern to parse the output."""
|
|
23
|
-
|
|
24
|
-
def get_format_instructions(self) -> str:
|
|
25
|
-
"""Returns formatting instructions for the given output parser."""
|
|
26
|
-
return self.format_instructions
|
|
27
|
-
|
|
28
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
29
|
-
"""Parse the output from the agent into
|
|
30
|
-
an AgentAction or AgentFinish object.
|
|
31
|
-
|
|
32
|
-
Args:
|
|
33
|
-
text: The text to parse.
|
|
34
|
-
|
|
35
|
-
Returns:
|
|
36
|
-
An AgentAction or AgentFinish object.
|
|
37
|
-
|
|
38
|
-
Raises:
|
|
39
|
-
OutputParserException: If the output could not be parsed.
|
|
40
|
-
ValueError: If the action could not be found.
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
includes_answer = FINAL_ANSWER_ACTION in text
|
|
44
|
-
try:
|
|
45
|
-
found = self.pattern.search(text)
|
|
46
|
-
if not found:
|
|
47
|
-
# Fast fail to parse Final Answer.
|
|
48
|
-
msg = "action not found"
|
|
49
|
-
raise ValueError(msg)
|
|
50
|
-
action = found.group(1)
|
|
51
|
-
response = json.loads(action.strip())
|
|
52
|
-
includes_action = "action" in response
|
|
53
|
-
if includes_answer and includes_action:
|
|
54
|
-
msg = (
|
|
55
|
-
"Parsing LLM output produced a final answer "
|
|
56
|
-
f"and a parse-able action: {text}"
|
|
57
|
-
)
|
|
58
|
-
raise OutputParserException(msg)
|
|
59
|
-
return AgentAction(
|
|
60
|
-
response["action"],
|
|
61
|
-
response.get("action_input", {}),
|
|
62
|
-
text,
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
except Exception as exc:
|
|
66
|
-
if not includes_answer:
|
|
67
|
-
msg = f"Could not parse LLM output: {text}"
|
|
68
|
-
raise OutputParserException(msg) from exc
|
|
69
|
-
output = text.split(FINAL_ANSWER_ACTION)[-1].strip()
|
|
70
|
-
return AgentFinish({"output": output}, text)
|
|
71
|
-
|
|
72
|
-
@property
|
|
73
|
-
def _type(self) -> str:
|
|
74
|
-
return "chat"
|
langchain/agents/chat/prompt.py
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
SYSTEM_MESSAGE_PREFIX = """Answer the following questions as best you can. You have access to the following tools:""" # noqa: E501
|
|
2
|
-
FORMAT_INSTRUCTIONS = """The way you use the tools is by specifying a json blob.
|
|
3
|
-
Specifically, this json should have a `action` key (with the name of the tool to use) and a `action_input` key (with the input to the tool going here).
|
|
4
|
-
|
|
5
|
-
The only values that should be in the "action" field are: {tool_names}
|
|
6
|
-
|
|
7
|
-
The $JSON_BLOB should only contain a SINGLE action, do NOT return a list of multiple actions. Here is an example of a valid $JSON_BLOB:
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
{{{{
|
|
11
|
-
"action": $TOOL_NAME,
|
|
12
|
-
"action_input": $INPUT
|
|
13
|
-
}}}}
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
ALWAYS use the following format:
|
|
17
|
-
|
|
18
|
-
Question: the input question you must answer
|
|
19
|
-
Thought: you should always think about what to do
|
|
20
|
-
Action:
|
|
21
|
-
```
|
|
22
|
-
$JSON_BLOB
|
|
23
|
-
```
|
|
24
|
-
Observation: the result of the action
|
|
25
|
-
... (this Thought/Action/Observation can repeat N times)
|
|
26
|
-
Thought: I now know the final answer
|
|
27
|
-
Final Answer: the final answer to the original input question""" # noqa: E501
|
|
28
|
-
SYSTEM_MESSAGE_SUFFIX = """Begin! Reminder to always use the exact characters `Final Answer` when responding.""" # noqa: E501
|
|
29
|
-
HUMAN_MESSAGE = "{input}\n\n{agent_scratchpad}"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"""An agent designed to hold a conversation in addition to using tools."""
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
"""An agent designed to hold a conversation in addition to using tools."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from collections.abc import Sequence
|
|
6
|
-
from typing import Any, Optional
|
|
7
|
-
|
|
8
|
-
from langchain_core._api import deprecated
|
|
9
|
-
from langchain_core.callbacks import BaseCallbackManager
|
|
10
|
-
from langchain_core.language_models import BaseLanguageModel
|
|
11
|
-
from langchain_core.prompts import PromptTemplate
|
|
12
|
-
from langchain_core.tools import BaseTool
|
|
13
|
-
from pydantic import Field
|
|
14
|
-
|
|
15
|
-
from langchain._api.deprecation import AGENT_DEPRECATION_WARNING
|
|
16
|
-
from langchain.agents.agent import Agent, AgentOutputParser
|
|
17
|
-
from langchain.agents.agent_types import AgentType
|
|
18
|
-
from langchain.agents.conversational.output_parser import ConvoOutputParser
|
|
19
|
-
from langchain.agents.conversational.prompt import FORMAT_INSTRUCTIONS, PREFIX, SUFFIX
|
|
20
|
-
from langchain.agents.utils import validate_tools_single_input
|
|
21
|
-
from langchain.chains import LLMChain
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@deprecated(
|
|
25
|
-
"0.1.0",
|
|
26
|
-
message=AGENT_DEPRECATION_WARNING,
|
|
27
|
-
removal="1.0",
|
|
28
|
-
)
|
|
29
|
-
class ConversationalAgent(Agent):
|
|
30
|
-
"""An agent that holds a conversation in addition to using tools."""
|
|
31
|
-
|
|
32
|
-
ai_prefix: str = "AI"
|
|
33
|
-
"""Prefix to use before AI output."""
|
|
34
|
-
output_parser: AgentOutputParser = Field(default_factory=ConvoOutputParser)
|
|
35
|
-
"""Output parser for the agent."""
|
|
36
|
-
|
|
37
|
-
@classmethod
|
|
38
|
-
def _get_default_output_parser(
|
|
39
|
-
cls,
|
|
40
|
-
ai_prefix: str = "AI",
|
|
41
|
-
**kwargs: Any,
|
|
42
|
-
) -> AgentOutputParser:
|
|
43
|
-
return ConvoOutputParser(ai_prefix=ai_prefix)
|
|
44
|
-
|
|
45
|
-
@property
|
|
46
|
-
def _agent_type(self) -> str:
|
|
47
|
-
"""Return Identifier of agent type."""
|
|
48
|
-
return AgentType.CONVERSATIONAL_REACT_DESCRIPTION
|
|
49
|
-
|
|
50
|
-
@property
|
|
51
|
-
def observation_prefix(self) -> str:
|
|
52
|
-
"""Prefix to append the observation with.
|
|
53
|
-
|
|
54
|
-
Returns:
|
|
55
|
-
"Observation: "
|
|
56
|
-
"""
|
|
57
|
-
return "Observation: "
|
|
58
|
-
|
|
59
|
-
@property
|
|
60
|
-
def llm_prefix(self) -> str:
|
|
61
|
-
"""Prefix to append the llm call with.
|
|
62
|
-
|
|
63
|
-
Returns:
|
|
64
|
-
"Thought: "
|
|
65
|
-
"""
|
|
66
|
-
return "Thought:"
|
|
67
|
-
|
|
68
|
-
@classmethod
|
|
69
|
-
def create_prompt(
|
|
70
|
-
cls,
|
|
71
|
-
tools: Sequence[BaseTool],
|
|
72
|
-
prefix: str = PREFIX,
|
|
73
|
-
suffix: str = SUFFIX,
|
|
74
|
-
format_instructions: str = FORMAT_INSTRUCTIONS,
|
|
75
|
-
ai_prefix: str = "AI",
|
|
76
|
-
human_prefix: str = "Human",
|
|
77
|
-
input_variables: Optional[list[str]] = None,
|
|
78
|
-
) -> PromptTemplate:
|
|
79
|
-
"""Create prompt in the style of the zero-shot agent.
|
|
80
|
-
|
|
81
|
-
Args:
|
|
82
|
-
tools: List of tools the agent will have access to, used to format the
|
|
83
|
-
prompt.
|
|
84
|
-
prefix: String to put before the list of tools. Defaults to PREFIX.
|
|
85
|
-
suffix: String to put after the list of tools. Defaults to SUFFIX.
|
|
86
|
-
format_instructions: Instructions on how to use the tools. Defaults to
|
|
87
|
-
FORMAT_INSTRUCTIONS
|
|
88
|
-
ai_prefix: String to use before AI output. Defaults to "AI".
|
|
89
|
-
human_prefix: String to use before human output.
|
|
90
|
-
Defaults to "Human".
|
|
91
|
-
input_variables: List of input variables the final prompt will expect.
|
|
92
|
-
Defaults to ["input", "chat_history", "agent_scratchpad"].
|
|
93
|
-
|
|
94
|
-
Returns:
|
|
95
|
-
A PromptTemplate with the template assembled from the pieces here.
|
|
96
|
-
"""
|
|
97
|
-
tool_strings = "\n".join(
|
|
98
|
-
[f"> {tool.name}: {tool.description}" for tool in tools],
|
|
99
|
-
)
|
|
100
|
-
tool_names = ", ".join([tool.name for tool in tools])
|
|
101
|
-
format_instructions = format_instructions.format(
|
|
102
|
-
tool_names=tool_names,
|
|
103
|
-
ai_prefix=ai_prefix,
|
|
104
|
-
human_prefix=human_prefix,
|
|
105
|
-
)
|
|
106
|
-
template = f"{prefix}\n\n{tool_strings}\n\n{format_instructions}\n\n{suffix}"
|
|
107
|
-
if input_variables is None:
|
|
108
|
-
input_variables = ["input", "chat_history", "agent_scratchpad"]
|
|
109
|
-
return PromptTemplate(template=template, input_variables=input_variables)
|
|
110
|
-
|
|
111
|
-
@classmethod
|
|
112
|
-
def _validate_tools(cls, tools: Sequence[BaseTool]) -> None:
|
|
113
|
-
super()._validate_tools(tools)
|
|
114
|
-
validate_tools_single_input(cls.__name__, tools)
|
|
115
|
-
|
|
116
|
-
@classmethod
|
|
117
|
-
def from_llm_and_tools(
|
|
118
|
-
cls,
|
|
119
|
-
llm: BaseLanguageModel,
|
|
120
|
-
tools: Sequence[BaseTool],
|
|
121
|
-
callback_manager: Optional[BaseCallbackManager] = None,
|
|
122
|
-
output_parser: Optional[AgentOutputParser] = None,
|
|
123
|
-
prefix: str = PREFIX,
|
|
124
|
-
suffix: str = SUFFIX,
|
|
125
|
-
format_instructions: str = FORMAT_INSTRUCTIONS,
|
|
126
|
-
ai_prefix: str = "AI",
|
|
127
|
-
human_prefix: str = "Human",
|
|
128
|
-
input_variables: Optional[list[str]] = None,
|
|
129
|
-
**kwargs: Any,
|
|
130
|
-
) -> Agent:
|
|
131
|
-
"""Construct an agent from an LLM and tools.
|
|
132
|
-
|
|
133
|
-
Args:
|
|
134
|
-
llm: The language model to use.
|
|
135
|
-
tools: A list of tools to use.
|
|
136
|
-
callback_manager: The callback manager to use. Default is None.
|
|
137
|
-
output_parser: The output parser to use. Default is None.
|
|
138
|
-
prefix: The prefix to use in the prompt. Default is PREFIX.
|
|
139
|
-
suffix: The suffix to use in the prompt. Default is SUFFIX.
|
|
140
|
-
format_instructions: The format instructions to use.
|
|
141
|
-
Default is FORMAT_INSTRUCTIONS.
|
|
142
|
-
ai_prefix: The prefix to use before AI output. Default is "AI".
|
|
143
|
-
human_prefix: The prefix to use before human output.
|
|
144
|
-
Default is "Human".
|
|
145
|
-
input_variables: The input variables to use. Default is None.
|
|
146
|
-
**kwargs: Any additional keyword arguments to pass to the agent.
|
|
147
|
-
|
|
148
|
-
Returns:
|
|
149
|
-
An agent.
|
|
150
|
-
"""
|
|
151
|
-
cls._validate_tools(tools)
|
|
152
|
-
prompt = cls.create_prompt(
|
|
153
|
-
tools,
|
|
154
|
-
ai_prefix=ai_prefix,
|
|
155
|
-
human_prefix=human_prefix,
|
|
156
|
-
prefix=prefix,
|
|
157
|
-
suffix=suffix,
|
|
158
|
-
format_instructions=format_instructions,
|
|
159
|
-
input_variables=input_variables,
|
|
160
|
-
)
|
|
161
|
-
llm_chain = LLMChain(
|
|
162
|
-
llm=llm,
|
|
163
|
-
prompt=prompt,
|
|
164
|
-
callback_manager=callback_manager,
|
|
165
|
-
)
|
|
166
|
-
tool_names = [tool.name for tool in tools]
|
|
167
|
-
_output_parser = output_parser or cls._get_default_output_parser(
|
|
168
|
-
ai_prefix=ai_prefix,
|
|
169
|
-
)
|
|
170
|
-
return cls(
|
|
171
|
-
llm_chain=llm_chain,
|
|
172
|
-
allowed_tools=tool_names,
|
|
173
|
-
ai_prefix=ai_prefix,
|
|
174
|
-
output_parser=_output_parser,
|
|
175
|
-
**kwargs,
|
|
176
|
-
)
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
from typing import Union
|
|
3
|
-
|
|
4
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
5
|
-
from langchain_core.exceptions import OutputParserException
|
|
6
|
-
|
|
7
|
-
from langchain.agents.agent import AgentOutputParser
|
|
8
|
-
from langchain.agents.conversational.prompt import FORMAT_INSTRUCTIONS
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class ConvoOutputParser(AgentOutputParser):
|
|
12
|
-
"""Output parser for the conversational agent."""
|
|
13
|
-
|
|
14
|
-
ai_prefix: str = "AI"
|
|
15
|
-
"""Prefix to use before AI output."""
|
|
16
|
-
|
|
17
|
-
format_instructions: str = FORMAT_INSTRUCTIONS
|
|
18
|
-
"""Default formatting instructions"""
|
|
19
|
-
|
|
20
|
-
def get_format_instructions(self) -> str:
|
|
21
|
-
"""Returns formatting instructions for the given output parser."""
|
|
22
|
-
return self.format_instructions
|
|
23
|
-
|
|
24
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
25
|
-
"""Parse the output from the agent into
|
|
26
|
-
an AgentAction or AgentFinish object.
|
|
27
|
-
|
|
28
|
-
Args:
|
|
29
|
-
text: The text to parse.
|
|
30
|
-
|
|
31
|
-
Returns:
|
|
32
|
-
An AgentAction or AgentFinish object.
|
|
33
|
-
"""
|
|
34
|
-
|
|
35
|
-
if f"{self.ai_prefix}:" in text:
|
|
36
|
-
return AgentFinish(
|
|
37
|
-
{"output": text.split(f"{self.ai_prefix}:")[-1].strip()},
|
|
38
|
-
text,
|
|
39
|
-
)
|
|
40
|
-
regex = r"Action: (.*?)[\n]*Action Input: ([\s\S]*)"
|
|
41
|
-
match = re.search(regex, text, re.DOTALL)
|
|
42
|
-
if not match:
|
|
43
|
-
msg = f"Could not parse LLM output: `{text}`"
|
|
44
|
-
raise OutputParserException(msg)
|
|
45
|
-
action = match.group(1)
|
|
46
|
-
action_input = match.group(2)
|
|
47
|
-
return AgentAction(action.strip(), action_input.strip(" ").strip('"'), text)
|
|
48
|
-
|
|
49
|
-
@property
|
|
50
|
-
def _type(self) -> str:
|
|
51
|
-
return "conversational"
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
PREFIX = """Assistant is a large language model trained by OpenAI.
|
|
2
|
-
|
|
3
|
-
Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.
|
|
4
|
-
|
|
5
|
-
Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.
|
|
6
|
-
|
|
7
|
-
Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.
|
|
8
|
-
|
|
9
|
-
TOOLS:
|
|
10
|
-
------
|
|
11
|
-
|
|
12
|
-
Assistant has access to the following tools:""" # noqa: E501
|
|
13
|
-
FORMAT_INSTRUCTIONS = """To use a tool, please use the following format:
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
Thought: Do I need to use a tool? Yes
|
|
17
|
-
Action: the action to take, should be one of [{tool_names}]
|
|
18
|
-
Action Input: the input to the action
|
|
19
|
-
Observation: the result of the action
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
When you have a response to say to the Human, or if you do not need to use a tool, you MUST use the format:
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
Thought: Do I need to use a tool? No
|
|
26
|
-
{ai_prefix}: [your response here]
|
|
27
|
-
```""" # noqa: E501
|
|
28
|
-
|
|
29
|
-
SUFFIX = """Begin!
|
|
30
|
-
|
|
31
|
-
Previous conversation history:
|
|
32
|
-
{chat_history}
|
|
33
|
-
|
|
34
|
-
New input: {input}
|
|
35
|
-
{agent_scratchpad}"""
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"""An agent designed to hold a conversation in addition to using tools."""
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
"""An agent designed to hold a conversation in addition to using tools."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
from collections.abc import Sequence
|
|
6
|
-
from typing import Any, Optional
|
|
7
|
-
|
|
8
|
-
from langchain_core._api import deprecated
|
|
9
|
-
from langchain_core.agents import AgentAction
|
|
10
|
-
from langchain_core.callbacks import BaseCallbackManager
|
|
11
|
-
from langchain_core.language_models import BaseLanguageModel
|
|
12
|
-
from langchain_core.messages import AIMessage, BaseMessage, HumanMessage
|
|
13
|
-
from langchain_core.output_parsers import BaseOutputParser
|
|
14
|
-
from langchain_core.prompts import BasePromptTemplate
|
|
15
|
-
from langchain_core.prompts.chat import (
|
|
16
|
-
ChatPromptTemplate,
|
|
17
|
-
HumanMessagePromptTemplate,
|
|
18
|
-
MessagesPlaceholder,
|
|
19
|
-
SystemMessagePromptTemplate,
|
|
20
|
-
)
|
|
21
|
-
from langchain_core.tools import BaseTool
|
|
22
|
-
from pydantic import Field
|
|
23
|
-
|
|
24
|
-
from langchain.agents.agent import Agent, AgentOutputParser
|
|
25
|
-
from langchain.agents.conversational_chat.output_parser import ConvoOutputParser
|
|
26
|
-
from langchain.agents.conversational_chat.prompt import (
|
|
27
|
-
PREFIX,
|
|
28
|
-
SUFFIX,
|
|
29
|
-
TEMPLATE_TOOL_RESPONSE,
|
|
30
|
-
)
|
|
31
|
-
from langchain.agents.utils import validate_tools_single_input
|
|
32
|
-
from langchain.chains import LLMChain
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
@deprecated("0.1.0", alternative="create_json_chat_agent", removal="1.0")
|
|
36
|
-
class ConversationalChatAgent(Agent):
|
|
37
|
-
"""An agent designed to hold a conversation in addition to using tools."""
|
|
38
|
-
|
|
39
|
-
output_parser: AgentOutputParser = Field(default_factory=ConvoOutputParser)
|
|
40
|
-
"""Output parser for the agent."""
|
|
41
|
-
template_tool_response: str = TEMPLATE_TOOL_RESPONSE
|
|
42
|
-
"""Template for the tool response."""
|
|
43
|
-
|
|
44
|
-
@classmethod
|
|
45
|
-
def _get_default_output_parser(cls, **kwargs: Any) -> AgentOutputParser:
|
|
46
|
-
return ConvoOutputParser()
|
|
47
|
-
|
|
48
|
-
@property
|
|
49
|
-
def _agent_type(self) -> str:
|
|
50
|
-
raise NotImplementedError
|
|
51
|
-
|
|
52
|
-
@property
|
|
53
|
-
def observation_prefix(self) -> str:
|
|
54
|
-
"""Prefix to append the observation with.
|
|
55
|
-
|
|
56
|
-
Returns:
|
|
57
|
-
"Observation: "
|
|
58
|
-
"""
|
|
59
|
-
return "Observation: "
|
|
60
|
-
|
|
61
|
-
@property
|
|
62
|
-
def llm_prefix(self) -> str:
|
|
63
|
-
"""Prefix to append the llm call with.
|
|
64
|
-
|
|
65
|
-
Returns:
|
|
66
|
-
"Thought: "
|
|
67
|
-
"""
|
|
68
|
-
return "Thought:"
|
|
69
|
-
|
|
70
|
-
@classmethod
|
|
71
|
-
def _validate_tools(cls, tools: Sequence[BaseTool]) -> None:
|
|
72
|
-
super()._validate_tools(tools)
|
|
73
|
-
validate_tools_single_input(cls.__name__, tools)
|
|
74
|
-
|
|
75
|
-
@classmethod
|
|
76
|
-
def create_prompt(
|
|
77
|
-
cls,
|
|
78
|
-
tools: Sequence[BaseTool],
|
|
79
|
-
system_message: str = PREFIX,
|
|
80
|
-
human_message: str = SUFFIX,
|
|
81
|
-
input_variables: Optional[list[str]] = None,
|
|
82
|
-
output_parser: Optional[BaseOutputParser] = None,
|
|
83
|
-
) -> BasePromptTemplate:
|
|
84
|
-
"""Create a prompt for the agent.
|
|
85
|
-
|
|
86
|
-
Args:
|
|
87
|
-
tools: The tools to use.
|
|
88
|
-
system_message: The system message to use.
|
|
89
|
-
Defaults to the PREFIX.
|
|
90
|
-
human_message: The human message to use.
|
|
91
|
-
Defaults to the SUFFIX.
|
|
92
|
-
input_variables: The input variables to use. Defaults to None.
|
|
93
|
-
output_parser: The output parser to use. Defaults to None.
|
|
94
|
-
|
|
95
|
-
Returns:
|
|
96
|
-
A PromptTemplate.
|
|
97
|
-
"""
|
|
98
|
-
tool_strings = "\n".join(
|
|
99
|
-
[f"> {tool.name}: {tool.description}" for tool in tools],
|
|
100
|
-
)
|
|
101
|
-
tool_names = ", ".join([tool.name for tool in tools])
|
|
102
|
-
_output_parser = output_parser or cls._get_default_output_parser()
|
|
103
|
-
format_instructions = human_message.format(
|
|
104
|
-
format_instructions=_output_parser.get_format_instructions(),
|
|
105
|
-
)
|
|
106
|
-
final_prompt = format_instructions.format(
|
|
107
|
-
tool_names=tool_names,
|
|
108
|
-
tools=tool_strings,
|
|
109
|
-
)
|
|
110
|
-
if input_variables is None:
|
|
111
|
-
input_variables = ["input", "chat_history", "agent_scratchpad"]
|
|
112
|
-
messages = [
|
|
113
|
-
SystemMessagePromptTemplate.from_template(system_message),
|
|
114
|
-
MessagesPlaceholder(variable_name="chat_history"),
|
|
115
|
-
HumanMessagePromptTemplate.from_template(final_prompt),
|
|
116
|
-
MessagesPlaceholder(variable_name="agent_scratchpad"),
|
|
117
|
-
]
|
|
118
|
-
return ChatPromptTemplate(input_variables=input_variables, messages=messages)
|
|
119
|
-
|
|
120
|
-
def _construct_scratchpad(
|
|
121
|
-
self,
|
|
122
|
-
intermediate_steps: list[tuple[AgentAction, str]],
|
|
123
|
-
) -> list[BaseMessage]:
|
|
124
|
-
"""Construct the scratchpad that lets the agent continue its thought process."""
|
|
125
|
-
thoughts: list[BaseMessage] = []
|
|
126
|
-
for action, observation in intermediate_steps:
|
|
127
|
-
thoughts.append(AIMessage(content=action.log))
|
|
128
|
-
human_message = HumanMessage(
|
|
129
|
-
content=self.template_tool_response.format(observation=observation),
|
|
130
|
-
)
|
|
131
|
-
thoughts.append(human_message)
|
|
132
|
-
return thoughts
|
|
133
|
-
|
|
134
|
-
@classmethod
|
|
135
|
-
def from_llm_and_tools(
|
|
136
|
-
cls,
|
|
137
|
-
llm: BaseLanguageModel,
|
|
138
|
-
tools: Sequence[BaseTool],
|
|
139
|
-
callback_manager: Optional[BaseCallbackManager] = None,
|
|
140
|
-
output_parser: Optional[AgentOutputParser] = None,
|
|
141
|
-
system_message: str = PREFIX,
|
|
142
|
-
human_message: str = SUFFIX,
|
|
143
|
-
input_variables: Optional[list[str]] = None,
|
|
144
|
-
**kwargs: Any,
|
|
145
|
-
) -> Agent:
|
|
146
|
-
"""Construct an agent from an LLM and tools.
|
|
147
|
-
|
|
148
|
-
Args:
|
|
149
|
-
llm: The language model to use.
|
|
150
|
-
tools: A list of tools to use.
|
|
151
|
-
callback_manager: The callback manager to use. Default is None.
|
|
152
|
-
output_parser: The output parser to use. Default is None.
|
|
153
|
-
system_message: The system message to use. Default is PREFIX.
|
|
154
|
-
human_message: The human message to use. Default is SUFFIX.
|
|
155
|
-
input_variables: The input variables to use. Default is None.
|
|
156
|
-
**kwargs: Any additional arguments.
|
|
157
|
-
|
|
158
|
-
Returns:
|
|
159
|
-
An agent.
|
|
160
|
-
"""
|
|
161
|
-
cls._validate_tools(tools)
|
|
162
|
-
_output_parser = output_parser or cls._get_default_output_parser()
|
|
163
|
-
prompt = cls.create_prompt(
|
|
164
|
-
tools,
|
|
165
|
-
system_message=system_message,
|
|
166
|
-
human_message=human_message,
|
|
167
|
-
input_variables=input_variables,
|
|
168
|
-
output_parser=_output_parser,
|
|
169
|
-
)
|
|
170
|
-
llm_chain = LLMChain(
|
|
171
|
-
llm=llm,
|
|
172
|
-
prompt=prompt,
|
|
173
|
-
callback_manager=callback_manager,
|
|
174
|
-
)
|
|
175
|
-
tool_names = [tool.name for tool in tools]
|
|
176
|
-
return cls(
|
|
177
|
-
llm_chain=llm_chain,
|
|
178
|
-
allowed_tools=tool_names,
|
|
179
|
-
output_parser=_output_parser,
|
|
180
|
-
**kwargs,
|
|
181
|
-
)
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import Union
|
|
4
|
-
|
|
5
|
-
from langchain_core.agents import AgentAction, AgentFinish
|
|
6
|
-
from langchain_core.exceptions import OutputParserException
|
|
7
|
-
from langchain_core.utils.json import parse_json_markdown
|
|
8
|
-
|
|
9
|
-
from langchain.agents import AgentOutputParser
|
|
10
|
-
from langchain.agents.conversational_chat.prompt import FORMAT_INSTRUCTIONS
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
# Define a class that parses output for conversational agents
|
|
14
|
-
class ConvoOutputParser(AgentOutputParser):
|
|
15
|
-
"""Output parser for the conversational agent."""
|
|
16
|
-
|
|
17
|
-
format_instructions: str = FORMAT_INSTRUCTIONS
|
|
18
|
-
"""Default formatting instructions"""
|
|
19
|
-
|
|
20
|
-
def get_format_instructions(self) -> str:
|
|
21
|
-
"""Returns formatting instructions for the given output parser."""
|
|
22
|
-
return self.format_instructions
|
|
23
|
-
|
|
24
|
-
def parse(self, text: str) -> Union[AgentAction, AgentFinish]:
|
|
25
|
-
"""Attempts to parse the given text into an AgentAction or AgentFinish.
|
|
26
|
-
|
|
27
|
-
Raises:
|
|
28
|
-
OutputParserException if parsing fails.
|
|
29
|
-
"""
|
|
30
|
-
try:
|
|
31
|
-
# Attempt to parse the text into a structured format (assumed to be JSON
|
|
32
|
-
# stored as markdown)
|
|
33
|
-
response = parse_json_markdown(text)
|
|
34
|
-
|
|
35
|
-
# If the response contains an 'action' and 'action_input'
|
|
36
|
-
if "action" in response and "action_input" in response:
|
|
37
|
-
action, action_input = response["action"], response["action_input"]
|
|
38
|
-
|
|
39
|
-
# If the action indicates a final answer, return an AgentFinish
|
|
40
|
-
if action == "Final Answer":
|
|
41
|
-
return AgentFinish({"output": action_input}, text)
|
|
42
|
-
# Otherwise, return an AgentAction with the specified action and
|
|
43
|
-
# input
|
|
44
|
-
return AgentAction(action, action_input, text)
|
|
45
|
-
# If the necessary keys aren't present in the response, raise an
|
|
46
|
-
# exception
|
|
47
|
-
msg = f"Missing 'action' or 'action_input' in LLM output: {text}"
|
|
48
|
-
raise OutputParserException(msg)
|
|
49
|
-
except Exception as e:
|
|
50
|
-
# If any other exception is raised during parsing, also raise an
|
|
51
|
-
# OutputParserException
|
|
52
|
-
msg = f"Could not parse LLM output: {text}"
|
|
53
|
-
raise OutputParserException(msg) from e
|
|
54
|
-
|
|
55
|
-
@property
|
|
56
|
-
def _type(self) -> str:
|
|
57
|
-
return "conversational_chat"
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
PREFIX = """Assistant is a large language model trained by OpenAI.
|
|
2
|
-
|
|
3
|
-
Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.
|
|
4
|
-
|
|
5
|
-
Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.
|
|
6
|
-
|
|
7
|
-
Overall, Assistant is a powerful system that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.""" # noqa: E501
|
|
8
|
-
|
|
9
|
-
FORMAT_INSTRUCTIONS = """RESPONSE FORMAT INSTRUCTIONS
|
|
10
|
-
----------------------------
|
|
11
|
-
|
|
12
|
-
When responding to me, please output a response in one of two formats:
|
|
13
|
-
|
|
14
|
-
**Option 1:**
|
|
15
|
-
Use this if you want the human to use a tool.
|
|
16
|
-
Markdown code snippet formatted in the following schema:
|
|
17
|
-
|
|
18
|
-
```json
|
|
19
|
-
{{{{
|
|
20
|
-
"action": string, \\\\ The action to take. Must be one of {tool_names}
|
|
21
|
-
"action_input": string \\\\ The input to the action
|
|
22
|
-
}}}}
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
**Option #2:**
|
|
26
|
-
Use this if you want to respond directly to the human. Markdown code snippet formatted in the following schema:
|
|
27
|
-
|
|
28
|
-
```json
|
|
29
|
-
{{{{
|
|
30
|
-
"action": "Final Answer",
|
|
31
|
-
"action_input": string \\\\ You should put what you want to return to use here
|
|
32
|
-
}}}}
|
|
33
|
-
```""" # noqa: E501
|
|
34
|
-
|
|
35
|
-
SUFFIX = """TOOLS
|
|
36
|
-
------
|
|
37
|
-
Assistant can ask the user to use tools to look up information that may be helpful in answering the users original question. The tools the human can use are:
|
|
38
|
-
|
|
39
|
-
{{tools}}
|
|
40
|
-
|
|
41
|
-
{format_instructions}
|
|
42
|
-
|
|
43
|
-
USER'S INPUT
|
|
44
|
-
--------------------
|
|
45
|
-
Here is the user's input (remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else):
|
|
46
|
-
|
|
47
|
-
{{{{input}}}}""" # noqa: E501
|
|
48
|
-
|
|
49
|
-
TEMPLATE_TOOL_RESPONSE = """TOOL RESPONSE:
|
|
50
|
-
---------------------
|
|
51
|
-
{observation}
|
|
52
|
-
|
|
53
|
-
USER'S INPUT
|
|
54
|
-
--------------------
|
|
55
|
-
|
|
56
|
-
Okay, so what is the response to my last comment? If using information obtained from the tools you must mention it explicitly without mentioning the tool names - I have forgotten all TOOL RESPONSES! Remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else.""" # noqa: E501
|