langchain 0.3.25__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 +7 -7
- 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 +18 -9
- 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 +47 -38
- langchain/agents/openai_functions_multi_agent/base.py +40 -27
- langchain/agents/openai_tools/base.py +8 -8
- langchain/agents/output_parsers/__init__.py +3 -3
- langchain/agents/output_parsers/json.py +7 -7
- 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 +6 -6
- 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/base.py +2 -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 +89 -55
- langchain/chains/chat_vector_db/prompts.py +2 -3
- langchain/chains/combine_documents/__init__.py +1 -1
- langchain/chains/combine_documents/base.py +24 -11
- langchain/chains/combine_documents/map_reduce.py +39 -31
- langchain/chains/combine_documents/map_rerank.py +34 -21
- 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 +6 -7
- 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 +170 -153
- 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 +117 -26
- 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 +24 -24
- langchain/evaluation/agents/trajectory_eval_prompt.py +6 -9
- langchain/evaluation/comparison/__init__.py +1 -1
- langchain/evaluation/comparison/eval_chain.py +21 -14
- langchain/evaluation/comparison/prompt.py +1 -2
- langchain/evaluation/criteria/__init__.py +1 -1
- langchain/evaluation/criteria/eval_chain.py +21 -12
- langchain/evaluation/criteria/prompt.py +2 -3
- langchain/evaluation/embedding_distance/base.py +24 -21
- 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 +13 -6
- 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 +23 -16
- langchain/evaluation/scoring/prompt.py +0 -1
- langchain/evaluation/string_distance/base.py +15 -10
- 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 +11 -8
- 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 +13 -6
- 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 +10 -9
- 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 +15 -13
- langchain/retrievers/docarray.py +1 -1
- langchain/retrievers/document_compressors/__init__.py +7 -5
- langchain/retrievers/document_compressors/base.py +13 -7
- langchain/retrievers/document_compressors/chain_extract.py +4 -5
- langchain/retrievers/document_compressors/chain_extract_prompt.py +2 -3
- langchain/retrievers/document_compressors/chain_filter.py +11 -12
- langchain/retrievers/document_compressors/chain_filter_prompt.py +1 -2
- langchain/retrievers/document_compressors/cohere_rerank.py +17 -19
- langchain/retrievers/document_compressors/embeddings_filter.py +23 -23
- langchain/retrievers/document_compressors/flashrank_rerank.py +1 -1
- langchain/retrievers/document_compressors/listwise_rerank.py +11 -6
- 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 -119
- langchain/retrievers/time_weighted_retriever.py +18 -7
- langchain/retrievers/zilliz.py +1 -1
- langchain/runnables/hub.py +2 -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 +3 -2
- 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 +181 -129
- 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.25.dist-info → langchain-0.3.27.dist-info}/METADATA +5 -5
- {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/RECORD +582 -582
- {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/WHEEL +1 -1
- {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/entry_points.txt +0 -0
- {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/licenses/LICENSE +0 -0
|
@@ -27,11 +27,12 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor:
|
|
|
27
27
|
"""Get the translator class corresponding to the vector store class."""
|
|
28
28
|
try:
|
|
29
29
|
import langchain_community # noqa: F401
|
|
30
|
-
except ImportError:
|
|
31
|
-
|
|
30
|
+
except ImportError as err:
|
|
31
|
+
msg = (
|
|
32
32
|
"The langchain-community package must be installed to use this feature."
|
|
33
33
|
" Please install it using `pip install langchain-community`."
|
|
34
34
|
)
|
|
35
|
+
raise ImportError(msg) from err
|
|
35
36
|
|
|
36
37
|
from langchain_community.query_constructors.astradb import AstraDBTranslator
|
|
37
38
|
from langchain_community.query_constructors.chroma import ChromaTranslator
|
|
@@ -118,108 +119,116 @@ def _get_builtin_translator(vectorstore: VectorStore) -> Visitor:
|
|
|
118
119
|
}
|
|
119
120
|
if isinstance(vectorstore, DatabricksVectorSearch):
|
|
120
121
|
return DatabricksVectorSearchTranslator()
|
|
121
|
-
|
|
122
|
+
if isinstance(vectorstore, MyScale):
|
|
122
123
|
return MyScaleTranslator(metadata_key=vectorstore.metadata_column)
|
|
123
|
-
|
|
124
|
+
if isinstance(vectorstore, Redis):
|
|
124
125
|
return RedisTranslator.from_vectorstore(vectorstore)
|
|
125
|
-
|
|
126
|
+
if isinstance(vectorstore, TencentVectorDB):
|
|
126
127
|
fields = [
|
|
127
128
|
field.name for field in (vectorstore.meta_fields or []) if field.index
|
|
128
129
|
]
|
|
129
130
|
return TencentVectorDBTranslator(fields)
|
|
130
|
-
|
|
131
|
+
if vectorstore.__class__ in BUILTIN_TRANSLATORS:
|
|
131
132
|
return BUILTIN_TRANSLATORS[vectorstore.__class__]()
|
|
133
|
+
try:
|
|
134
|
+
from langchain_astradb.vectorstores import AstraDBVectorStore
|
|
135
|
+
except ImportError:
|
|
136
|
+
pass
|
|
132
137
|
else:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
138
|
+
if isinstance(vectorstore, AstraDBVectorStore):
|
|
139
|
+
return AstraDBTranslator()
|
|
140
|
+
|
|
141
|
+
try:
|
|
142
|
+
from langchain_elasticsearch.vectorstores import ElasticsearchStore
|
|
143
|
+
except ImportError:
|
|
144
|
+
pass
|
|
145
|
+
else:
|
|
146
|
+
if isinstance(vectorstore, ElasticsearchStore):
|
|
147
|
+
return ElasticsearchTranslator()
|
|
148
|
+
|
|
149
|
+
try:
|
|
150
|
+
from langchain_pinecone import PineconeVectorStore
|
|
151
|
+
except ImportError:
|
|
152
|
+
pass
|
|
153
|
+
else:
|
|
154
|
+
if isinstance(vectorstore, PineconeVectorStore):
|
|
155
|
+
return PineconeTranslator()
|
|
156
|
+
|
|
157
|
+
try:
|
|
158
|
+
from langchain_milvus import Milvus
|
|
159
|
+
except ImportError:
|
|
160
|
+
pass
|
|
161
|
+
else:
|
|
162
|
+
if isinstance(vectorstore, Milvus):
|
|
163
|
+
return MilvusTranslator()
|
|
164
|
+
|
|
165
|
+
try:
|
|
166
|
+
from langchain_mongodb import MongoDBAtlasVectorSearch
|
|
167
|
+
except ImportError:
|
|
168
|
+
pass
|
|
169
|
+
else:
|
|
170
|
+
if isinstance(vectorstore, MongoDBAtlasVectorSearch):
|
|
171
|
+
return MongoDBAtlasTranslator()
|
|
172
|
+
|
|
173
|
+
try:
|
|
174
|
+
from langchain_neo4j import Neo4jVector
|
|
175
|
+
except ImportError:
|
|
176
|
+
pass
|
|
177
|
+
else:
|
|
178
|
+
if isinstance(vectorstore, Neo4jVector):
|
|
179
|
+
return Neo4jTranslator()
|
|
180
|
+
|
|
181
|
+
try:
|
|
182
|
+
# Trying langchain_chroma import if exists
|
|
183
|
+
from langchain_chroma import Chroma
|
|
184
|
+
except ImportError:
|
|
185
|
+
pass
|
|
186
|
+
else:
|
|
187
|
+
if isinstance(vectorstore, Chroma):
|
|
188
|
+
return ChromaTranslator()
|
|
189
|
+
|
|
190
|
+
try:
|
|
191
|
+
from langchain_postgres import PGVector
|
|
192
|
+
from langchain_postgres import PGVectorTranslator as NewPGVectorTranslator
|
|
193
|
+
except ImportError:
|
|
194
|
+
pass
|
|
195
|
+
else:
|
|
196
|
+
if isinstance(vectorstore, PGVector):
|
|
197
|
+
return NewPGVectorTranslator()
|
|
198
|
+
|
|
199
|
+
try:
|
|
200
|
+
from langchain_qdrant import QdrantVectorStore
|
|
201
|
+
except ImportError:
|
|
202
|
+
pass
|
|
203
|
+
else:
|
|
204
|
+
if isinstance(vectorstore, QdrantVectorStore):
|
|
205
|
+
return QdrantTranslator(metadata_key=vectorstore.metadata_payload_key)
|
|
206
|
+
|
|
207
|
+
try:
|
|
208
|
+
# Added in langchain-community==0.2.11
|
|
209
|
+
from langchain_community.query_constructors.hanavector import HanaTranslator
|
|
210
|
+
from langchain_community.vectorstores import HanaDB
|
|
211
|
+
except ImportError:
|
|
212
|
+
pass
|
|
213
|
+
else:
|
|
214
|
+
if isinstance(vectorstore, HanaDB):
|
|
215
|
+
return HanaTranslator()
|
|
216
|
+
|
|
217
|
+
try:
|
|
218
|
+
# Trying langchain_weaviate (weaviate v4) import if exists
|
|
219
|
+
from langchain_weaviate.vectorstores import WeaviateVectorStore
|
|
220
|
+
|
|
221
|
+
except ImportError:
|
|
222
|
+
pass
|
|
223
|
+
else:
|
|
224
|
+
if isinstance(vectorstore, WeaviateVectorStore):
|
|
225
|
+
return WeaviateTranslator()
|
|
226
|
+
|
|
227
|
+
msg = (
|
|
228
|
+
f"Self query retriever with Vector Store type {vectorstore.__class__}"
|
|
229
|
+
f" not supported."
|
|
230
|
+
)
|
|
231
|
+
raise ValueError(msg)
|
|
223
232
|
|
|
224
233
|
|
|
225
234
|
class SelfQueryRetriever(BaseRetriever):
|
|
@@ -230,7 +239,7 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
230
239
|
"""The underlying vector store from which documents will be retrieved."""
|
|
231
240
|
query_constructor: Runnable[dict, StructuredQuery] = Field(alias="llm_chain")
|
|
232
241
|
"""The query constructor chain for generating the vector store queries.
|
|
233
|
-
|
|
242
|
+
|
|
234
243
|
llm_chain is legacy name kept for backwards compatibility."""
|
|
235
244
|
search_type: str = "similarity"
|
|
236
245
|
"""The search type to perform on the vector store."""
|
|
@@ -254,7 +263,7 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
254
263
|
"""Validate translator."""
|
|
255
264
|
if "structured_query_translator" not in values:
|
|
256
265
|
values["structured_query_translator"] = _get_builtin_translator(
|
|
257
|
-
values["vectorstore"]
|
|
266
|
+
values["vectorstore"],
|
|
258
267
|
)
|
|
259
268
|
return values
|
|
260
269
|
|
|
@@ -264,10 +273,12 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
264
273
|
return self.query_constructor
|
|
265
274
|
|
|
266
275
|
def _prepare_query(
|
|
267
|
-
self,
|
|
276
|
+
self,
|
|
277
|
+
query: str,
|
|
278
|
+
structured_query: StructuredQuery,
|
|
268
279
|
) -> tuple[str, dict[str, Any]]:
|
|
269
280
|
new_query, new_kwargs = self.structured_query_translator.visit_structured_query(
|
|
270
|
-
structured_query
|
|
281
|
+
structured_query,
|
|
271
282
|
)
|
|
272
283
|
if structured_query.limit is not None:
|
|
273
284
|
new_kwargs["k"] = structured_query.limit
|
|
@@ -277,19 +288,24 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
277
288
|
return new_query, search_kwargs
|
|
278
289
|
|
|
279
290
|
def _get_docs_with_query(
|
|
280
|
-
self,
|
|
291
|
+
self,
|
|
292
|
+
query: str,
|
|
293
|
+
search_kwargs: dict[str, Any],
|
|
281
294
|
) -> list[Document]:
|
|
282
|
-
|
|
283
|
-
return docs
|
|
295
|
+
return self.vectorstore.search(query, self.search_type, **search_kwargs)
|
|
284
296
|
|
|
285
297
|
async def _aget_docs_with_query(
|
|
286
|
-
self,
|
|
298
|
+
self,
|
|
299
|
+
query: str,
|
|
300
|
+
search_kwargs: dict[str, Any],
|
|
287
301
|
) -> list[Document]:
|
|
288
|
-
|
|
289
|
-
return docs
|
|
302
|
+
return await self.vectorstore.asearch(query, self.search_type, **search_kwargs)
|
|
290
303
|
|
|
291
304
|
def _get_relevant_documents(
|
|
292
|
-
self,
|
|
305
|
+
self,
|
|
306
|
+
query: str,
|
|
307
|
+
*,
|
|
308
|
+
run_manager: CallbackManagerForRetrieverRun,
|
|
293
309
|
) -> list[Document]:
|
|
294
310
|
"""Get documents relevant for a query.
|
|
295
311
|
|
|
@@ -300,16 +316,19 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
300
316
|
List of relevant documents
|
|
301
317
|
"""
|
|
302
318
|
structured_query = self.query_constructor.invoke(
|
|
303
|
-
{"query": query},
|
|
319
|
+
{"query": query},
|
|
320
|
+
config={"callbacks": run_manager.get_child()},
|
|
304
321
|
)
|
|
305
322
|
if self.verbose:
|
|
306
|
-
logger.info(
|
|
323
|
+
logger.info("Generated Query: %s", structured_query)
|
|
307
324
|
new_query, search_kwargs = self._prepare_query(query, structured_query)
|
|
308
|
-
|
|
309
|
-
return docs
|
|
325
|
+
return self._get_docs_with_query(new_query, search_kwargs)
|
|
310
326
|
|
|
311
327
|
async def _aget_relevant_documents(
|
|
312
|
-
self,
|
|
328
|
+
self,
|
|
329
|
+
query: str,
|
|
330
|
+
*,
|
|
331
|
+
run_manager: AsyncCallbackManagerForRetrieverRun,
|
|
313
332
|
) -> list[Document]:
|
|
314
333
|
"""Get documents relevant for a query.
|
|
315
334
|
|
|
@@ -320,13 +339,13 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
320
339
|
List of relevant documents
|
|
321
340
|
"""
|
|
322
341
|
structured_query = await self.query_constructor.ainvoke(
|
|
323
|
-
{"query": query},
|
|
342
|
+
{"query": query},
|
|
343
|
+
config={"callbacks": run_manager.get_child()},
|
|
324
344
|
)
|
|
325
345
|
if self.verbose:
|
|
326
|
-
logger.info(
|
|
346
|
+
logger.info("Generated Query: %s", structured_query)
|
|
327
347
|
new_query, search_kwargs = self._prepare_query(query, structured_query)
|
|
328
|
-
|
|
329
|
-
return docs
|
|
348
|
+
return await self._aget_docs_with_query(new_query, search_kwargs)
|
|
330
349
|
|
|
331
350
|
@classmethod
|
|
332
351
|
def from_llm(
|
|
@@ -337,8 +356,8 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
337
356
|
metadata_field_info: Sequence[Union[AttributeInfo, dict]],
|
|
338
357
|
structured_query_translator: Optional[Visitor] = None,
|
|
339
358
|
chain_kwargs: Optional[dict] = None,
|
|
340
|
-
enable_limit: bool = False,
|
|
341
|
-
use_original_query: bool = False,
|
|
359
|
+
enable_limit: bool = False, # noqa: FBT001,FBT002
|
|
360
|
+
use_original_query: bool = False, # noqa: FBT001,FBT002
|
|
342
361
|
**kwargs: Any,
|
|
343
362
|
) -> "SelfQueryRetriever":
|
|
344
363
|
if structured_query_translator is None:
|
|
@@ -367,7 +386,7 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
367
386
|
**chain_kwargs,
|
|
368
387
|
)
|
|
369
388
|
query_constructor = query_constructor.with_config(
|
|
370
|
-
run_name=QUERY_CONSTRUCTOR_RUN_NAME
|
|
389
|
+
run_name=QUERY_CONSTRUCTOR_RUN_NAME,
|
|
371
390
|
)
|
|
372
391
|
return cls( # type: ignore[call-arg]
|
|
373
392
|
query_constructor=query_constructor,
|
|
@@ -24,7 +24,7 @@ class TimeWeightedVectorStoreRetriever(BaseRetriever):
|
|
|
24
24
|
vectorstore: VectorStore
|
|
25
25
|
"""The vectorstore to store documents and determine salience."""
|
|
26
26
|
|
|
27
|
-
search_kwargs: dict = Field(default_factory=lambda:
|
|
27
|
+
search_kwargs: dict = Field(default_factory=lambda: {"k": 100})
|
|
28
28
|
"""Keyword arguments to pass to the vectorstore similarity search."""
|
|
29
29
|
|
|
30
30
|
# TODO: abstract as a queue
|
|
@@ -81,7 +81,8 @@ class TimeWeightedVectorStoreRetriever(BaseRetriever):
|
|
|
81
81
|
"""Return documents that are salient to the query."""
|
|
82
82
|
docs_and_scores: list[tuple[Document, float]]
|
|
83
83
|
docs_and_scores = self.vectorstore.similarity_search_with_relevance_scores(
|
|
84
|
-
query,
|
|
84
|
+
query,
|
|
85
|
+
**self.search_kwargs,
|
|
85
86
|
)
|
|
86
87
|
results = {}
|
|
87
88
|
for fetched_doc, relevance in docs_and_scores:
|
|
@@ -96,7 +97,8 @@ class TimeWeightedVectorStoreRetriever(BaseRetriever):
|
|
|
96
97
|
docs_and_scores: list[tuple[Document, float]]
|
|
97
98
|
docs_and_scores = (
|
|
98
99
|
await self.vectorstore.asimilarity_search_with_relevance_scores(
|
|
99
|
-
query,
|
|
100
|
+
query,
|
|
101
|
+
**self.search_kwargs,
|
|
100
102
|
)
|
|
101
103
|
)
|
|
102
104
|
results = {}
|
|
@@ -108,7 +110,8 @@ class TimeWeightedVectorStoreRetriever(BaseRetriever):
|
|
|
108
110
|
return results
|
|
109
111
|
|
|
110
112
|
def _get_rescored_docs(
|
|
111
|
-
self,
|
|
113
|
+
self,
|
|
114
|
+
docs_and_scores: dict[Any, tuple[Document, Optional[float]]],
|
|
112
115
|
) -> list[Document]:
|
|
113
116
|
current_time = datetime.datetime.now()
|
|
114
117
|
rescored_docs = [
|
|
@@ -126,7 +129,10 @@ class TimeWeightedVectorStoreRetriever(BaseRetriever):
|
|
|
126
129
|
return result
|
|
127
130
|
|
|
128
131
|
def _get_relevant_documents(
|
|
129
|
-
self,
|
|
132
|
+
self,
|
|
133
|
+
query: str,
|
|
134
|
+
*,
|
|
135
|
+
run_manager: CallbackManagerForRetrieverRun,
|
|
130
136
|
) -> list[Document]:
|
|
131
137
|
docs_and_scores = {
|
|
132
138
|
doc.metadata["buffer_idx"]: (doc, self.default_salience)
|
|
@@ -137,7 +143,10 @@ class TimeWeightedVectorStoreRetriever(BaseRetriever):
|
|
|
137
143
|
return self._get_rescored_docs(docs_and_scores)
|
|
138
144
|
|
|
139
145
|
async def _aget_relevant_documents(
|
|
140
|
-
self,
|
|
146
|
+
self,
|
|
147
|
+
query: str,
|
|
148
|
+
*,
|
|
149
|
+
run_manager: AsyncCallbackManagerForRetrieverRun,
|
|
141
150
|
) -> list[Document]:
|
|
142
151
|
docs_and_scores = {
|
|
143
152
|
doc.metadata["buffer_idx"]: (doc, self.default_salience)
|
|
@@ -164,7 +173,9 @@ class TimeWeightedVectorStoreRetriever(BaseRetriever):
|
|
|
164
173
|
return self.vectorstore.add_documents(dup_docs, **kwargs)
|
|
165
174
|
|
|
166
175
|
async def aadd_documents(
|
|
167
|
-
self,
|
|
176
|
+
self,
|
|
177
|
+
documents: list[Document],
|
|
178
|
+
**kwargs: Any,
|
|
168
179
|
) -> list[str]:
|
|
169
180
|
"""Add documents to vectorstore."""
|
|
170
181
|
current_time = kwargs.get("current_time")
|
langchain/retrievers/zilliz.py
CHANGED
langchain/runnables/hub.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from typing import Any, Optional
|
|
2
2
|
|
|
3
|
-
from langchain_core.runnables.base import
|
|
3
|
+
from langchain_core.runnables.base import RunnableBindingBase
|
|
4
|
+
from langchain_core.runnables.utils import Input, Output
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
class HubRunnable(RunnableBindingBase[Input, Output]):
|
|
@@ -37,8 +37,12 @@ class OpenAIFunctionsRouter(RunnableBindingBase[BaseMessage, Any]):
|
|
|
37
37
|
functions: Optional[list[OpenAIFunction]] = None,
|
|
38
38
|
):
|
|
39
39
|
if functions is not None:
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
if len(functions) != len(runnables):
|
|
41
|
+
msg = "The number of functions does not match the number of runnables."
|
|
42
|
+
raise ValueError(msg)
|
|
43
|
+
if not all(func["name"] in runnables for func in functions):
|
|
44
|
+
msg = "One or more function names are not found in runnables."
|
|
45
|
+
raise ValueError(msg)
|
|
42
46
|
router = (
|
|
43
47
|
JsonOutputFunctionsParser(args_only=False)
|
|
44
48
|
| {"key": itemgetter("name"), "input": itemgetter("arguments")}
|
langchain/schema/__init__.py
CHANGED
|
@@ -43,40 +43,40 @@ Memory = BaseMemory
|
|
|
43
43
|
_message_to_dict = message_to_dict
|
|
44
44
|
|
|
45
45
|
__all__ = [
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"BaseStore",
|
|
49
|
-
"AgentFinish",
|
|
46
|
+
"RUN_KEY",
|
|
47
|
+
"AIMessage",
|
|
50
48
|
"AgentAction",
|
|
51
|
-
"
|
|
49
|
+
"AgentFinish",
|
|
50
|
+
"BaseCache",
|
|
52
51
|
"BaseChatMessageHistory",
|
|
53
52
|
"BaseDocumentTransformer",
|
|
53
|
+
"BaseLLMOutputParser",
|
|
54
|
+
"BaseMemory",
|
|
54
55
|
"BaseMessage",
|
|
56
|
+
"BaseOutputParser",
|
|
57
|
+
"BasePromptTemplate",
|
|
58
|
+
"BaseRetriever",
|
|
59
|
+
"BaseStore",
|
|
60
|
+
"ChatGeneration",
|
|
55
61
|
"ChatMessage",
|
|
62
|
+
"ChatResult",
|
|
63
|
+
"Document",
|
|
56
64
|
"FunctionMessage",
|
|
65
|
+
"Generation",
|
|
57
66
|
"HumanMessage",
|
|
58
|
-
"AIMessage",
|
|
59
|
-
"SystemMessage",
|
|
60
|
-
"messages_from_dict",
|
|
61
|
-
"messages_to_dict",
|
|
62
|
-
"message_to_dict",
|
|
63
|
-
"_message_to_dict",
|
|
64
|
-
"_message_from_dict",
|
|
65
|
-
"get_buffer_string",
|
|
66
|
-
"RunInfo",
|
|
67
67
|
"LLMResult",
|
|
68
|
-
"ChatResult",
|
|
69
|
-
"ChatGeneration",
|
|
70
|
-
"Generation",
|
|
71
|
-
"PromptValue",
|
|
72
68
|
"LangChainException",
|
|
73
|
-
"BaseRetriever",
|
|
74
|
-
"RUN_KEY",
|
|
75
69
|
"Memory",
|
|
76
70
|
"OutputParserException",
|
|
71
|
+
"PromptValue",
|
|
72
|
+
"RunInfo",
|
|
77
73
|
"StrOutputParser",
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
74
|
+
"SystemMessage",
|
|
75
|
+
"_message_from_dict",
|
|
76
|
+
"_message_to_dict",
|
|
81
77
|
"format_document",
|
|
78
|
+
"get_buffer_string",
|
|
79
|
+
"message_to_dict",
|
|
80
|
+
"messages_from_dict",
|
|
81
|
+
"messages_to_dict",
|
|
82
82
|
]
|
langchain/schema/cache.py
CHANGED
|
@@ -11,13 +11,13 @@ from langchain_core.callbacks.base import (
|
|
|
11
11
|
)
|
|
12
12
|
|
|
13
13
|
__all__ = [
|
|
14
|
-
"RetrieverManagerMixin",
|
|
15
|
-
"LLMManagerMixin",
|
|
16
|
-
"ChainManagerMixin",
|
|
17
|
-
"ToolManagerMixin",
|
|
18
|
-
"CallbackManagerMixin",
|
|
19
|
-
"RunManagerMixin",
|
|
20
|
-
"BaseCallbackHandler",
|
|
21
14
|
"AsyncCallbackHandler",
|
|
15
|
+
"BaseCallbackHandler",
|
|
22
16
|
"BaseCallbackManager",
|
|
17
|
+
"CallbackManagerMixin",
|
|
18
|
+
"ChainManagerMixin",
|
|
19
|
+
"LLMManagerMixin",
|
|
20
|
+
"RetrieverManagerMixin",
|
|
21
|
+
"RunManagerMixin",
|
|
22
|
+
"ToolManagerMixin",
|
|
23
23
|
]
|
|
@@ -28,28 +28,28 @@ from langchain_core.tracers.context import (
|
|
|
28
28
|
from langchain_core.utils.env import env_var_is_set
|
|
29
29
|
|
|
30
30
|
__all__ = [
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"collect_runs",
|
|
34
|
-
"trace_as_chain_group",
|
|
35
|
-
"handle_event",
|
|
36
|
-
"BaseRunManager",
|
|
37
|
-
"RunManager",
|
|
38
|
-
"ParentRunManager",
|
|
39
|
-
"AsyncRunManager",
|
|
40
|
-
"AsyncParentRunManager",
|
|
41
|
-
"CallbackManagerForLLMRun",
|
|
42
|
-
"AsyncCallbackManagerForLLMRun",
|
|
43
|
-
"CallbackManagerForChainRun",
|
|
31
|
+
"AsyncCallbackManager",
|
|
32
|
+
"AsyncCallbackManagerForChainGroup",
|
|
44
33
|
"AsyncCallbackManagerForChainRun",
|
|
45
|
-
"
|
|
46
|
-
"AsyncCallbackManagerForToolRun",
|
|
47
|
-
"CallbackManagerForRetrieverRun",
|
|
34
|
+
"AsyncCallbackManagerForLLMRun",
|
|
48
35
|
"AsyncCallbackManagerForRetrieverRun",
|
|
36
|
+
"AsyncCallbackManagerForToolRun",
|
|
37
|
+
"AsyncParentRunManager",
|
|
38
|
+
"AsyncRunManager",
|
|
39
|
+
"BaseRunManager",
|
|
49
40
|
"CallbackManager",
|
|
50
41
|
"CallbackManagerForChainGroup",
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
42
|
+
"CallbackManagerForChainRun",
|
|
43
|
+
"CallbackManagerForLLMRun",
|
|
44
|
+
"CallbackManagerForRetrieverRun",
|
|
45
|
+
"CallbackManagerForToolRun",
|
|
46
|
+
"ParentRunManager",
|
|
47
|
+
"RunManager",
|
|
48
|
+
"collect_runs",
|
|
54
49
|
"env_var_is_set",
|
|
50
|
+
"handle_event",
|
|
51
|
+
"register_configure_hook",
|
|
52
|
+
"trace_as_chain_group",
|
|
53
|
+
"tracing_enabled",
|
|
54
|
+
"tracing_v2_enabled",
|
|
55
55
|
]
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
from langchain_core.
|
|
1
|
+
from langchain_core.exceptions import TracerException
|
|
2
|
+
from langchain_core.tracers.base import BaseTracer
|
|
2
3
|
|
|
3
|
-
__all__ = ["
|
|
4
|
+
__all__ = ["BaseTracer", "TracerException"]
|
|
@@ -13,15 +13,15 @@ from langchain_core.tracers.schemas import (
|
|
|
13
13
|
)
|
|
14
14
|
|
|
15
15
|
__all__ = [
|
|
16
|
-
"RunTypeEnum",
|
|
17
|
-
"TracerSessionV1Base",
|
|
18
|
-
"TracerSessionV1Create",
|
|
19
|
-
"TracerSessionV1",
|
|
20
|
-
"TracerSessionBase",
|
|
21
|
-
"TracerSession",
|
|
22
16
|
"BaseRun",
|
|
23
|
-
"LLMRun",
|
|
24
17
|
"ChainRun",
|
|
25
|
-
"
|
|
18
|
+
"LLMRun",
|
|
26
19
|
"Run",
|
|
20
|
+
"RunTypeEnum",
|
|
21
|
+
"ToolRun",
|
|
22
|
+
"TracerSession",
|
|
23
|
+
"TracerSessionBase",
|
|
24
|
+
"TracerSessionV1",
|
|
25
|
+
"TracerSessionV1Base",
|
|
26
|
+
"TracerSessionV1Create",
|
|
27
27
|
]
|