langchain 0.3.26__py3-none-any.whl → 0.3.27__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 +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 +160 -133
- langchain/agents/agent_iterator.py +31 -14
- 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 +2 -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 +6 -12
- langchain/agents/chat/output_parser.py +9 -6
- langchain/agents/chat/prompt.py +3 -4
- langchain/agents/conversational/base.py +9 -5
- langchain/agents/conversational/output_parser.py +4 -2
- langchain/agents/conversational/prompt.py +2 -3
- langchain/agents/conversational_chat/base.py +7 -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 +16 -8
- langchain/agents/json_chat/base.py +18 -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 +9 -4
- langchain/agents/mrkl/output_parser.py +17 -13
- langchain/agents/mrkl/prompt.py +1 -2
- langchain/agents/openai_assistant/base.py +80 -70
- langchain/agents/openai_functions_agent/base.py +46 -37
- langchain/agents/openai_functions_multi_agent/base.py +39 -26
- langchain/agents/openai_tools/base.py +8 -8
- langchain/agents/output_parsers/__init__.py +3 -3
- langchain/agents/output_parsers/json.py +6 -6
- langchain/agents/output_parsers/openai_functions.py +15 -7
- langchain/agents/output_parsers/openai_tools.py +9 -4
- langchain/agents/output_parsers/react_json_single_input.py +10 -5
- langchain/agents/output_parsers/react_single_input.py +15 -11
- langchain/agents/output_parsers/self_ask.py +3 -2
- langchain/agents/output_parsers/tools.py +18 -13
- langchain/agents/output_parsers/xml.py +99 -28
- langchain/agents/react/agent.py +4 -4
- langchain/agents/react/base.py +22 -17
- langchain/agents/react/output_parser.py +5 -6
- langchain/agents/react/textworld_prompt.py +0 -1
- langchain/agents/react/wiki_prompt.py +14 -15
- langchain/agents/schema.py +3 -2
- langchain/agents/self_ask_with_search/base.py +19 -15
- langchain/agents/self_ask_with_search/prompt.py +0 -1
- langchain/agents/structured_chat/base.py +14 -11
- langchain/agents/structured_chat/output_parser.py +16 -18
- langchain/agents/structured_chat/prompt.py +3 -4
- langchain/agents/tool_calling_agent/base.py +7 -6
- langchain/agents/tools.py +2 -2
- langchain/agents/utils.py +2 -3
- langchain/agents/xml/base.py +5 -5
- 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 +4 -1
- langchain/callbacks/streaming_aiter_final_only.py +5 -3
- langchain/callbacks/streaming_stdout_final_only.py +5 -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 +1 -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 +36 -22
- 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 +88 -54
- langchain/chains/chat_vector_db/prompts.py +2 -3
- langchain/chains/combine_documents/__init__.py +1 -1
- langchain/chains/combine_documents/base.py +23 -10
- langchain/chains/combine_documents/map_reduce.py +38 -30
- langchain/chains/combine_documents/map_rerank.py +33 -20
- langchain/chains/combine_documents/reduce.py +47 -26
- langchain/chains/combine_documents/refine.py +26 -17
- langchain/chains/combine_documents/stuff.py +19 -12
- langchain/chains/constitutional_ai/base.py +4 -4
- langchain/chains/constitutional_ai/principles.py +22 -25
- langchain/chains/constitutional_ai/prompts.py +25 -28
- langchain/chains/conversation/base.py +5 -3
- langchain/chains/conversation/memory.py +5 -5
- langchain/chains/conversation/prompt.py +5 -5
- langchain/chains/conversational_retrieval/base.py +41 -20
- langchain/chains/conversational_retrieval/prompts.py +2 -3
- langchain/chains/elasticsearch_database/base.py +8 -9
- 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 +26 -12
- 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 +77 -61
- langchain/chains/llm_bash/__init__.py +2 -1
- langchain/chains/llm_checker/base.py +7 -5
- langchain/chains/llm_checker/prompt.py +3 -4
- langchain/chains/llm_math/base.py +16 -9
- langchain/chains/llm_math/prompt.py +1 -2
- langchain/chains/llm_summarization_checker/base.py +9 -6
- langchain/chains/llm_symbolic_math/__init__.py +2 -1
- langchain/chains/loading.py +151 -95
- langchain/chains/mapreduce.py +4 -3
- langchain/chains/moderation.py +8 -9
- langchain/chains/natbot/base.py +8 -8
- langchain/chains/natbot/crawler.py +73 -76
- langchain/chains/natbot/prompt.py +2 -3
- langchain/chains/openai_functions/__init__.py +7 -7
- langchain/chains/openai_functions/base.py +13 -10
- langchain/chains/openai_functions/citation_fuzzy_match.py +12 -11
- langchain/chains/openai_functions/extraction.py +19 -19
- langchain/chains/openai_functions/openapi.py +35 -35
- langchain/chains/openai_functions/qa_with_structure.py +19 -12
- langchain/chains/openai_functions/tagging.py +2 -4
- langchain/chains/openai_tools/extraction.py +7 -8
- langchain/chains/qa_generation/base.py +4 -3
- langchain/chains/qa_generation/prompt.py +5 -5
- langchain/chains/qa_with_sources/base.py +14 -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 +14 -5
- langchain/chains/qa_with_sources/stuff_prompt.py +6 -7
- langchain/chains/qa_with_sources/vector_db.py +17 -6
- langchain/chains/query_constructor/base.py +34 -33
- langchain/chains/query_constructor/ir.py +4 -4
- langchain/chains/query_constructor/parser.py +37 -32
- 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 +34 -27
- langchain/chains/retrieval_qa/prompt.py +1 -2
- langchain/chains/router/__init__.py +3 -3
- langchain/chains/router/base.py +24 -20
- langchain/chains/router/embedding_router.py +12 -8
- langchain/chains/router/llm_router.py +17 -16
- langchain/chains/router/multi_prompt.py +2 -2
- langchain/chains/router/multi_retrieval_qa.py +10 -5
- langchain/chains/sequential.py +30 -18
- langchain/chains/sql_database/prompt.py +14 -16
- langchain/chains/sql_database/query.py +6 -5
- langchain/chains/structured_output/__init__.py +1 -1
- langchain/chains/structured_output/base.py +75 -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 +5 -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 +160 -123
- 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/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 +33 -24
- langchain/embeddings/cache.py +36 -31
- 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 +23 -23
- langchain/evaluation/agents/trajectory_eval_prompt.py +6 -9
- langchain/evaluation/comparison/__init__.py +1 -1
- langchain/evaluation/comparison/eval_chain.py +20 -13
- langchain/evaluation/comparison/prompt.py +1 -2
- langchain/evaluation/criteria/__init__.py +1 -1
- langchain/evaluation/criteria/eval_chain.py +20 -11
- langchain/evaluation/criteria/prompt.py +2 -3
- langchain/evaluation/embedding_distance/base.py +23 -20
- langchain/evaluation/loading.py +15 -11
- langchain/evaluation/parsing/base.py +4 -1
- langchain/evaluation/parsing/json_distance.py +5 -2
- langchain/evaluation/parsing/json_schema.py +12 -8
- langchain/evaluation/qa/__init__.py +1 -1
- langchain/evaluation/qa/eval_chain.py +12 -5
- langchain/evaluation/qa/eval_prompt.py +7 -8
- langchain/evaluation/qa/generate_chain.py +2 -1
- langchain/evaluation/qa/generate_prompt.py +2 -4
- langchain/evaluation/schema.py +38 -30
- langchain/evaluation/scoring/__init__.py +1 -1
- langchain/evaluation/scoring/eval_chain.py +22 -15
- langchain/evaluation/scoring/prompt.py +0 -1
- langchain/evaluation/string_distance/base.py +14 -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 +9 -7
- 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 +13 -12
- langchain/memory/entity.py +84 -61
- langchain/memory/prompt.py +10 -11
- langchain/memory/readonly.py +0 -2
- langchain/memory/simple.py +1 -3
- langchain/memory/summary.py +13 -11
- langchain/memory/summary_buffer.py +17 -8
- 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 +10 -5
- langchain/output_parsers/datetime.py +32 -31
- langchain/output_parsers/enum.py +5 -3
- langchain/output_parsers/fix.py +52 -52
- 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 +43 -47
- langchain/output_parsers/prompts.py +1 -2
- langchain/output_parsers/rail_parser.py +1 -1
- langchain/output_parsers/regex.py +7 -8
- langchain/output_parsers/regex_dict.py +7 -10
- langchain/output_parsers/retry.py +77 -78
- langchain/output_parsers/structured.py +11 -6
- langchain/output_parsers/yaml.py +15 -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/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 +2 -2
- 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 +15 -15
- langchain/retrievers/document_compressors/embeddings_filter.py +21 -17
- langchain/retrievers/document_compressors/flashrank_rerank.py +1 -1
- langchain/retrievers/document_compressors/listwise_rerank.py +7 -5
- langchain/retrievers/ensemble.py +28 -25
- 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 +32 -26
- langchain/retrievers/multi_vector.py +20 -8
- langchain/retrievers/parent_document_retriever.py +18 -9
- langchain/retrievers/re_phraser.py +6 -5
- langchain/retrievers/self_query/base.py +138 -127
- langchain/retrievers/time_weighted_retriever.py +18 -7
- langchain/retrievers/zilliz.py +1 -1
- langchain/runnables/openai_functions.py +6 -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 +1 -1
- langchain/smith/evaluation/__init__.py +2 -2
- langchain/smith/evaluation/config.py +10 -7
- langchain/smith/evaluation/name_generation.py +3 -3
- langchain/smith/evaluation/progress.py +11 -2
- langchain/smith/evaluation/runner_utils.py +179 -127
- langchain/smith/evaluation/string_run_evaluator.py +75 -68
- langchain/storage/__init__.py +2 -2
- langchain/storage/_lc_store.py +4 -2
- langchain/storage/encoder_backed.py +6 -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 +2 -1
- 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.3.27.dist-info}/METADATA +4 -4
- {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/RECORD +580 -580
- {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/WHEEL +1 -1
- {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/entry_points.txt +0 -0
- {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/licenses/LICENSE +0 -0
langchain/callbacks/__init__.py
CHANGED
|
@@ -107,33 +107,33 @@ __all__ = [
|
|
|
107
107
|
"AimCallbackHandler",
|
|
108
108
|
"ArgillaCallbackHandler",
|
|
109
109
|
"ArizeCallbackHandler",
|
|
110
|
-
"PromptLayerCallbackHandler",
|
|
111
110
|
"ArthurCallbackHandler",
|
|
111
|
+
"AsyncIteratorCallbackHandler",
|
|
112
112
|
"ClearMLCallbackHandler",
|
|
113
113
|
"CometCallbackHandler",
|
|
114
114
|
"ContextCallbackHandler",
|
|
115
115
|
"FileCallbackHandler",
|
|
116
|
+
"FinalStreamingStdOutCallbackHandler",
|
|
117
|
+
"FlyteCallbackHandler",
|
|
116
118
|
"HumanApprovalCallbackHandler",
|
|
117
119
|
"InfinoCallbackHandler",
|
|
118
|
-
"
|
|
120
|
+
"LLMThoughtLabeler",
|
|
119
121
|
"LLMonitorCallbackHandler",
|
|
122
|
+
"LabelStudioCallbackHandler",
|
|
123
|
+
"LangChainTracer",
|
|
124
|
+
"MlflowCallbackHandler",
|
|
120
125
|
"OpenAICallbackHandler",
|
|
126
|
+
"PromptLayerCallbackHandler",
|
|
127
|
+
"SageMakerCallbackHandler",
|
|
121
128
|
"StdOutCallbackHandler",
|
|
122
|
-
"AsyncIteratorCallbackHandler",
|
|
123
129
|
"StreamingStdOutCallbackHandler",
|
|
124
|
-
"FinalStreamingStdOutCallbackHandler",
|
|
125
|
-
"LLMThoughtLabeler",
|
|
126
|
-
"LangChainTracer",
|
|
127
130
|
"StreamlitCallbackHandler",
|
|
131
|
+
"TrubricsCallbackHandler",
|
|
128
132
|
"WandbCallbackHandler",
|
|
129
133
|
"WhyLabsCallbackHandler",
|
|
134
|
+
"collect_runs",
|
|
130
135
|
"get_openai_callback",
|
|
131
136
|
"tracing_enabled",
|
|
132
137
|
"tracing_v2_enabled",
|
|
133
|
-
"collect_runs",
|
|
134
138
|
"wandb_tracing_enabled",
|
|
135
|
-
"FlyteCallbackHandler",
|
|
136
|
-
"SageMakerCallbackHandler",
|
|
137
|
-
"LabelStudioCallbackHandler",
|
|
138
|
-
"TrubricsCallbackHandler",
|
|
139
139
|
]
|
|
@@ -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
|
-
"ArgillaCallbackHandler": "langchain_community.callbacks.argilla_callback"
|
|
12
|
+
"ArgillaCallbackHandler": "langchain_community.callbacks.argilla_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"ArizeCallbackHandler": "langchain_community.callbacks.arize_callback"
|
|
12
|
+
"ArizeCallbackHandler": "langchain_community.callbacks.arize_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"ArthurCallbackHandler": "langchain_community.callbacks.arthur_callback"
|
|
12
|
+
"ArthurCallbackHandler": "langchain_community.callbacks.arthur_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
|
langchain/callbacks/base.py
CHANGED
|
@@ -16,14 +16,14 @@ from langchain_core.callbacks import (
|
|
|
16
16
|
)
|
|
17
17
|
|
|
18
18
|
__all__ = [
|
|
19
|
-
"RetrieverManagerMixin",
|
|
20
|
-
"LLMManagerMixin",
|
|
21
|
-
"ChainManagerMixin",
|
|
22
|
-
"ToolManagerMixin",
|
|
23
|
-
"CallbackManagerMixin",
|
|
24
|
-
"RunManagerMixin",
|
|
25
|
-
"BaseCallbackHandler",
|
|
26
19
|
"AsyncCallbackHandler",
|
|
20
|
+
"BaseCallbackHandler",
|
|
27
21
|
"BaseCallbackManager",
|
|
22
|
+
"CallbackManagerMixin",
|
|
28
23
|
"Callbacks",
|
|
24
|
+
"ChainManagerMixin",
|
|
25
|
+
"LLMManagerMixin",
|
|
26
|
+
"RetrieverManagerMixin",
|
|
27
|
+
"RunManagerMixin",
|
|
28
|
+
"ToolManagerMixin",
|
|
29
29
|
]
|
|
@@ -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
|
-
"ClearMLCallbackHandler": "langchain_community.callbacks.clearml_callback"
|
|
12
|
+
"ClearMLCallbackHandler": "langchain_community.callbacks.clearml_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"CometCallbackHandler": "langchain_community.callbacks.comet_ml_callback"
|
|
12
|
+
"CometCallbackHandler": "langchain_community.callbacks.comet_ml_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"DeepEvalCallbackHandler": "langchain_community.callbacks.confident_callback"
|
|
12
|
+
"DeepEvalCallbackHandler": "langchain_community.callbacks.confident_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"ContextCallbackHandler": "langchain_community.callbacks.context_callback"
|
|
12
|
+
"ContextCallbackHandler": "langchain_community.callbacks.context_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"FlyteCallbackHandler": "langchain_community.callbacks.flyte_callback"
|
|
12
|
+
"FlyteCallbackHandler": "langchain_community.callbacks.flyte_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
|
langchain/callbacks/human.py
CHANGED
|
@@ -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
|
-
"InfinoCallbackHandler": "langchain_community.callbacks.infino_callback"
|
|
12
|
+
"InfinoCallbackHandler": "langchain_community.callbacks.infino_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"LLMonitorCallbackHandler": "langchain_community.callbacks.llmonitor_callback"
|
|
14
|
+
"LLMonitorCallbackHandler": "langchain_community.callbacks.llmonitor_callback",
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
_import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
|
langchain/callbacks/manager.py
CHANGED
|
@@ -58,7 +58,7 @@ def __getattr__(name: str) -> Any:
|
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
__all__ = [
|
|
61
|
-
"
|
|
61
|
+
"AsyncCallbackManager",
|
|
62
62
|
"AsyncCallbackManagerForChainGroup",
|
|
63
63
|
"AsyncCallbackManagerForChainRun",
|
|
64
64
|
"AsyncCallbackManagerForLLMRun",
|
|
@@ -66,7 +66,6 @@ __all__ = [
|
|
|
66
66
|
"AsyncCallbackManagerForToolRun",
|
|
67
67
|
"AsyncParentRunManager",
|
|
68
68
|
"AsyncRunManager",
|
|
69
|
-
"atrace_as_chain_group",
|
|
70
69
|
"BaseRunManager",
|
|
71
70
|
"CallbackManager",
|
|
72
71
|
"CallbackManagerForChainGroup",
|
|
@@ -75,13 +74,14 @@ __all__ = [
|
|
|
75
74
|
"CallbackManagerForRetrieverRun",
|
|
76
75
|
"CallbackManagerForToolRun",
|
|
77
76
|
"Callbacks",
|
|
78
|
-
"
|
|
77
|
+
"ParentRunManager",
|
|
78
|
+
"RunManager",
|
|
79
|
+
"ahandle_event",
|
|
80
|
+
"atrace_as_chain_group",
|
|
79
81
|
"collect_runs",
|
|
80
82
|
"env_var_is_set",
|
|
81
83
|
"get_openai_callback",
|
|
82
84
|
"handle_event",
|
|
83
|
-
"ParentRunManager",
|
|
84
|
-
"RunManager",
|
|
85
85
|
"trace_as_chain_group",
|
|
86
86
|
"tracing_enabled",
|
|
87
87
|
"tracing_v2_enabled",
|
|
@@ -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
|
-
"OpenAICallbackHandler": "langchain_community.callbacks.openai_info"
|
|
12
|
+
"OpenAICallbackHandler": "langchain_community.callbacks.openai_info",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"PromptLayerCallbackHandler": "langchain_community.callbacks.promptlayer_callback"
|
|
14
|
+
"PromptLayerCallbackHandler": "langchain_community.callbacks.promptlayer_callback",
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
_import_attribute = create_importer(__file__, 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
|
-
"SageMakerCallbackHandler": "langchain_community.callbacks.sagemaker_callback"
|
|
14
|
+
"SageMakerCallbackHandler": "langchain_community.callbacks.sagemaker_callback",
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
_import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
|
|
@@ -26,7 +26,10 @@ class AsyncIteratorCallbackHandler(AsyncCallbackHandler):
|
|
|
26
26
|
self.done = asyncio.Event()
|
|
27
27
|
|
|
28
28
|
async def on_llm_start(
|
|
29
|
-
self,
|
|
29
|
+
self,
|
|
30
|
+
serialized: dict[str, Any],
|
|
31
|
+
prompts: list[str],
|
|
32
|
+
**kwargs: Any,
|
|
30
33
|
) -> None:
|
|
31
34
|
# If two calls are made in a row, this resets the state
|
|
32
35
|
self.done.clear()
|
|
@@ -24,8 +24,7 @@ class AsyncFinalIteratorCallbackHandler(AsyncIteratorCallbackHandler):
|
|
|
24
24
|
def check_if_answer_reached(self) -> bool:
|
|
25
25
|
if self.strip_tokens:
|
|
26
26
|
return self.last_tokens_stripped == self.answer_prefix_tokens_stripped
|
|
27
|
-
|
|
28
|
-
return self.last_tokens == self.answer_prefix_tokens
|
|
27
|
+
return self.last_tokens == self.answer_prefix_tokens
|
|
29
28
|
|
|
30
29
|
def __init__(
|
|
31
30
|
self,
|
|
@@ -62,7 +61,10 @@ class AsyncFinalIteratorCallbackHandler(AsyncIteratorCallbackHandler):
|
|
|
62
61
|
self.answer_reached = False
|
|
63
62
|
|
|
64
63
|
async def on_llm_start(
|
|
65
|
-
self,
|
|
64
|
+
self,
|
|
65
|
+
serialized: dict[str, Any],
|
|
66
|
+
prompts: list[str],
|
|
67
|
+
**kwargs: Any,
|
|
66
68
|
) -> None:
|
|
67
69
|
# If two calls are made in a row, this resets the state
|
|
68
70
|
self.done.clear()
|
|
@@ -25,8 +25,7 @@ class FinalStreamingStdOutCallbackHandler(StreamingStdOutCallbackHandler):
|
|
|
25
25
|
def check_if_answer_reached(self) -> bool:
|
|
26
26
|
if self.strip_tokens:
|
|
27
27
|
return self.last_tokens_stripped == self.answer_prefix_tokens_stripped
|
|
28
|
-
|
|
29
|
-
return self.last_tokens == self.answer_prefix_tokens
|
|
28
|
+
return self.last_tokens == self.answer_prefix_tokens
|
|
30
29
|
|
|
31
30
|
def __init__(
|
|
32
31
|
self,
|
|
@@ -63,7 +62,10 @@ class FinalStreamingStdOutCallbackHandler(StreamingStdOutCallbackHandler):
|
|
|
63
62
|
self.answer_reached = False
|
|
64
63
|
|
|
65
64
|
def on_llm_start(
|
|
66
|
-
self,
|
|
65
|
+
self,
|
|
66
|
+
serialized: dict[str, Any],
|
|
67
|
+
prompts: list[str],
|
|
68
|
+
**kwargs: Any,
|
|
67
69
|
) -> None:
|
|
68
70
|
"""Run when LLM starts running."""
|
|
69
71
|
self.answer_reached = False
|
|
@@ -70,11 +70,12 @@ def StreamlitCallbackHandler(
|
|
|
70
70
|
from langchain_community.callbacks.streamlit.streamlit_callback_handler import ( # noqa: E501
|
|
71
71
|
StreamlitCallbackHandler as _InternalStreamlitCallbackHandler,
|
|
72
72
|
)
|
|
73
|
-
except ImportError:
|
|
74
|
-
|
|
73
|
+
except ImportError as e:
|
|
74
|
+
msg = (
|
|
75
75
|
"To use the StreamlitCallbackHandler, please install "
|
|
76
76
|
"langchain-community with `pip install langchain-community`."
|
|
77
77
|
)
|
|
78
|
+
raise ImportError(msg) from e
|
|
78
79
|
|
|
79
80
|
return _InternalStreamlitCallbackHandler(
|
|
80
81
|
parent_container,
|
|
@@ -42,5 +42,5 @@ class LoggingCallbackHandler(FunctionCallbackHandler):
|
|
|
42
42
|
crumbs_str = ""
|
|
43
43
|
self.function_callback(
|
|
44
44
|
f"{get_colored_text('[text]', color='blue')}"
|
|
45
|
-
f" {get_bolded_text(f'{crumbs_str}New text:')}\n{text}"
|
|
45
|
+
f" {get_bolded_text(f'{crumbs_str}New text:')}\n{text}",
|
|
46
46
|
)
|
|
@@ -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
|
-
"TrubricsCallbackHandler": "langchain_community.callbacks.trubrics_callback"
|
|
12
|
+
"TrubricsCallbackHandler": "langchain_community.callbacks.trubrics_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
|
langchain/callbacks/utils.py
CHANGED
|
@@ -37,12 +37,12 @@ def __getattr__(name: str) -> Any:
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
__all__ = [
|
|
40
|
-
"
|
|
41
|
-
"import_pandas",
|
|
42
|
-
"import_textstat",
|
|
40
|
+
"BaseMetadataCallbackHandler",
|
|
43
41
|
"_flatten_dict",
|
|
44
42
|
"flatten_dict",
|
|
45
43
|
"hash_string",
|
|
44
|
+
"import_pandas",
|
|
45
|
+
"import_spacy",
|
|
46
|
+
"import_textstat",
|
|
46
47
|
"load_json",
|
|
47
|
-
"BaseMetadataCallbackHandler",
|
|
48
48
|
]
|
|
@@ -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
|
-
"WandbCallbackHandler": "langchain_community.callbacks.wandb_callback"
|
|
12
|
+
"WandbCallbackHandler": "langchain_community.callbacks.wandb_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, 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
|
-
"WhyLabsCallbackHandler": "langchain_community.callbacks.whylabs_callback"
|
|
12
|
+
"WhyLabsCallbackHandler": "langchain_community.callbacks.whylabs_callback",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
_import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
|
langchain/chains/api/base.py
CHANGED
|
@@ -47,8 +47,8 @@ def _check_in_allowed_domain(url: str, limit_to_domains: Sequence[str]) -> bool:
|
|
|
47
47
|
scheme, domain = _extract_scheme_and_domain(url)
|
|
48
48
|
|
|
49
49
|
for allowed_domain in limit_to_domains:
|
|
50
|
-
allowed_scheme,
|
|
51
|
-
if scheme == allowed_scheme and domain ==
|
|
50
|
+
allowed_scheme, allowed_domain_ = _extract_scheme_and_domain(allowed_domain)
|
|
51
|
+
if scheme == allowed_scheme and domain == allowed_domain_:
|
|
52
52
|
return True
|
|
53
53
|
return False
|
|
54
54
|
|
|
@@ -61,7 +61,7 @@ try:
|
|
|
61
61
|
message=(
|
|
62
62
|
"This class is deprecated and will be removed in langchain 1.0. "
|
|
63
63
|
"See API reference for replacement: "
|
|
64
|
-
"https://api.python.langchain.com/en/latest/chains/langchain.chains.api.base.APIChain.html"
|
|
64
|
+
"https://api.python.langchain.com/en/latest/chains/langchain.chains.api.base.APIChain.html"
|
|
65
65
|
),
|
|
66
66
|
removal="1.0",
|
|
67
67
|
)
|
|
@@ -201,10 +201,10 @@ try:
|
|
|
201
201
|
output_key: str = "output" #: :meta private:
|
|
202
202
|
limit_to_domains: Optional[Sequence[str]] = Field(default_factory=list) # type: ignore[arg-type]
|
|
203
203
|
"""Use to limit the domains that can be accessed by the API chain.
|
|
204
|
-
|
|
204
|
+
|
|
205
205
|
* For example, to limit to just the domain `https://www.example.com`, set
|
|
206
206
|
`limit_to_domains=["https://www.example.com"]`.
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
* The default value is an empty tuple, which means that no domains are
|
|
209
209
|
allowed by default. By design this will raise an error on instantiation.
|
|
210
210
|
* Use a None if you want to allow all domains by default -- this is not
|
|
@@ -235,9 +235,8 @@ try:
|
|
|
235
235
|
input_vars = self.api_request_chain.prompt.input_variables
|
|
236
236
|
expected_vars = {"question", "api_docs"}
|
|
237
237
|
if set(input_vars) != expected_vars:
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
)
|
|
238
|
+
msg = f"Input variables should be {expected_vars}, got {input_vars}"
|
|
239
|
+
raise ValueError(msg)
|
|
241
240
|
return self
|
|
242
241
|
|
|
243
242
|
@model_validator(mode="before")
|
|
@@ -247,18 +246,20 @@ try:
|
|
|
247
246
|
# This check must be a pre=True check, so that a default of None
|
|
248
247
|
# won't be set to limit_to_domains if it's not provided.
|
|
249
248
|
if "limit_to_domains" not in values:
|
|
250
|
-
|
|
249
|
+
msg = (
|
|
251
250
|
"You must specify a list of domains to limit access using "
|
|
252
251
|
"`limit_to_domains`"
|
|
253
252
|
)
|
|
253
|
+
raise ValueError(msg)
|
|
254
254
|
if (
|
|
255
255
|
not values["limit_to_domains"]
|
|
256
256
|
and values["limit_to_domains"] is not None
|
|
257
257
|
):
|
|
258
|
-
|
|
258
|
+
msg = (
|
|
259
259
|
"Please provide a list of domains to limit access using "
|
|
260
260
|
"`limit_to_domains`."
|
|
261
261
|
)
|
|
262
|
+
raise ValueError(msg)
|
|
262
263
|
return values
|
|
263
264
|
|
|
264
265
|
@model_validator(mode="after")
|
|
@@ -267,9 +268,8 @@ try:
|
|
|
267
268
|
input_vars = self.api_answer_chain.prompt.input_variables
|
|
268
269
|
expected_vars = {"question", "api_docs", "api_url", "api_response"}
|
|
269
270
|
if set(input_vars) != expected_vars:
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
)
|
|
271
|
+
msg = f"Input variables should be {expected_vars}, got {input_vars}"
|
|
272
|
+
raise ValueError(msg)
|
|
273
273
|
return self
|
|
274
274
|
|
|
275
275
|
def _call(
|
|
@@ -287,14 +287,19 @@ try:
|
|
|
287
287
|
_run_manager.on_text(api_url, color="green", end="\n", verbose=self.verbose)
|
|
288
288
|
api_url = api_url.strip()
|
|
289
289
|
if self.limit_to_domains and not _check_in_allowed_domain(
|
|
290
|
-
api_url,
|
|
290
|
+
api_url,
|
|
291
|
+
self.limit_to_domains,
|
|
291
292
|
):
|
|
292
|
-
|
|
293
|
+
msg = (
|
|
293
294
|
f"{api_url} is not in the allowed domains: {self.limit_to_domains}"
|
|
294
295
|
)
|
|
296
|
+
raise ValueError(msg)
|
|
295
297
|
api_response = self.requests_wrapper.get(api_url)
|
|
296
298
|
_run_manager.on_text(
|
|
297
|
-
str(api_response),
|
|
299
|
+
str(api_response),
|
|
300
|
+
color="yellow",
|
|
301
|
+
end="\n",
|
|
302
|
+
verbose=self.verbose,
|
|
298
303
|
)
|
|
299
304
|
answer = self.api_answer_chain.predict(
|
|
300
305
|
question=question,
|
|
@@ -320,18 +325,26 @@ try:
|
|
|
320
325
|
callbacks=_run_manager.get_child(),
|
|
321
326
|
)
|
|
322
327
|
await _run_manager.on_text(
|
|
323
|
-
api_url,
|
|
328
|
+
api_url,
|
|
329
|
+
color="green",
|
|
330
|
+
end="\n",
|
|
331
|
+
verbose=self.verbose,
|
|
324
332
|
)
|
|
325
333
|
api_url = api_url.strip()
|
|
326
334
|
if self.limit_to_domains and not _check_in_allowed_domain(
|
|
327
|
-
api_url,
|
|
335
|
+
api_url,
|
|
336
|
+
self.limit_to_domains,
|
|
328
337
|
):
|
|
329
|
-
|
|
338
|
+
msg = (
|
|
330
339
|
f"{api_url} is not in the allowed domains: {self.limit_to_domains}"
|
|
331
340
|
)
|
|
341
|
+
raise ValueError(msg)
|
|
332
342
|
api_response = await self.requests_wrapper.aget(api_url)
|
|
333
343
|
await _run_manager.on_text(
|
|
334
|
-
str(api_response),
|
|
344
|
+
str(api_response),
|
|
345
|
+
color="yellow",
|
|
346
|
+
end="\n",
|
|
347
|
+
verbose=self.verbose,
|
|
335
348
|
)
|
|
336
349
|
answer = await self.api_answer_chain.apredict(
|
|
337
350
|
question=question,
|
|
@@ -350,7 +363,7 @@ try:
|
|
|
350
363
|
headers: Optional[dict] = None,
|
|
351
364
|
api_url_prompt: BasePromptTemplate = API_URL_PROMPT,
|
|
352
365
|
api_response_prompt: BasePromptTemplate = API_RESPONSE_PROMPT,
|
|
353
|
-
limit_to_domains: Optional[Sequence[str]] =
|
|
366
|
+
limit_to_domains: Optional[Sequence[str]] = (),
|
|
354
367
|
**kwargs: Any,
|
|
355
368
|
) -> APIChain:
|
|
356
369
|
"""Load chain from just an LLM and the api docs."""
|
|
@@ -374,7 +387,8 @@ except ImportError:
|
|
|
374
387
|
|
|
375
388
|
class APIChain: # type: ignore[no-redef]
|
|
376
389
|
def __init__(self, *args: Any, **kwargs: Any) -> None:
|
|
377
|
-
|
|
390
|
+
msg = (
|
|
378
391
|
"To use the APIChain, you must install the langchain_community package."
|
|
379
392
|
"pip install langchain_community"
|
|
380
393
|
)
|
|
394
|
+
raise ImportError(msg)
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# flake8: noqa
|
|
2
1
|
NEWS_DOCS = """API documentation:
|
|
3
2
|
Endpoint: https://newsapi.org
|
|
4
3
|
Top headlines /v2/top-headlines
|
|
@@ -29,4 +28,4 @@ Response object
|
|
|
29
28
|
content | string | The unformatted content of the article, where available. This is truncated to 200 chars.
|
|
30
29
|
|
|
31
30
|
Use page size: 2
|
|
32
|
-
"""
|
|
31
|
+
""" # noqa: E501
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# flake8: noqa
|
|
2
1
|
OPEN_METEO_DOCS = """BASE URL: https://api.open-meteo.com/
|
|
3
2
|
|
|
4
3
|
API Documentation
|
|
@@ -30,4 +29,4 @@ showers Preceding hour sum mm (inch) Showers from convective precipitation in mi
|
|
|
30
29
|
weathercode Instant WMO code Weather condition as a numeric code. Follow WMO weather interpretation codes. See table below for details.
|
|
31
30
|
snow_depth Instant meters Snow depth on the ground
|
|
32
31
|
freezinglevel_height Instant meters Altitude above sea level of the 0°C level
|
|
33
|
-
visibility Instant meters Viewing distance in meters. Influenced by low clouds, humidity and aerosols. Maximum visibility is approximately 24 km."""
|
|
32
|
+
visibility Instant meters Viewing distance in meters. Influenced by low clouds, humidity and aerosols. Maximum visibility is approximately 24 km.""" # noqa: E501
|