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
|
@@ -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,116 +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
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
raise ValueError(
|
|
228
|
-
f"Self query retriever with Vector Store type {vectorstore.__class__}"
|
|
229
|
-
f" not supported."
|
|
230
|
-
)
|
|
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)
|
|
231
232
|
|
|
232
233
|
|
|
233
234
|
class SelfQueryRetriever(BaseRetriever):
|
|
@@ -238,7 +239,7 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
238
239
|
"""The underlying vector store from which documents will be retrieved."""
|
|
239
240
|
query_constructor: Runnable[dict, StructuredQuery] = Field(alias="llm_chain")
|
|
240
241
|
"""The query constructor chain for generating the vector store queries.
|
|
241
|
-
|
|
242
|
+
|
|
242
243
|
llm_chain is legacy name kept for backwards compatibility."""
|
|
243
244
|
search_type: str = "similarity"
|
|
244
245
|
"""The search type to perform on the vector store."""
|
|
@@ -262,7 +263,7 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
262
263
|
"""Validate translator."""
|
|
263
264
|
if "structured_query_translator" not in values:
|
|
264
265
|
values["structured_query_translator"] = _get_builtin_translator(
|
|
265
|
-
values["vectorstore"]
|
|
266
|
+
values["vectorstore"],
|
|
266
267
|
)
|
|
267
268
|
return values
|
|
268
269
|
|
|
@@ -272,10 +273,12 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
272
273
|
return self.query_constructor
|
|
273
274
|
|
|
274
275
|
def _prepare_query(
|
|
275
|
-
self,
|
|
276
|
+
self,
|
|
277
|
+
query: str,
|
|
278
|
+
structured_query: StructuredQuery,
|
|
276
279
|
) -> tuple[str, dict[str, Any]]:
|
|
277
280
|
new_query, new_kwargs = self.structured_query_translator.visit_structured_query(
|
|
278
|
-
structured_query
|
|
281
|
+
structured_query,
|
|
279
282
|
)
|
|
280
283
|
if structured_query.limit is not None:
|
|
281
284
|
new_kwargs["k"] = structured_query.limit
|
|
@@ -285,19 +288,24 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
285
288
|
return new_query, search_kwargs
|
|
286
289
|
|
|
287
290
|
def _get_docs_with_query(
|
|
288
|
-
self,
|
|
291
|
+
self,
|
|
292
|
+
query: str,
|
|
293
|
+
search_kwargs: dict[str, Any],
|
|
289
294
|
) -> list[Document]:
|
|
290
|
-
|
|
291
|
-
return docs
|
|
295
|
+
return self.vectorstore.search(query, self.search_type, **search_kwargs)
|
|
292
296
|
|
|
293
297
|
async def _aget_docs_with_query(
|
|
294
|
-
self,
|
|
298
|
+
self,
|
|
299
|
+
query: str,
|
|
300
|
+
search_kwargs: dict[str, Any],
|
|
295
301
|
) -> list[Document]:
|
|
296
|
-
|
|
297
|
-
return docs
|
|
302
|
+
return await self.vectorstore.asearch(query, self.search_type, **search_kwargs)
|
|
298
303
|
|
|
299
304
|
def _get_relevant_documents(
|
|
300
|
-
self,
|
|
305
|
+
self,
|
|
306
|
+
query: str,
|
|
307
|
+
*,
|
|
308
|
+
run_manager: CallbackManagerForRetrieverRun,
|
|
301
309
|
) -> list[Document]:
|
|
302
310
|
"""Get documents relevant for a query.
|
|
303
311
|
|
|
@@ -308,16 +316,19 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
308
316
|
List of relevant documents
|
|
309
317
|
"""
|
|
310
318
|
structured_query = self.query_constructor.invoke(
|
|
311
|
-
{"query": query},
|
|
319
|
+
{"query": query},
|
|
320
|
+
config={"callbacks": run_manager.get_child()},
|
|
312
321
|
)
|
|
313
322
|
if self.verbose:
|
|
314
|
-
logger.info(
|
|
323
|
+
logger.info("Generated Query: %s", structured_query)
|
|
315
324
|
new_query, search_kwargs = self._prepare_query(query, structured_query)
|
|
316
|
-
|
|
317
|
-
return docs
|
|
325
|
+
return self._get_docs_with_query(new_query, search_kwargs)
|
|
318
326
|
|
|
319
327
|
async def _aget_relevant_documents(
|
|
320
|
-
self,
|
|
328
|
+
self,
|
|
329
|
+
query: str,
|
|
330
|
+
*,
|
|
331
|
+
run_manager: AsyncCallbackManagerForRetrieverRun,
|
|
321
332
|
) -> list[Document]:
|
|
322
333
|
"""Get documents relevant for a query.
|
|
323
334
|
|
|
@@ -328,13 +339,13 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
328
339
|
List of relevant documents
|
|
329
340
|
"""
|
|
330
341
|
structured_query = await self.query_constructor.ainvoke(
|
|
331
|
-
{"query": query},
|
|
342
|
+
{"query": query},
|
|
343
|
+
config={"callbacks": run_manager.get_child()},
|
|
332
344
|
)
|
|
333
345
|
if self.verbose:
|
|
334
|
-
logger.info(
|
|
346
|
+
logger.info("Generated Query: %s", structured_query)
|
|
335
347
|
new_query, search_kwargs = self._prepare_query(query, structured_query)
|
|
336
|
-
|
|
337
|
-
return docs
|
|
348
|
+
return await self._aget_docs_with_query(new_query, search_kwargs)
|
|
338
349
|
|
|
339
350
|
@classmethod
|
|
340
351
|
def from_llm(
|
|
@@ -345,8 +356,8 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
345
356
|
metadata_field_info: Sequence[Union[AttributeInfo, dict]],
|
|
346
357
|
structured_query_translator: Optional[Visitor] = None,
|
|
347
358
|
chain_kwargs: Optional[dict] = None,
|
|
348
|
-
enable_limit: bool = False,
|
|
349
|
-
use_original_query: bool = False,
|
|
359
|
+
enable_limit: bool = False, # noqa: FBT001,FBT002
|
|
360
|
+
use_original_query: bool = False, # noqa: FBT001,FBT002
|
|
350
361
|
**kwargs: Any,
|
|
351
362
|
) -> "SelfQueryRetriever":
|
|
352
363
|
if structured_query_translator is None:
|
|
@@ -375,7 +386,7 @@ class SelfQueryRetriever(BaseRetriever):
|
|
|
375
386
|
**chain_kwargs,
|
|
376
387
|
)
|
|
377
388
|
query_constructor = query_constructor.with_config(
|
|
378
|
-
run_name=QUERY_CONSTRUCTOR_RUN_NAME
|
|
389
|
+
run_name=QUERY_CONSTRUCTOR_RUN_NAME,
|
|
379
390
|
)
|
|
380
391
|
return cls( # type: ignore[call-arg]
|
|
381
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
|
@@ -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
|
]
|
|
@@ -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
|
]
|