langchain 0.3.26__py3-none-any.whl → 0.4.0.dev0__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.
- langchain/__init__.py +110 -96
- langchain/_api/__init__.py +2 -2
- langchain/_api/deprecation.py +3 -3
- langchain/_api/module_import.py +51 -46
- langchain/_api/path.py +1 -1
- langchain/adapters/openai.py +8 -8
- langchain/agents/__init__.py +15 -12
- langchain/agents/agent.py +174 -151
- langchain/agents/agent_iterator.py +50 -26
- langchain/agents/agent_toolkits/__init__.py +7 -6
- langchain/agents/agent_toolkits/ainetwork/toolkit.py +1 -1
- langchain/agents/agent_toolkits/amadeus/toolkit.py +1 -1
- langchain/agents/agent_toolkits/azure_cognitive_services.py +1 -1
- langchain/agents/agent_toolkits/clickup/toolkit.py +1 -1
- langchain/agents/agent_toolkits/conversational_retrieval/openai_functions.py +6 -4
- langchain/agents/agent_toolkits/csv/__init__.py +4 -2
- langchain/agents/agent_toolkits/file_management/__init__.py +1 -1
- langchain/agents/agent_toolkits/file_management/toolkit.py +1 -1
- langchain/agents/agent_toolkits/github/toolkit.py +9 -9
- langchain/agents/agent_toolkits/gitlab/toolkit.py +1 -1
- langchain/agents/agent_toolkits/json/base.py +1 -1
- langchain/agents/agent_toolkits/multion/toolkit.py +1 -1
- langchain/agents/agent_toolkits/office365/toolkit.py +1 -1
- langchain/agents/agent_toolkits/openapi/base.py +1 -1
- langchain/agents/agent_toolkits/openapi/planner.py +2 -2
- langchain/agents/agent_toolkits/openapi/planner_prompt.py +10 -10
- langchain/agents/agent_toolkits/openapi/prompt.py +1 -1
- langchain/agents/agent_toolkits/openapi/toolkit.py +1 -1
- langchain/agents/agent_toolkits/pandas/__init__.py +4 -2
- langchain/agents/agent_toolkits/playwright/__init__.py +1 -1
- langchain/agents/agent_toolkits/playwright/toolkit.py +1 -1
- langchain/agents/agent_toolkits/powerbi/base.py +1 -1
- langchain/agents/agent_toolkits/powerbi/chat_base.py +1 -1
- langchain/agents/agent_toolkits/powerbi/prompt.py +2 -2
- langchain/agents/agent_toolkits/powerbi/toolkit.py +1 -1
- langchain/agents/agent_toolkits/python/__init__.py +4 -2
- langchain/agents/agent_toolkits/spark/__init__.py +4 -2
- langchain/agents/agent_toolkits/spark_sql/base.py +1 -1
- langchain/agents/agent_toolkits/spark_sql/toolkit.py +1 -1
- langchain/agents/agent_toolkits/sql/prompt.py +1 -1
- langchain/agents/agent_toolkits/sql/toolkit.py +1 -1
- langchain/agents/agent_toolkits/vectorstore/base.py +4 -2
- langchain/agents/agent_toolkits/vectorstore/prompt.py +2 -4
- langchain/agents/agent_toolkits/vectorstore/toolkit.py +12 -11
- langchain/agents/agent_toolkits/xorbits/__init__.py +4 -2
- langchain/agents/agent_toolkits/zapier/toolkit.py +1 -1
- langchain/agents/agent_types.py +6 -6
- langchain/agents/chat/base.py +8 -12
- langchain/agents/chat/output_parser.py +9 -6
- langchain/agents/chat/prompt.py +3 -4
- langchain/agents/conversational/base.py +11 -5
- langchain/agents/conversational/output_parser.py +4 -2
- langchain/agents/conversational/prompt.py +2 -3
- langchain/agents/conversational_chat/base.py +9 -5
- langchain/agents/conversational_chat/output_parser.py +9 -11
- langchain/agents/conversational_chat/prompt.py +5 -6
- langchain/agents/format_scratchpad/__init__.py +3 -3
- langchain/agents/format_scratchpad/log_to_messages.py +1 -1
- langchain/agents/format_scratchpad/openai_functions.py +8 -6
- langchain/agents/format_scratchpad/tools.py +5 -3
- langchain/agents/format_scratchpad/xml.py +33 -2
- langchain/agents/initialize.py +17 -9
- langchain/agents/json_chat/base.py +19 -18
- langchain/agents/json_chat/prompt.py +2 -3
- langchain/agents/load_tools.py +2 -1
- langchain/agents/loading.py +28 -18
- langchain/agents/mrkl/base.py +11 -4
- langchain/agents/mrkl/output_parser.py +17 -13
- langchain/agents/mrkl/prompt.py +1 -2
- langchain/agents/openai_assistant/base.py +81 -71
- langchain/agents/openai_functions_agent/agent_token_buffer_memory.py +2 -0
- langchain/agents/openai_functions_agent/base.py +47 -37
- langchain/agents/openai_functions_multi_agent/base.py +40 -27
- langchain/agents/openai_tools/base.py +9 -8
- langchain/agents/output_parsers/__init__.py +3 -3
- langchain/agents/output_parsers/json.py +8 -6
- langchain/agents/output_parsers/openai_functions.py +24 -9
- langchain/agents/output_parsers/openai_tools.py +16 -4
- langchain/agents/output_parsers/react_json_single_input.py +13 -5
- langchain/agents/output_parsers/react_single_input.py +18 -11
- langchain/agents/output_parsers/self_ask.py +5 -2
- langchain/agents/output_parsers/tools.py +32 -13
- langchain/agents/output_parsers/xml.py +102 -28
- langchain/agents/react/agent.py +5 -4
- langchain/agents/react/base.py +26 -17
- langchain/agents/react/output_parser.py +7 -6
- langchain/agents/react/textworld_prompt.py +0 -1
- langchain/agents/react/wiki_prompt.py +14 -15
- langchain/agents/schema.py +5 -2
- langchain/agents/self_ask_with_search/base.py +23 -15
- langchain/agents/self_ask_with_search/prompt.py +0 -1
- langchain/agents/structured_chat/base.py +19 -11
- langchain/agents/structured_chat/output_parser.py +29 -18
- langchain/agents/structured_chat/prompt.py +3 -4
- langchain/agents/tool_calling_agent/base.py +8 -6
- langchain/agents/tools.py +5 -2
- langchain/agents/utils.py +2 -3
- langchain/agents/xml/base.py +12 -6
- langchain/agents/xml/prompt.py +1 -2
- langchain/cache.py +12 -12
- langchain/callbacks/__init__.py +11 -11
- langchain/callbacks/aim_callback.py +2 -2
- langchain/callbacks/argilla_callback.py +1 -1
- langchain/callbacks/arize_callback.py +1 -1
- langchain/callbacks/arthur_callback.py +1 -1
- langchain/callbacks/base.py +7 -7
- langchain/callbacks/clearml_callback.py +1 -1
- langchain/callbacks/comet_ml_callback.py +1 -1
- langchain/callbacks/confident_callback.py +1 -1
- langchain/callbacks/context_callback.py +1 -1
- langchain/callbacks/flyte_callback.py +1 -1
- langchain/callbacks/human.py +2 -2
- langchain/callbacks/infino_callback.py +1 -1
- langchain/callbacks/labelstudio_callback.py +1 -1
- langchain/callbacks/llmonitor_callback.py +1 -1
- langchain/callbacks/manager.py +5 -5
- langchain/callbacks/mlflow_callback.py +2 -2
- langchain/callbacks/openai_info.py +1 -1
- langchain/callbacks/promptlayer_callback.py +1 -1
- langchain/callbacks/sagemaker_callback.py +1 -1
- langchain/callbacks/streaming_aiter.py +17 -3
- langchain/callbacks/streaming_aiter_final_only.py +16 -5
- langchain/callbacks/streaming_stdout_final_only.py +10 -3
- langchain/callbacks/streamlit/__init__.py +3 -2
- langchain/callbacks/streamlit/mutable_expander.py +1 -1
- langchain/callbacks/streamlit/streamlit_callback_handler.py +3 -3
- langchain/callbacks/tracers/__init__.py +1 -1
- langchain/callbacks/tracers/comet.py +1 -1
- langchain/callbacks/tracers/evaluation.py +1 -1
- langchain/callbacks/tracers/log_stream.py +1 -1
- langchain/callbacks/tracers/logging.py +12 -1
- langchain/callbacks/tracers/stdout.py +1 -1
- langchain/callbacks/trubrics_callback.py +1 -1
- langchain/callbacks/utils.py +4 -4
- langchain/callbacks/wandb_callback.py +1 -1
- langchain/callbacks/whylabs_callback.py +1 -1
- langchain/chains/api/base.py +41 -23
- langchain/chains/api/news_docs.py +1 -2
- langchain/chains/api/open_meteo_docs.py +1 -2
- langchain/chains/api/openapi/requests_chain.py +1 -1
- langchain/chains/api/openapi/response_chain.py +1 -1
- langchain/chains/api/podcast_docs.py +1 -2
- langchain/chains/api/prompt.py +1 -2
- langchain/chains/api/tmdb_docs.py +1 -2
- langchain/chains/base.py +96 -56
- langchain/chains/chat_vector_db/prompts.py +2 -3
- langchain/chains/combine_documents/__init__.py +1 -1
- langchain/chains/combine_documents/base.py +30 -11
- langchain/chains/combine_documents/map_reduce.py +41 -30
- langchain/chains/combine_documents/map_rerank.py +39 -24
- langchain/chains/combine_documents/reduce.py +48 -26
- langchain/chains/combine_documents/refine.py +27 -17
- langchain/chains/combine_documents/stuff.py +24 -13
- langchain/chains/constitutional_ai/base.py +11 -4
- langchain/chains/constitutional_ai/principles.py +22 -25
- langchain/chains/constitutional_ai/prompts.py +25 -28
- langchain/chains/conversation/base.py +9 -4
- langchain/chains/conversation/memory.py +5 -5
- langchain/chains/conversation/prompt.py +5 -5
- langchain/chains/conversational_retrieval/base.py +108 -79
- langchain/chains/conversational_retrieval/prompts.py +2 -3
- langchain/chains/elasticsearch_database/base.py +10 -10
- langchain/chains/elasticsearch_database/prompts.py +2 -3
- langchain/chains/ernie_functions/__init__.py +2 -2
- langchain/chains/example_generator.py +3 -1
- langchain/chains/flare/base.py +28 -12
- langchain/chains/flare/prompts.py +2 -0
- langchain/chains/graph_qa/cypher.py +2 -2
- langchain/chains/graph_qa/falkordb.py +1 -1
- langchain/chains/graph_qa/gremlin.py +1 -1
- langchain/chains/graph_qa/neptune_sparql.py +1 -1
- langchain/chains/graph_qa/prompts.py +2 -2
- langchain/chains/history_aware_retriever.py +2 -1
- langchain/chains/hyde/base.py +6 -5
- langchain/chains/hyde/prompts.py +5 -6
- langchain/chains/llm.py +82 -61
- langchain/chains/llm_bash/__init__.py +3 -2
- langchain/chains/llm_checker/base.py +19 -6
- langchain/chains/llm_checker/prompt.py +3 -4
- langchain/chains/llm_math/base.py +25 -10
- langchain/chains/llm_math/prompt.py +1 -2
- langchain/chains/llm_summarization_checker/base.py +22 -7
- langchain/chains/llm_symbolic_math/__init__.py +3 -2
- langchain/chains/loading.py +155 -97
- langchain/chains/mapreduce.py +4 -3
- langchain/chains/moderation.py +11 -9
- langchain/chains/natbot/base.py +11 -9
- langchain/chains/natbot/crawler.py +102 -76
- langchain/chains/natbot/prompt.py +2 -3
- langchain/chains/openai_functions/__init__.py +7 -7
- langchain/chains/openai_functions/base.py +15 -10
- langchain/chains/openai_functions/citation_fuzzy_match.py +21 -11
- langchain/chains/openai_functions/extraction.py +19 -19
- langchain/chains/openai_functions/openapi.py +39 -35
- langchain/chains/openai_functions/qa_with_structure.py +22 -15
- langchain/chains/openai_functions/tagging.py +4 -4
- langchain/chains/openai_tools/extraction.py +7 -8
- langchain/chains/qa_generation/base.py +8 -3
- langchain/chains/qa_generation/prompt.py +5 -5
- langchain/chains/qa_with_sources/base.py +17 -6
- langchain/chains/qa_with_sources/loading.py +16 -8
- langchain/chains/qa_with_sources/map_reduce_prompt.py +8 -9
- langchain/chains/qa_with_sources/refine_prompts.py +0 -1
- langchain/chains/qa_with_sources/retrieval.py +15 -6
- langchain/chains/qa_with_sources/stuff_prompt.py +6 -7
- langchain/chains/qa_with_sources/vector_db.py +21 -8
- langchain/chains/query_constructor/base.py +37 -34
- langchain/chains/query_constructor/ir.py +4 -4
- langchain/chains/query_constructor/parser.py +101 -34
- langchain/chains/query_constructor/prompt.py +5 -6
- langchain/chains/question_answering/chain.py +21 -10
- langchain/chains/question_answering/map_reduce_prompt.py +14 -14
- langchain/chains/question_answering/map_rerank_prompt.py +3 -3
- langchain/chains/question_answering/refine_prompts.py +2 -5
- langchain/chains/question_answering/stuff_prompt.py +5 -5
- langchain/chains/retrieval.py +1 -3
- langchain/chains/retrieval_qa/base.py +38 -27
- langchain/chains/retrieval_qa/prompt.py +1 -2
- langchain/chains/router/__init__.py +3 -3
- langchain/chains/router/base.py +38 -22
- langchain/chains/router/embedding_router.py +15 -8
- langchain/chains/router/llm_router.py +23 -20
- langchain/chains/router/multi_prompt.py +5 -2
- langchain/chains/router/multi_retrieval_qa.py +28 -5
- langchain/chains/sequential.py +30 -18
- langchain/chains/sql_database/prompt.py +14 -16
- langchain/chains/sql_database/query.py +7 -5
- langchain/chains/structured_output/__init__.py +1 -1
- langchain/chains/structured_output/base.py +77 -67
- langchain/chains/summarize/chain.py +11 -5
- langchain/chains/summarize/map_reduce_prompt.py +0 -1
- langchain/chains/summarize/stuff_prompt.py +0 -1
- langchain/chains/transform.py +9 -6
- langchain/chat_loaders/facebook_messenger.py +1 -1
- langchain/chat_loaders/langsmith.py +1 -1
- langchain/chat_loaders/utils.py +3 -3
- langchain/chat_models/__init__.py +20 -19
- langchain/chat_models/anthropic.py +1 -1
- langchain/chat_models/azureml_endpoint.py +1 -1
- langchain/chat_models/baidu_qianfan_endpoint.py +1 -1
- langchain/chat_models/base.py +213 -139
- langchain/chat_models/bedrock.py +1 -1
- langchain/chat_models/fake.py +1 -1
- langchain/chat_models/meta.py +1 -1
- langchain/chat_models/pai_eas_endpoint.py +1 -1
- langchain/chat_models/promptlayer_openai.py +1 -1
- langchain/chat_models/volcengine_maas.py +1 -1
- langchain/docstore/base.py +1 -1
- langchain/document_loaders/__init__.py +9 -9
- langchain/document_loaders/airbyte.py +3 -3
- langchain/document_loaders/assemblyai.py +1 -1
- langchain/document_loaders/azure_blob_storage_container.py +1 -1
- langchain/document_loaders/azure_blob_storage_file.py +1 -1
- langchain/document_loaders/baiducloud_bos_file.py +1 -1
- langchain/document_loaders/base.py +1 -1
- langchain/document_loaders/blob_loaders/__init__.py +1 -1
- langchain/document_loaders/blob_loaders/schema.py +1 -4
- langchain/document_loaders/blockchain.py +1 -1
- langchain/document_loaders/chatgpt.py +1 -1
- langchain/document_loaders/college_confidential.py +1 -1
- langchain/document_loaders/confluence.py +1 -1
- langchain/document_loaders/email.py +1 -1
- langchain/document_loaders/facebook_chat.py +1 -1
- langchain/document_loaders/markdown.py +1 -1
- langchain/document_loaders/notebook.py +1 -1
- langchain/document_loaders/org_mode.py +1 -1
- langchain/document_loaders/parsers/__init__.py +1 -1
- langchain/document_loaders/parsers/docai.py +1 -1
- langchain/document_loaders/parsers/generic.py +1 -1
- langchain/document_loaders/parsers/html/__init__.py +1 -1
- langchain/document_loaders/parsers/html/bs4.py +1 -1
- langchain/document_loaders/parsers/language/cobol.py +1 -1
- langchain/document_loaders/parsers/language/python.py +1 -1
- langchain/document_loaders/parsers/msword.py +1 -1
- langchain/document_loaders/parsers/pdf.py +5 -5
- langchain/document_loaders/parsers/registry.py +1 -1
- langchain/document_loaders/pdf.py +8 -8
- langchain/document_loaders/powerpoint.py +1 -1
- langchain/document_loaders/pyspark_dataframe.py +1 -1
- langchain/document_loaders/telegram.py +2 -2
- langchain/document_loaders/tencent_cos_directory.py +1 -1
- langchain/document_loaders/unstructured.py +5 -5
- langchain/document_loaders/url_playwright.py +1 -1
- langchain/document_loaders/whatsapp_chat.py +1 -1
- langchain/document_loaders/youtube.py +2 -2
- langchain/document_transformers/__init__.py +3 -3
- langchain/document_transformers/beautiful_soup_transformer.py +1 -1
- langchain/document_transformers/doctran_text_extract.py +1 -1
- langchain/document_transformers/doctran_text_qa.py +1 -1
- langchain/document_transformers/doctran_text_translate.py +1 -1
- langchain/document_transformers/embeddings_redundant_filter.py +3 -3
- langchain/document_transformers/google_translate.py +1 -1
- langchain/document_transformers/html2text.py +1 -1
- langchain/document_transformers/nuclia_text_transform.py +1 -1
- langchain/embeddings/__init__.py +5 -5
- langchain/embeddings/base.py +35 -24
- langchain/embeddings/cache.py +37 -32
- langchain/embeddings/fake.py +1 -1
- langchain/embeddings/huggingface.py +2 -2
- langchain/evaluation/__init__.py +22 -22
- langchain/evaluation/agents/trajectory_eval_chain.py +26 -25
- langchain/evaluation/agents/trajectory_eval_prompt.py +6 -9
- langchain/evaluation/comparison/__init__.py +1 -1
- langchain/evaluation/comparison/eval_chain.py +21 -13
- langchain/evaluation/comparison/prompt.py +1 -2
- langchain/evaluation/criteria/__init__.py +1 -1
- langchain/evaluation/criteria/eval_chain.py +23 -11
- langchain/evaluation/criteria/prompt.py +2 -3
- langchain/evaluation/embedding_distance/base.py +34 -20
- langchain/evaluation/exact_match/base.py +14 -1
- langchain/evaluation/loading.py +16 -11
- langchain/evaluation/parsing/base.py +20 -4
- langchain/evaluation/parsing/json_distance.py +24 -10
- langchain/evaluation/parsing/json_schema.py +13 -12
- langchain/evaluation/qa/__init__.py +1 -1
- langchain/evaluation/qa/eval_chain.py +20 -5
- langchain/evaluation/qa/eval_prompt.py +7 -8
- langchain/evaluation/qa/generate_chain.py +4 -1
- langchain/evaluation/qa/generate_prompt.py +2 -4
- langchain/evaluation/regex_match/base.py +9 -1
- langchain/evaluation/schema.py +38 -30
- langchain/evaluation/scoring/__init__.py +1 -1
- langchain/evaluation/scoring/eval_chain.py +23 -15
- langchain/evaluation/scoring/prompt.py +0 -1
- langchain/evaluation/string_distance/base.py +20 -9
- langchain/globals.py +12 -11
- langchain/graphs/__init__.py +6 -6
- langchain/graphs/graph_document.py +1 -1
- langchain/graphs/networkx_graph.py +2 -2
- langchain/hub.py +9 -11
- langchain/indexes/__init__.py +3 -3
- langchain/indexes/_sql_record_manager.py +63 -46
- langchain/indexes/prompts/entity_extraction.py +1 -2
- langchain/indexes/prompts/entity_summarization.py +1 -2
- langchain/indexes/prompts/knowledge_triplet_extraction.py +1 -3
- langchain/indexes/vectorstore.py +35 -19
- langchain/llms/__init__.py +13 -13
- langchain/llms/ai21.py +1 -1
- langchain/llms/azureml_endpoint.py +4 -4
- langchain/llms/base.py +15 -7
- langchain/llms/bedrock.py +1 -1
- langchain/llms/cloudflare_workersai.py +1 -1
- langchain/llms/gradient_ai.py +1 -1
- langchain/llms/loading.py +1 -1
- langchain/llms/openai.py +1 -1
- langchain/llms/sagemaker_endpoint.py +1 -1
- langchain/load/dump.py +1 -1
- langchain/load/load.py +1 -1
- langchain/load/serializable.py +3 -3
- langchain/memory/__init__.py +3 -3
- langchain/memory/buffer.py +14 -7
- langchain/memory/buffer_window.py +2 -0
- langchain/memory/chat_memory.py +14 -8
- langchain/memory/chat_message_histories/__init__.py +1 -1
- langchain/memory/chat_message_histories/astradb.py +1 -1
- langchain/memory/chat_message_histories/cassandra.py +1 -1
- langchain/memory/chat_message_histories/cosmos_db.py +1 -1
- langchain/memory/chat_message_histories/dynamodb.py +1 -1
- langchain/memory/chat_message_histories/elasticsearch.py +1 -1
- langchain/memory/chat_message_histories/file.py +1 -1
- langchain/memory/chat_message_histories/firestore.py +1 -1
- langchain/memory/chat_message_histories/momento.py +1 -1
- langchain/memory/chat_message_histories/mongodb.py +1 -1
- langchain/memory/chat_message_histories/neo4j.py +1 -1
- langchain/memory/chat_message_histories/postgres.py +1 -1
- langchain/memory/chat_message_histories/redis.py +1 -1
- langchain/memory/chat_message_histories/rocksetdb.py +1 -1
- langchain/memory/chat_message_histories/singlestoredb.py +1 -1
- langchain/memory/chat_message_histories/streamlit.py +1 -1
- langchain/memory/chat_message_histories/upstash_redis.py +1 -1
- langchain/memory/chat_message_histories/xata.py +1 -1
- langchain/memory/chat_message_histories/zep.py +1 -1
- langchain/memory/combined.py +14 -13
- langchain/memory/entity.py +131 -61
- langchain/memory/prompt.py +10 -11
- langchain/memory/readonly.py +0 -2
- langchain/memory/simple.py +4 -3
- langchain/memory/summary.py +43 -11
- langchain/memory/summary_buffer.py +20 -8
- langchain/memory/token_buffer.py +2 -0
- langchain/memory/utils.py +3 -2
- langchain/memory/vectorstore.py +12 -5
- langchain/memory/vectorstore_token_buffer_memory.py +5 -5
- langchain/model_laboratory.py +12 -11
- langchain/output_parsers/__init__.py +4 -4
- langchain/output_parsers/boolean.py +7 -4
- langchain/output_parsers/combining.py +14 -7
- langchain/output_parsers/datetime.py +32 -31
- langchain/output_parsers/enum.py +10 -4
- langchain/output_parsers/fix.py +60 -53
- langchain/output_parsers/format_instructions.py +6 -8
- langchain/output_parsers/json.py +2 -2
- langchain/output_parsers/list.py +2 -2
- langchain/output_parsers/loading.py +9 -9
- langchain/output_parsers/openai_functions.py +3 -3
- langchain/output_parsers/openai_tools.py +1 -1
- langchain/output_parsers/pandas_dataframe.py +59 -48
- langchain/output_parsers/prompts.py +1 -2
- langchain/output_parsers/rail_parser.py +1 -1
- langchain/output_parsers/regex.py +9 -8
- langchain/output_parsers/regex_dict.py +7 -10
- langchain/output_parsers/retry.py +99 -80
- langchain/output_parsers/structured.py +21 -6
- langchain/output_parsers/yaml.py +19 -11
- langchain/prompts/__init__.py +5 -3
- langchain/prompts/base.py +5 -5
- langchain/prompts/chat.py +8 -8
- langchain/prompts/example_selector/__init__.py +3 -1
- langchain/prompts/example_selector/semantic_similarity.py +2 -2
- langchain/prompts/few_shot.py +1 -1
- langchain/prompts/loading.py +3 -3
- langchain/prompts/prompt.py +1 -1
- langchain/pydantic_v1/__init__.py +1 -1
- langchain/retrievers/__init__.py +5 -5
- langchain/retrievers/bedrock.py +2 -2
- langchain/retrievers/bm25.py +1 -1
- langchain/retrievers/contextual_compression.py +14 -8
- langchain/retrievers/docarray.py +1 -1
- langchain/retrievers/document_compressors/__init__.py +5 -4
- langchain/retrievers/document_compressors/base.py +12 -6
- langchain/retrievers/document_compressors/chain_extract.py +5 -3
- langchain/retrievers/document_compressors/chain_extract_prompt.py +2 -3
- langchain/retrievers/document_compressors/chain_filter.py +9 -9
- langchain/retrievers/document_compressors/chain_filter_prompt.py +1 -2
- langchain/retrievers/document_compressors/cohere_rerank.py +17 -15
- langchain/retrievers/document_compressors/cross_encoder_rerank.py +2 -0
- langchain/retrievers/document_compressors/embeddings_filter.py +24 -17
- langchain/retrievers/document_compressors/flashrank_rerank.py +1 -1
- langchain/retrievers/document_compressors/listwise_rerank.py +8 -5
- langchain/retrievers/ensemble.py +30 -27
- langchain/retrievers/google_cloud_documentai_warehouse.py +1 -1
- langchain/retrievers/google_vertex_ai_search.py +2 -2
- langchain/retrievers/kendra.py +10 -10
- langchain/retrievers/llama_index.py +1 -1
- langchain/retrievers/merger_retriever.py +11 -11
- langchain/retrievers/milvus.py +1 -1
- langchain/retrievers/multi_query.py +35 -27
- langchain/retrievers/multi_vector.py +24 -9
- langchain/retrievers/parent_document_retriever.py +33 -9
- langchain/retrievers/re_phraser.py +6 -5
- langchain/retrievers/self_query/base.py +157 -127
- langchain/retrievers/time_weighted_retriever.py +21 -7
- langchain/retrievers/zilliz.py +1 -1
- langchain/runnables/hub.py +12 -0
- langchain/runnables/openai_functions.py +12 -2
- langchain/schema/__init__.py +23 -23
- langchain/schema/cache.py +1 -1
- langchain/schema/callbacks/base.py +7 -7
- langchain/schema/callbacks/manager.py +19 -19
- langchain/schema/callbacks/tracers/base.py +1 -1
- langchain/schema/callbacks/tracers/evaluation.py +1 -1
- langchain/schema/callbacks/tracers/langchain.py +1 -1
- langchain/schema/callbacks/tracers/langchain_v1.py +1 -1
- langchain/schema/callbacks/tracers/log_stream.py +1 -1
- langchain/schema/callbacks/tracers/schemas.py +8 -8
- langchain/schema/callbacks/tracers/stdout.py +3 -3
- langchain/schema/document.py +1 -1
- langchain/schema/language_model.py +2 -2
- langchain/schema/messages.py +12 -12
- langchain/schema/output.py +3 -3
- langchain/schema/output_parser.py +3 -3
- langchain/schema/runnable/__init__.py +3 -3
- langchain/schema/runnable/base.py +9 -9
- langchain/schema/runnable/config.py +5 -5
- langchain/schema/runnable/configurable.py +1 -1
- langchain/schema/runnable/history.py +1 -1
- langchain/schema/runnable/passthrough.py +1 -1
- langchain/schema/runnable/utils.py +16 -16
- langchain/schema/vectorstore.py +1 -1
- langchain/smith/__init__.py +2 -1
- langchain/smith/evaluation/__init__.py +2 -2
- langchain/smith/evaluation/config.py +9 -23
- langchain/smith/evaluation/name_generation.py +3 -3
- langchain/smith/evaluation/progress.py +22 -4
- langchain/smith/evaluation/runner_utils.py +416 -247
- langchain/smith/evaluation/string_run_evaluator.py +102 -68
- langchain/storage/__init__.py +2 -2
- langchain/storage/_lc_store.py +4 -2
- langchain/storage/encoder_backed.py +7 -2
- langchain/storage/file_system.py +19 -16
- langchain/storage/in_memory.py +1 -1
- langchain/storage/upstash_redis.py +1 -1
- langchain/text_splitter.py +15 -15
- langchain/tools/__init__.py +28 -26
- langchain/tools/ainetwork/app.py +1 -1
- langchain/tools/ainetwork/base.py +1 -1
- langchain/tools/ainetwork/owner.py +1 -1
- langchain/tools/ainetwork/rule.py +1 -1
- langchain/tools/ainetwork/transfer.py +1 -1
- langchain/tools/ainetwork/value.py +1 -1
- langchain/tools/amadeus/closest_airport.py +1 -1
- langchain/tools/amadeus/flight_search.py +1 -1
- langchain/tools/azure_cognitive_services/__init__.py +1 -1
- langchain/tools/base.py +4 -4
- langchain/tools/bearly/tool.py +1 -1
- langchain/tools/bing_search/__init__.py +1 -1
- langchain/tools/bing_search/tool.py +1 -1
- langchain/tools/dataforseo_api_search/__init__.py +1 -1
- langchain/tools/dataforseo_api_search/tool.py +1 -1
- langchain/tools/ddg_search/tool.py +1 -1
- langchain/tools/e2b_data_analysis/tool.py +2 -2
- langchain/tools/edenai/__init__.py +1 -1
- langchain/tools/file_management/__init__.py +1 -1
- langchain/tools/file_management/copy.py +1 -1
- langchain/tools/file_management/delete.py +1 -1
- langchain/tools/gmail/__init__.py +2 -2
- langchain/tools/gmail/get_message.py +1 -1
- langchain/tools/gmail/search.py +1 -1
- langchain/tools/gmail/send_message.py +1 -1
- langchain/tools/google_finance/__init__.py +1 -1
- langchain/tools/google_finance/tool.py +1 -1
- langchain/tools/google_scholar/__init__.py +1 -1
- langchain/tools/google_scholar/tool.py +1 -1
- langchain/tools/google_search/__init__.py +1 -1
- langchain/tools/google_search/tool.py +1 -1
- langchain/tools/google_serper/__init__.py +1 -1
- langchain/tools/google_serper/tool.py +1 -1
- langchain/tools/google_trends/__init__.py +1 -1
- langchain/tools/google_trends/tool.py +1 -1
- langchain/tools/jira/tool.py +20 -1
- langchain/tools/json/tool.py +25 -3
- langchain/tools/memorize/tool.py +1 -1
- langchain/tools/multion/__init__.py +1 -1
- langchain/tools/multion/update_session.py +1 -1
- langchain/tools/office365/__init__.py +2 -2
- langchain/tools/office365/events_search.py +1 -1
- langchain/tools/office365/messages_search.py +1 -1
- langchain/tools/office365/send_event.py +1 -1
- langchain/tools/office365/send_message.py +1 -1
- langchain/tools/openapi/utils/api_models.py +6 -6
- langchain/tools/playwright/__init__.py +5 -5
- langchain/tools/playwright/click.py +1 -1
- langchain/tools/playwright/extract_hyperlinks.py +1 -1
- langchain/tools/playwright/get_elements.py +1 -1
- langchain/tools/playwright/navigate.py +1 -1
- langchain/tools/plugin.py +2 -2
- langchain/tools/powerbi/tool.py +1 -1
- langchain/tools/python/__init__.py +3 -2
- langchain/tools/reddit_search/tool.py +1 -1
- langchain/tools/render.py +2 -2
- langchain/tools/requests/tool.py +2 -2
- langchain/tools/searchapi/tool.py +1 -1
- langchain/tools/searx_search/tool.py +1 -1
- langchain/tools/slack/get_message.py +1 -1
- langchain/tools/spark_sql/tool.py +1 -1
- langchain/tools/sql_database/tool.py +1 -1
- langchain/tools/tavily_search/__init__.py +1 -1
- langchain/tools/tavily_search/tool.py +1 -1
- langchain/tools/zapier/__init__.py +1 -1
- langchain/tools/zapier/tool.py +24 -2
- langchain/utilities/__init__.py +4 -4
- langchain/utilities/arcee.py +4 -4
- langchain/utilities/clickup.py +4 -4
- langchain/utilities/dalle_image_generator.py +1 -1
- langchain/utilities/dataforseo_api_search.py +1 -1
- langchain/utilities/opaqueprompts.py +1 -1
- langchain/utilities/reddit_search.py +1 -1
- langchain/utilities/sql_database.py +1 -1
- langchain/utilities/tavily_search.py +1 -1
- langchain/utilities/vertexai.py +2 -2
- langchain/utils/__init__.py +1 -1
- langchain/utils/aiter.py +1 -1
- langchain/utils/html.py +3 -3
- langchain/utils/input.py +1 -1
- langchain/utils/iter.py +1 -1
- langchain/utils/json_schema.py +1 -3
- langchain/utils/strings.py +1 -1
- langchain/utils/utils.py +6 -6
- langchain/vectorstores/__init__.py +5 -5
- langchain/vectorstores/alibabacloud_opensearch.py +1 -1
- langchain/vectorstores/azure_cosmos_db.py +1 -1
- langchain/vectorstores/clickhouse.py +1 -1
- langchain/vectorstores/elastic_vector_search.py +1 -1
- langchain/vectorstores/elasticsearch.py +2 -2
- langchain/vectorstores/myscale.py +1 -1
- langchain/vectorstores/neo4j_vector.py +1 -1
- langchain/vectorstores/pgembedding.py +1 -1
- langchain/vectorstores/qdrant.py +1 -1
- langchain/vectorstores/redis/__init__.py +1 -1
- langchain/vectorstores/redis/base.py +1 -1
- langchain/vectorstores/redis/filters.py +4 -4
- langchain/vectorstores/redis/schema.py +6 -6
- langchain/vectorstores/sklearn.py +2 -2
- langchain/vectorstores/starrocks.py +1 -1
- langchain/vectorstores/utils.py +1 -1
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/METADATA +4 -14
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/RECORD +590 -591
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/WHEEL +1 -1
- langchain/smith/evaluation/utils.py +0 -0
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/entry_points.txt +0 -0
- {langchain-0.3.26.dist-info → langchain-0.4.0.dev0.dist-info}/licenses/LICENSE +0 -0
|
@@ -147,7 +147,9 @@ class AgentExecutorIterator:
|
|
|
147
147
|
self.iterations += 1
|
|
148
148
|
self.time_elapsed = time.time() - self.start_time
|
|
149
149
|
logger.debug(
|
|
150
|
-
|
|
150
|
+
"Agent Iterations: %s (%.2fs elapsed)",
|
|
151
|
+
self.iterations,
|
|
152
|
+
self.time_elapsed,
|
|
151
153
|
)
|
|
152
154
|
|
|
153
155
|
def make_final_outputs(
|
|
@@ -155,19 +157,28 @@ class AgentExecutorIterator:
|
|
|
155
157
|
outputs: dict[str, Any],
|
|
156
158
|
run_manager: Union[CallbackManagerForChainRun, AsyncCallbackManagerForChainRun],
|
|
157
159
|
) -> AddableDict:
|
|
160
|
+
"""Make final outputs for the iterator.
|
|
161
|
+
|
|
162
|
+
Args:
|
|
163
|
+
outputs: The outputs from the agent executor.
|
|
164
|
+
run_manager: The run manager to use for callbacks.
|
|
165
|
+
"""
|
|
158
166
|
# have access to intermediate steps by design in iterator,
|
|
159
167
|
# so return only outputs may as well always be true.
|
|
160
168
|
|
|
161
169
|
prepared_outputs = AddableDict(
|
|
162
170
|
self.agent_executor.prep_outputs(
|
|
163
|
-
self.inputs,
|
|
164
|
-
|
|
171
|
+
self.inputs,
|
|
172
|
+
outputs,
|
|
173
|
+
return_only_outputs=True,
|
|
174
|
+
),
|
|
165
175
|
)
|
|
166
176
|
if self.include_run_info:
|
|
167
177
|
prepared_outputs[RUN_KEY] = RunInfo(run_id=run_manager.run_id)
|
|
168
178
|
return prepared_outputs
|
|
169
179
|
|
|
170
180
|
def __iter__(self: AgentExecutorIterator) -> Iterator[AddableDict]:
|
|
181
|
+
"""Create an async iterator for the AgentExecutor."""
|
|
171
182
|
logger.debug("Initialising AgentExecutorIterator")
|
|
172
183
|
self.reset()
|
|
173
184
|
callback_manager = CallbackManager.configure(
|
|
@@ -186,13 +197,14 @@ class AgentExecutorIterator:
|
|
|
186
197
|
name=self.run_name,
|
|
187
198
|
)
|
|
188
199
|
try:
|
|
189
|
-
while self.agent_executor._should_continue(
|
|
190
|
-
self.iterations,
|
|
200
|
+
while self.agent_executor._should_continue( # noqa: SLF001
|
|
201
|
+
self.iterations,
|
|
202
|
+
self.time_elapsed,
|
|
191
203
|
):
|
|
192
204
|
# take the next step: this plans next action, executes it,
|
|
193
205
|
# yielding action and observation as they are generated
|
|
194
206
|
next_step_seq: NextStepOutput = []
|
|
195
|
-
for chunk in self.agent_executor._iter_next_step(
|
|
207
|
+
for chunk in self.agent_executor._iter_next_step( # noqa: SLF001
|
|
196
208
|
self.name_to_tool_map,
|
|
197
209
|
self.color_mapping,
|
|
198
210
|
self.inputs,
|
|
@@ -209,7 +221,7 @@ class AgentExecutorIterator:
|
|
|
209
221
|
yield AddableDict(steps=[chunk], messages=chunk.messages)
|
|
210
222
|
|
|
211
223
|
# convert iterator output to format handled by _process_next_step_output
|
|
212
|
-
next_step = self.agent_executor._consume_next_step(next_step_seq)
|
|
224
|
+
next_step = self.agent_executor._consume_next_step(next_step_seq) # noqa: SLF001
|
|
213
225
|
# update iterations and time elapsed
|
|
214
226
|
self.update_iterations()
|
|
215
227
|
# decide if this is the final output
|
|
@@ -253,13 +265,14 @@ class AgentExecutorIterator:
|
|
|
253
265
|
)
|
|
254
266
|
try:
|
|
255
267
|
async with asyncio_timeout(self.agent_executor.max_execution_time):
|
|
256
|
-
while self.agent_executor._should_continue(
|
|
257
|
-
self.iterations,
|
|
268
|
+
while self.agent_executor._should_continue( # noqa: SLF001
|
|
269
|
+
self.iterations,
|
|
270
|
+
self.time_elapsed,
|
|
258
271
|
):
|
|
259
272
|
# take the next step: this plans next action, executes it,
|
|
260
273
|
# yielding action and observation as they are generated
|
|
261
274
|
next_step_seq: NextStepOutput = []
|
|
262
|
-
async for chunk in self.agent_executor._aiter_next_step(
|
|
275
|
+
async for chunk in self.agent_executor._aiter_next_step( # noqa: SLF001
|
|
263
276
|
self.name_to_tool_map,
|
|
264
277
|
self.color_mapping,
|
|
265
278
|
self.inputs,
|
|
@@ -272,20 +285,23 @@ class AgentExecutorIterator:
|
|
|
272
285
|
if self.yield_actions:
|
|
273
286
|
if isinstance(chunk, AgentAction):
|
|
274
287
|
yield AddableDict(
|
|
275
|
-
actions=[chunk],
|
|
288
|
+
actions=[chunk],
|
|
289
|
+
messages=chunk.messages,
|
|
276
290
|
)
|
|
277
291
|
elif isinstance(chunk, AgentStep):
|
|
278
292
|
yield AddableDict(
|
|
279
|
-
steps=[chunk],
|
|
293
|
+
steps=[chunk],
|
|
294
|
+
messages=chunk.messages,
|
|
280
295
|
)
|
|
281
296
|
|
|
282
297
|
# convert iterator output to format handled by _process_next_step
|
|
283
|
-
next_step = self.agent_executor._consume_next_step(next_step_seq)
|
|
298
|
+
next_step = self.agent_executor._consume_next_step(next_step_seq) # noqa: SLF001
|
|
284
299
|
# update iterations and time elapsed
|
|
285
300
|
self.update_iterations()
|
|
286
301
|
# decide if this is the final output
|
|
287
302
|
output = await self._aprocess_next_step_output(
|
|
288
|
-
next_step,
|
|
303
|
+
next_step,
|
|
304
|
+
run_manager,
|
|
289
305
|
)
|
|
290
306
|
is_final = "intermediate_step" not in output
|
|
291
307
|
# yield the final output always
|
|
@@ -317,7 +333,7 @@ class AgentExecutorIterator:
|
|
|
317
333
|
logger.debug("Processing output of Agent loop step")
|
|
318
334
|
if isinstance(next_step_output, AgentFinish):
|
|
319
335
|
logger.debug(
|
|
320
|
-
"Hit AgentFinish: _return -> on_chain_end -> run final output logic"
|
|
336
|
+
"Hit AgentFinish: _return -> on_chain_end -> run final output logic",
|
|
321
337
|
)
|
|
322
338
|
return self._return(next_step_output, run_manager=run_manager)
|
|
323
339
|
|
|
@@ -327,7 +343,7 @@ class AgentExecutorIterator:
|
|
|
327
343
|
# Check for tool return
|
|
328
344
|
if len(next_step_output) == 1:
|
|
329
345
|
next_step_action = next_step_output[0]
|
|
330
|
-
tool_return = self.agent_executor._get_tool_return(next_step_action)
|
|
346
|
+
tool_return = self.agent_executor._get_tool_return(next_step_action) # noqa: SLF001
|
|
331
347
|
if tool_return is not None:
|
|
332
348
|
return self._return(tool_return, run_manager=run_manager)
|
|
333
349
|
|
|
@@ -345,7 +361,7 @@ class AgentExecutorIterator:
|
|
|
345
361
|
logger.debug("Processing output of async Agent loop step")
|
|
346
362
|
if isinstance(next_step_output, AgentFinish):
|
|
347
363
|
logger.debug(
|
|
348
|
-
"Hit AgentFinish: _areturn -> on_chain_end -> run final output logic"
|
|
364
|
+
"Hit AgentFinish: _areturn -> on_chain_end -> run final output logic",
|
|
349
365
|
)
|
|
350
366
|
return await self._areturn(next_step_output, run_manager=run_manager)
|
|
351
367
|
|
|
@@ -355,7 +371,7 @@ class AgentExecutorIterator:
|
|
|
355
371
|
# Check for tool return
|
|
356
372
|
if len(next_step_output) == 1:
|
|
357
373
|
next_step_action = next_step_output[0]
|
|
358
|
-
tool_return = self.agent_executor._get_tool_return(next_step_action)
|
|
374
|
+
tool_return = self.agent_executor._get_tool_return(next_step_action) # noqa: SLF001
|
|
359
375
|
if tool_return is not None:
|
|
360
376
|
return await self._areturn(tool_return, run_manager=run_manager)
|
|
361
377
|
|
|
@@ -367,7 +383,7 @@ class AgentExecutorIterator:
|
|
|
367
383
|
"""
|
|
368
384
|
logger.warning("Stopping agent prematurely due to triggering stop condition")
|
|
369
385
|
# this manually constructs agent finish with output key
|
|
370
|
-
output = self.agent_executor._action_agent.return_stopped_response(
|
|
386
|
+
output = self.agent_executor._action_agent.return_stopped_response( # noqa: SLF001
|
|
371
387
|
self.agent_executor.early_stopping_method,
|
|
372
388
|
self.intermediate_steps,
|
|
373
389
|
**self.inputs,
|
|
@@ -380,7 +396,7 @@ class AgentExecutorIterator:
|
|
|
380
396
|
the stopped response.
|
|
381
397
|
"""
|
|
382
398
|
logger.warning("Stopping agent prematurely due to triggering stop condition")
|
|
383
|
-
output = self.agent_executor._action_agent.return_stopped_response(
|
|
399
|
+
output = self.agent_executor._action_agent.return_stopped_response( # noqa: SLF001
|
|
384
400
|
self.agent_executor.early_stopping_method,
|
|
385
401
|
self.intermediate_steps,
|
|
386
402
|
**self.inputs,
|
|
@@ -388,26 +404,34 @@ class AgentExecutorIterator:
|
|
|
388
404
|
return await self._areturn(output, run_manager=run_manager)
|
|
389
405
|
|
|
390
406
|
def _return(
|
|
391
|
-
self,
|
|
407
|
+
self,
|
|
408
|
+
output: AgentFinish,
|
|
409
|
+
run_manager: CallbackManagerForChainRun,
|
|
392
410
|
) -> AddableDict:
|
|
393
411
|
"""
|
|
394
412
|
Return the final output of the iterator.
|
|
395
413
|
"""
|
|
396
|
-
returned_output = self.agent_executor._return(
|
|
397
|
-
output,
|
|
414
|
+
returned_output = self.agent_executor._return( # noqa: SLF001
|
|
415
|
+
output,
|
|
416
|
+
self.intermediate_steps,
|
|
417
|
+
run_manager=run_manager,
|
|
398
418
|
)
|
|
399
419
|
returned_output["messages"] = output.messages
|
|
400
420
|
run_manager.on_chain_end(returned_output)
|
|
401
421
|
return self.make_final_outputs(returned_output, run_manager)
|
|
402
422
|
|
|
403
423
|
async def _areturn(
|
|
404
|
-
self,
|
|
424
|
+
self,
|
|
425
|
+
output: AgentFinish,
|
|
426
|
+
run_manager: AsyncCallbackManagerForChainRun,
|
|
405
427
|
) -> AddableDict:
|
|
406
428
|
"""
|
|
407
429
|
Return the final output of the async iterator.
|
|
408
430
|
"""
|
|
409
|
-
returned_output = await self.agent_executor._areturn(
|
|
410
|
-
output,
|
|
431
|
+
returned_output = await self.agent_executor._areturn( # noqa: SLF001
|
|
432
|
+
output,
|
|
433
|
+
self.intermediate_steps,
|
|
434
|
+
run_manager=run_manager,
|
|
411
435
|
)
|
|
412
436
|
returned_output["messages"] = output.messages
|
|
413
437
|
await run_manager.on_chain_end(returned_output)
|
|
@@ -121,12 +121,13 @@ def __getattr__(name: str) -> Any:
|
|
|
121
121
|
relative_path = as_import_path(Path(__file__).parent, suffix=name)
|
|
122
122
|
old_path = "langchain." + relative_path
|
|
123
123
|
new_path = "langchain_experimental." + relative_path
|
|
124
|
-
|
|
124
|
+
msg = (
|
|
125
125
|
f"{name} has been moved to langchain experimental. "
|
|
126
126
|
"See https://github.com/langchain-ai/langchain/discussions/11680"
|
|
127
127
|
"for more information.\n"
|
|
128
128
|
f"Please update your import statement from: `{old_path}` to `{new_path}`."
|
|
129
129
|
)
|
|
130
|
+
raise ImportError(msg)
|
|
130
131
|
return _import_attribute(name)
|
|
131
132
|
|
|
132
133
|
|
|
@@ -139,28 +140,28 @@ __all__ = [
|
|
|
139
140
|
"JiraToolkit",
|
|
140
141
|
"JsonToolkit",
|
|
141
142
|
"MultionToolkit",
|
|
142
|
-
"NasaToolkit",
|
|
143
143
|
"NLAToolkit",
|
|
144
|
+
"NasaToolkit",
|
|
144
145
|
"O365Toolkit",
|
|
145
146
|
"OpenAPIToolkit",
|
|
146
147
|
"PlayWrightBrowserToolkit",
|
|
147
148
|
"PowerBIToolkit",
|
|
148
|
-
"SlackToolkit",
|
|
149
|
-
"SteamToolkit",
|
|
150
149
|
"SQLDatabaseToolkit",
|
|
150
|
+
"SlackToolkit",
|
|
151
151
|
"SparkSQLToolkit",
|
|
152
|
+
"SteamToolkit",
|
|
152
153
|
"VectorStoreInfo",
|
|
153
154
|
"VectorStoreRouterToolkit",
|
|
154
155
|
"VectorStoreToolkit",
|
|
155
156
|
"ZapierToolkit",
|
|
157
|
+
"create_conversational_retrieval_agent",
|
|
156
158
|
"create_json_agent",
|
|
157
159
|
"create_openapi_agent",
|
|
158
160
|
"create_pbi_agent",
|
|
159
161
|
"create_pbi_chat_agent",
|
|
162
|
+
"create_retriever_tool",
|
|
160
163
|
"create_spark_sql_agent",
|
|
161
164
|
"create_sql_agent",
|
|
162
165
|
"create_vectorstore_agent",
|
|
163
166
|
"create_vectorstore_router_agent",
|
|
164
|
-
"create_conversational_retrieval_agent",
|
|
165
|
-
"create_retriever_tool",
|
|
166
167
|
]
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"AINetworkToolkit": "langchain_community.agent_toolkits.ainetwork.toolkit"
|
|
12
|
+
"AINetworkToolkit": "langchain_community.agent_toolkits.ainetwork.toolkit",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"AmadeusToolkit": "langchain_community.agent_toolkits.amadeus.toolkit"
|
|
12
|
+
"AmadeusToolkit": "langchain_community.agent_toolkits.amadeus.toolkit",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"ClickupToolkit": "langchain_community.agent_toolkits.clickup.toolkit"
|
|
12
|
+
"ClickupToolkit": "langchain_community.agent_toolkits.clickup.toolkit",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -20,17 +20,17 @@ def _get_default_system_message() -> SystemMessage:
|
|
|
20
20
|
"Do your best to answer the questions. "
|
|
21
21
|
"Feel free to use any tools available to look up "
|
|
22
22
|
"relevant information, only if necessary"
|
|
23
|
-
)
|
|
23
|
+
),
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def create_conversational_retrieval_agent(
|
|
28
28
|
llm: BaseLanguageModel,
|
|
29
29
|
tools: list[BaseTool],
|
|
30
|
-
remember_intermediate_steps: bool = True,
|
|
30
|
+
remember_intermediate_steps: bool = True, # noqa: FBT001,FBT002
|
|
31
31
|
memory_key: str = "chat_history",
|
|
32
32
|
system_message: Optional[SystemMessage] = None,
|
|
33
|
-
verbose: bool = False,
|
|
33
|
+
verbose: bool = False, # noqa: FBT001,FBT002
|
|
34
34
|
max_token_limit: int = 2000,
|
|
35
35
|
**kwargs: Any,
|
|
36
36
|
) -> AgentExecutor:
|
|
@@ -58,7 +58,9 @@ def create_conversational_retrieval_agent(
|
|
|
58
58
|
|
|
59
59
|
if remember_intermediate_steps:
|
|
60
60
|
memory: BaseMemory = AgentTokenBufferMemory(
|
|
61
|
-
memory_key=memory_key,
|
|
61
|
+
memory_key=memory_key,
|
|
62
|
+
llm=llm,
|
|
63
|
+
max_token_limit=max_token_limit,
|
|
62
64
|
)
|
|
63
65
|
else:
|
|
64
66
|
memory = ConversationTokenBufferMemory(
|
|
@@ -14,7 +14,7 @@ def __getattr__(name: str) -> Any:
|
|
|
14
14
|
|
|
15
15
|
old_path = "langchain." + here + "." + name
|
|
16
16
|
new_path = "langchain_experimental." + here + "." + name
|
|
17
|
-
|
|
17
|
+
msg = (
|
|
18
18
|
"This agent has been moved to langchain experiment. "
|
|
19
19
|
"This agent relies on python REPL tool under the hood, so to use it "
|
|
20
20
|
"safely please sandbox the python REPL. "
|
|
@@ -23,4 +23,6 @@ def __getattr__(name: str) -> Any:
|
|
|
23
23
|
"To keep using this code as is, install langchain experimental and "
|
|
24
24
|
f"update your import statement from:\n `{old_path}` to `{new_path}`."
|
|
25
25
|
)
|
|
26
|
-
|
|
26
|
+
raise ImportError(msg)
|
|
27
|
+
msg = f"{name} does not exist"
|
|
28
|
+
raise AttributeError(msg)
|
|
@@ -51,19 +51,19 @@ def __getattr__(name: str) -> Any:
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
__all__ = [
|
|
54
|
-
"
|
|
55
|
-
"GetIssue",
|
|
54
|
+
"BranchName",
|
|
56
55
|
"CommentOnIssue",
|
|
57
|
-
"GetPR",
|
|
58
|
-
"CreatePR",
|
|
59
56
|
"CreateFile",
|
|
60
|
-
"
|
|
61
|
-
"
|
|
57
|
+
"CreatePR",
|
|
58
|
+
"CreateReviewRequest",
|
|
62
59
|
"DeleteFile",
|
|
63
60
|
"DirectoryPath",
|
|
64
|
-
"
|
|
61
|
+
"GetIssue",
|
|
62
|
+
"GetPR",
|
|
63
|
+
"GitHubToolkit",
|
|
64
|
+
"NoInput",
|
|
65
|
+
"ReadFile",
|
|
65
66
|
"SearchCode",
|
|
66
|
-
"CreateReviewRequest",
|
|
67
67
|
"SearchIssuesAndPRs",
|
|
68
|
-
"
|
|
68
|
+
"UpdateFile",
|
|
69
69
|
]
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"GitLabToolkit": "langchain_community.agent_toolkits.gitlab.toolkit"
|
|
12
|
+
"GitLabToolkit": "langchain_community.agent_toolkits.gitlab.toolkit",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"create_json_agent": "langchain_community.agent_toolkits.json.base"
|
|
12
|
+
"create_json_agent": "langchain_community.agent_toolkits.json.base",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"MultionToolkit": "langchain_community.agent_toolkits.multion.toolkit"
|
|
12
|
+
"MultionToolkit": "langchain_community.agent_toolkits.multion.toolkit",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"O365Toolkit": "langchain_community.agent_toolkits.office365.toolkit"
|
|
12
|
+
"O365Toolkit": "langchain_community.agent_toolkits.office365.toolkit",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"create_openapi_agent": "langchain_community.agent_toolkits.openapi.base"
|
|
12
|
+
"create_openapi_agent": "langchain_community.agent_toolkits.openapi.base",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -43,10 +43,10 @@ def __getattr__(name: str) -> Any:
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
__all__ = [
|
|
46
|
+
"RequestsDeleteToolWithParsing",
|
|
46
47
|
"RequestsGetToolWithParsing",
|
|
47
|
-
"RequestsPostToolWithParsing",
|
|
48
48
|
"RequestsPatchToolWithParsing",
|
|
49
|
+
"RequestsPostToolWithParsing",
|
|
49
50
|
"RequestsPutToolWithParsing",
|
|
50
|
-
"RequestsDeleteToolWithParsing",
|
|
51
51
|
"create_openapi_agent",
|
|
52
52
|
]
|
|
@@ -83,21 +83,21 @@ def __getattr__(name: str) -> Any:
|
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
__all__ = [
|
|
86
|
-
"API_PLANNER_PROMPT",
|
|
87
|
-
"API_PLANNER_TOOL_NAME",
|
|
88
|
-
"API_PLANNER_TOOL_DESCRIPTION",
|
|
89
86
|
"API_CONTROLLER_PROMPT",
|
|
90
|
-
"API_CONTROLLER_TOOL_NAME",
|
|
91
87
|
"API_CONTROLLER_TOOL_DESCRIPTION",
|
|
88
|
+
"API_CONTROLLER_TOOL_NAME",
|
|
92
89
|
"API_ORCHESTRATOR_PROMPT",
|
|
93
|
-
"
|
|
90
|
+
"API_PLANNER_PROMPT",
|
|
91
|
+
"API_PLANNER_TOOL_DESCRIPTION",
|
|
92
|
+
"API_PLANNER_TOOL_NAME",
|
|
93
|
+
"PARSING_DELETE_PROMPT",
|
|
94
94
|
"PARSING_GET_PROMPT",
|
|
95
|
-
"REQUESTS_POST_TOOL_DESCRIPTION",
|
|
96
|
-
"PARSING_POST_PROMPT",
|
|
97
|
-
"REQUESTS_PATCH_TOOL_DESCRIPTION",
|
|
98
95
|
"PARSING_PATCH_PROMPT",
|
|
99
|
-
"
|
|
96
|
+
"PARSING_POST_PROMPT",
|
|
100
97
|
"PARSING_PUT_PROMPT",
|
|
101
98
|
"REQUESTS_DELETE_TOOL_DESCRIPTION",
|
|
102
|
-
"
|
|
99
|
+
"REQUESTS_GET_TOOL_DESCRIPTION",
|
|
100
|
+
"REQUESTS_PATCH_TOOL_DESCRIPTION",
|
|
101
|
+
"REQUESTS_POST_TOOL_DESCRIPTION",
|
|
102
|
+
"REQUESTS_PUT_TOOL_DESCRIPTION",
|
|
103
103
|
]
|
|
@@ -14,7 +14,7 @@ def __getattr__(name: str) -> Any:
|
|
|
14
14
|
|
|
15
15
|
old_path = "langchain." + here + "." + name
|
|
16
16
|
new_path = "langchain_experimental." + here + "." + name
|
|
17
|
-
|
|
17
|
+
msg = (
|
|
18
18
|
"This agent has been moved to langchain experiment. "
|
|
19
19
|
"This agent relies on python REPL tool under the hood, so to use it "
|
|
20
20
|
"safely please sandbox the python REPL. "
|
|
@@ -23,4 +23,6 @@ def __getattr__(name: str) -> Any:
|
|
|
23
23
|
"To keep using this code as is, install langchain experimental and "
|
|
24
24
|
f"update your import statement from:\n `{old_path}` to `{new_path}`."
|
|
25
25
|
)
|
|
26
|
-
|
|
26
|
+
raise ImportError(msg)
|
|
27
|
+
msg = f"{name} does not exist"
|
|
28
|
+
raise AttributeError(msg)
|
|
@@ -13,7 +13,7 @@ if TYPE_CHECKING:
|
|
|
13
13
|
# Used to consolidate logic for raising deprecation warnings and
|
|
14
14
|
# handling optional imports.
|
|
15
15
|
DEPRECATED_LOOKUP = {
|
|
16
|
-
"PlayWrightBrowserToolkit": "langchain_community.agent_toolkits.playwright.toolkit"
|
|
16
|
+
"PlayWrightBrowserToolkit": "langchain_community.agent_toolkits.playwright.toolkit",
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
|
|
|
11
11
|
# Used to consolidate logic for raising deprecation warnings and
|
|
12
12
|
# handling optional imports.
|
|
13
13
|
DEPRECATED_LOOKUP = {
|
|
14
|
-
"PlayWrightBrowserToolkit": "langchain_community.agent_toolkits.playwright.toolkit"
|
|
14
|
+
"PlayWrightBrowserToolkit": "langchain_community.agent_toolkits.playwright.toolkit",
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"create_pbi_agent": "langchain_community.agent_toolkits.powerbi.base"
|
|
12
|
+
"create_pbi_agent": "langchain_community.agent_toolkits.powerbi.base",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
|
|
|
11
11
|
# Used to consolidate logic for raising deprecation warnings and
|
|
12
12
|
# handling optional imports.
|
|
13
13
|
DEPRECATED_LOOKUP = {
|
|
14
|
-
"create_pbi_chat_agent": "langchain_community.agent_toolkits.powerbi.chat_base"
|
|
14
|
+
"create_pbi_chat_agent": "langchain_community.agent_toolkits.powerbi.chat_base",
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"PowerBIToolkit": "langchain_community.agent_toolkits.powerbi.toolkit"
|
|
12
|
+
"PowerBIToolkit": "langchain_community.agent_toolkits.powerbi.toolkit",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -14,7 +14,7 @@ def __getattr__(name: str) -> Any:
|
|
|
14
14
|
|
|
15
15
|
old_path = "langchain." + here + "." + name
|
|
16
16
|
new_path = "langchain_experimental." + here + "." + name
|
|
17
|
-
|
|
17
|
+
msg = (
|
|
18
18
|
"This agent has been moved to langchain experiment. "
|
|
19
19
|
"This agent relies on python REPL tool under the hood, so to use it "
|
|
20
20
|
"safely please sandbox the python REPL. "
|
|
@@ -23,4 +23,6 @@ def __getattr__(name: str) -> Any:
|
|
|
23
23
|
"To keep using this code as is, install langchain experimental and "
|
|
24
24
|
f"update your import statement from:\n `{old_path}` to `{new_path}`."
|
|
25
25
|
)
|
|
26
|
-
|
|
26
|
+
raise ImportError(msg)
|
|
27
|
+
msg = f"{name} does not exist"
|
|
28
|
+
raise AttributeError(msg)
|
|
@@ -14,7 +14,7 @@ def __getattr__(name: str) -> Any:
|
|
|
14
14
|
|
|
15
15
|
old_path = "langchain." + here + "." + name
|
|
16
16
|
new_path = "langchain_experimental." + here + "." + name
|
|
17
|
-
|
|
17
|
+
msg = (
|
|
18
18
|
"This agent has been moved to langchain experiment. "
|
|
19
19
|
"This agent relies on python REPL tool under the hood, so to use it "
|
|
20
20
|
"safely please sandbox the python REPL. "
|
|
@@ -23,4 +23,6 @@ def __getattr__(name: str) -> Any:
|
|
|
23
23
|
"To keep using this code as is, install langchain experimental and "
|
|
24
24
|
f"update your import statement from:\n `{old_path}` to `{new_path}`."
|
|
25
25
|
)
|
|
26
|
-
|
|
26
|
+
raise ImportError(msg)
|
|
27
|
+
msg = f"{name} does not exist"
|
|
28
|
+
raise AttributeError(msg)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"create_spark_sql_agent": "langchain_community.agent_toolkits.spark_sql.base"
|
|
12
|
+
"create_spark_sql_agent": "langchain_community.agent_toolkits.spark_sql.base",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
|
|
|
9
9
|
# Used to consolidate logic for raising deprecation warnings and
|
|
10
10
|
# handling optional imports.
|
|
11
11
|
DEPRECATED_LOOKUP = {
|
|
12
|
-
"SparkSQLToolkit": "langchain_community.agent_toolkits.spark_sql.toolkit"
|
|
12
|
+
"SparkSQLToolkit": "langchain_community.agent_toolkits.spark_sql.toolkit",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP)
|