From c0d67420e548caa395a74f3e06cef99918d35f7f Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Thu, 17 Aug 2023 16:35:49 +0100 Subject: [PATCH] Use a submodule for pydantic v1 compat (#9371) --- .../langchain_experimental/__init__.py | 24 ----- .../autonomous_agents/autogpt/agent.py | 2 +- .../autonomous_agents/autogpt/memory.py | 3 +- .../autonomous_agents/autogpt/prompt.py | 2 +- .../autonomous_agents/baby_agi/baby_agi.py | 2 +- .../hugginggpt/task_planner.py | 3 +- .../langchain_experimental/cpal/models.py | 8 +- .../generative_agents/generative_agent.py | 2 +- .../llms/anthropic_functions.py | 3 +- .../llms/jsonformer_decoder.py | 3 +- .../llms/rellm_decoder.py | 3 +- .../langchain_experimental/pal_chain/base.py | 2 +- .../plan_and_execute/agent_executor.py | 2 +- .../plan_and_execute/executors/base.py | 2 +- .../plan_and_execute/planners/base.py | 2 +- .../plan_and_execute/schema.py | 3 +- .../pydantic_v1/__init__.py | 23 +++++ .../pydantic_v1/dataclasses.py | 4 + .../pydantic_v1/main.py | 4 + .../langchain_experimental/smart_llm/base.py | 3 +- .../langchain_experimental/sql/base.py | 3 +- .../langchain_experimental/tot/base.py | 2 +- .../langchain_experimental/tot/thought.py | 2 +- .../tot/thought_generation.py | 2 +- .../experimental/tests/unit_tests/fake_llm.py | 3 +- libs/langchain/langchain/__init__.py | 30 ------- libs/langchain/langchain/agents/agent.py | 2 +- .../agents/agent_toolkits/amadeus/toolkit.py | 3 +- .../langchain/agents/agent_toolkits/base.py | 3 +- .../agent_toolkits/file_management/toolkit.py | 3 +- .../agents/agent_toolkits/gmail/toolkit.py | 3 +- .../agents/agent_toolkits/nla/toolkit.py | 3 +- .../agent_toolkits/office365/toolkit.py | 3 +- .../agents/agent_toolkits/openapi/planner.py | 2 +- .../agent_toolkits/playwright/toolkit.py | 3 +- .../agents/agent_toolkits/powerbi/toolkit.py | 3 +- .../agent_toolkits/spark_sql/toolkit.py | 3 +- .../agents/agent_toolkits/sql/toolkit.py | 3 +- .../agent_toolkits/vectorstore/toolkit.py | 3 +- libs/langchain/langchain/agents/chat/base.py | 3 +- .../langchain/agents/conversational/base.py | 3 +- .../agents/conversational_chat/base.py | 3 +- libs/langchain/langchain/agents/mrkl/base.py | 3 +- .../agents/openai_functions_agent/base.py | 3 +- .../openai_functions_multi_agent/base.py | 3 +- libs/langchain/langchain/agents/react/base.py | 3 +- .../agents/self_ask_with_search/base.py | 3 +- .../langchain/agents/structured_chat/base.py | 3 +- .../agents/structured_chat/output_parser.py | 3 +- .../langchain/callbacks/tracers/schemas.py | 2 +- libs/langchain/langchain/chains/api/base.py | 3 +- .../langchain/chains/api/openapi/chain.py | 2 +- libs/langchain/langchain/chains/base.py | 2 +- .../chains/combine_documents/base.py | 3 +- .../chains/combine_documents/map_reduce.py | 3 +- .../chains/combine_documents/map_rerank.py | 3 +- .../chains/combine_documents/reduce.py | 3 +- .../chains/combine_documents/refine.py | 3 +- .../chains/combine_documents/stuff.py | 3 +- .../chains/constitutional_ai/models.py | 2 +- .../langchain/chains/conversation/base.py | 3 +- .../chains/conversational_retrieval/base.py | 3 +- .../chains/elasticsearch_database/base.py | 3 +- libs/langchain/langchain/chains/flare/base.py | 2 +- .../langchain/chains/graph_qa/arangodb.py | 3 +- .../langchain/chains/graph_qa/base.py | 3 +- .../langchain/chains/graph_qa/cypher.py | 3 +- .../langchain/chains/graph_qa/hugegraph.py | 3 +- .../langchain/chains/graph_qa/kuzu.py | 3 +- .../langchain/chains/graph_qa/nebulagraph.py | 3 +- .../chains/graph_qa/neptune_cypher.py | 3 +- .../langchain/chains/graph_qa/sparql.py | 3 +- libs/langchain/langchain/chains/hyde/base.py | 2 +- libs/langchain/langchain/chains/llm.py | 3 +- .../langchain/chains/llm_bash/base.py | 3 +- .../langchain/chains/llm_checker/base.py | 3 +- .../langchain/chains/llm_math/base.py | 2 +- .../langchain/chains/llm_requests.py | 3 +- .../chains/llm_summarization_checker/base.py | 3 +- .../chains/llm_symbolic_math/base.py | 3 +- libs/langchain/langchain/chains/mapreduce.py | 3 +- libs/langchain/langchain/chains/moderation.py | 3 +- .../langchain/langchain/chains/natbot/base.py | 3 +- .../langchain/chains/openai_functions/base.py | 3 +- .../openai_functions/citation_fuzzy_match.py | 3 +- .../chains/openai_functions/extraction.py | 3 +- .../openai_functions/qa_with_structure.py | 3 +- .../langchain/chains/prompt_selector.py | 3 +- .../langchain/chains/qa_generation/base.py | 3 +- .../langchain/chains/qa_with_sources/base.py | 3 +- .../chains/qa_with_sources/retrieval.py | 3 +- .../chains/qa_with_sources/vector_db.py | 3 +- .../langchain/chains/query_constructor/ir.py | 2 +- .../chains/query_constructor/schema.py | 2 +- .../langchain/chains/retrieval_qa/base.py | 3 +- .../langchain/langchain/chains/router/base.py | 3 +- .../chains/router/embedding_router.py | 3 +- .../langchain/chains/router/llm_router.py | 3 +- libs/langchain/langchain/chains/sequential.py | 3 +- libs/langchain/langchain/chains/transform.py | 3 +- .../langchain/chat_models/anyscale.py | 2 +- .../langchain/chat_models/azure_openai.py | 3 +- .../langchain/chat_models/azureml_endpoint.py | 3 +- libs/langchain/langchain/chat_models/base.py | 3 +- libs/langchain/langchain/chat_models/ernie.py | 2 +- .../langchain/chat_models/google_palm.py | 2 +- libs/langchain/langchain/chat_models/human.py | 2 +- .../langchain/chat_models/jinachat.py | 2 +- .../langchain/chat_models/litellm.py | 3 +- .../chat_models/mlflow_ai_gateway.py | 3 +- .../langchain/langchain/chat_models/openai.py | 3 +- .../langchain/chat_models/vertexai.py | 3 +- .../document_loaders/apify_dataset.py | 3 +- .../document_loaders/blob_loaders/schema.py | 2 +- .../langchain/document_loaders/docugami.py | 2 +- .../langchain/document_loaders/dropbox.py | 3 +- .../langchain/document_loaders/embaas.py | 2 +- .../langchain/document_loaders/github.py | 2 +- .../langchain/document_loaders/googledrive.py | 3 +- .../langchain/document_loaders/onedrive.py | 3 +- .../document_loaders/onedrive_file.py | 3 +- .../langchain/document_loaders/youtube.py | 5 +- .../embeddings_redundant_filter.py | 2 +- .../long_context_reorder.py | 3 +- .../document_transformers/openai_functions.py | 3 +- .../langchain/embeddings/aleph_alpha.py | 3 +- libs/langchain/langchain/embeddings/awa.py | 3 +- .../langchain/langchain/embeddings/bedrock.py | 3 +- .../langchain/embeddings/clarifai.py | 3 +- libs/langchain/langchain/embeddings/cohere.py | 3 +- .../langchain/embeddings/dashscope.py | 2 +- .../langchain/embeddings/deepinfra.py | 2 +- libs/langchain/langchain/embeddings/edenai.py | 3 +- libs/langchain/langchain/embeddings/embaas.py | 2 +- libs/langchain/langchain/embeddings/fake.py | 2 +- .../langchain/embeddings/google_palm.py | 2 +- .../langchain/langchain/embeddings/gpt4all.py | 3 +- .../langchain/embeddings/huggingface.py | 3 +- .../langchain/embeddings/huggingface_hub.py | 3 +- libs/langchain/langchain/embeddings/jina.py | 2 +- .../langchain/embeddings/llamacpp.py | 3 +- .../langchain/langchain/embeddings/localai.py | 2 +- .../langchain/langchain/embeddings/minimax.py | 2 +- .../langchain/embeddings/mlflow_gateway.py | 3 +- .../langchain/embeddings/modelscope_hub.py | 3 +- .../langchain/embeddings/mosaicml.py | 2 +- .../langchain/embeddings/nlpcloud.py | 3 +- .../langchain/embeddings/octoai_embeddings.py | 3 +- libs/langchain/langchain/embeddings/openai.py | 2 +- .../embeddings/sagemaker_endpoint.py | 3 +- .../langchain/embeddings/self_hosted.py | 3 +- .../langchain/embeddings/spacy_embeddings.py | 3 +- .../langchain/embeddings/tensorflow_hub.py | 3 +- .../langchain/embeddings/vertexai.py | 3 +- .../agents/trajectory_eval_chain.py | 3 +- .../evaluation/comparison/eval_chain.py | 3 +- .../evaluation/criteria/eval_chain.py | 3 +- .../evaluation/embedding_distance/base.py | 2 +- .../langchain/evaluation/qa/eval_chain.py | 3 +- .../langchain/evaluation/qa/generate_chain.py | 3 +- .../evaluation/string_distance/base.py | 3 +- libs/langchain/langchain/indexes/graph.py | 3 +- .../langchain/indexes/vectorstore.py | 3 +- libs/langchain/langchain/llms/ai21.py | 2 +- libs/langchain/langchain/llms/aleph_alpha.py | 3 +- .../langchain/llms/amazon_api_gateway.py | 2 +- libs/langchain/langchain/llms/anthropic.py | 3 +- libs/langchain/langchain/llms/anyscale.py | 2 +- libs/langchain/langchain/llms/aviary.py | 2 +- .../langchain/llms/azureml_endpoint.py | 3 +- libs/langchain/langchain/llms/bananadev.py | 3 +- libs/langchain/langchain/llms/base.py | 2 +- libs/langchain/langchain/llms/baseten.py | 3 +- libs/langchain/langchain/llms/beam.py | 2 +- libs/langchain/langchain/llms/bedrock.py | 3 +- libs/langchain/langchain/llms/cerebriumai.py | 3 +- libs/langchain/langchain/llms/clarifai.py | 3 +- libs/langchain/langchain/llms/cohere.py | 2 +- .../langchain/langchain/llms/ctransformers.py | 3 +- libs/langchain/langchain/llms/databricks.py | 9 +- libs/langchain/langchain/llms/deepinfra.py | 2 +- libs/langchain/langchain/llms/deepsparse.py | 2 +- libs/langchain/langchain/llms/edenai.py | 2 +- libs/langchain/langchain/llms/fireworks.py | 2 +- libs/langchain/langchain/llms/forefrontai.py | 2 +- libs/langchain/langchain/llms/google_palm.py | 2 +- libs/langchain/langchain/llms/gooseai.py | 3 +- libs/langchain/langchain/llms/gpt4all.py | 3 +- .../langchain/llms/huggingface_endpoint.py | 2 +- .../langchain/llms/huggingface_hub.py | 3 +- .../langchain/llms/huggingface_pipeline.py | 3 +- .../llms/huggingface_text_gen_inference.py | 3 +- libs/langchain/langchain/llms/human.py | 3 +- libs/langchain/langchain/llms/llamacpp.py | 3 +- libs/langchain/langchain/llms/manifest.py | 3 +- libs/langchain/langchain/llms/minimax.py | 2 +- .../langchain/llms/mlflow_ai_gateway.py | 3 +- libs/langchain/langchain/llms/modal.py | 2 +- libs/langchain/langchain/llms/mosaicml.py | 2 +- libs/langchain/langchain/llms/nlpcloud.py | 3 +- .../langchain/llms/octoai_endpoint.py | 3 +- libs/langchain/langchain/llms/ollama.py | 2 +- libs/langchain/langchain/llms/openai.py | 3 +- libs/langchain/langchain/llms/openllm.py | 3 +- libs/langchain/langchain/llms/openlm.py | 3 +- libs/langchain/langchain/llms/petals.py | 3 +- libs/langchain/langchain/llms/pipelineai.py | 3 +- libs/langchain/langchain/llms/predibase.py | 3 +- .../langchain/llms/predictionguard.py | 3 +- libs/langchain/langchain/llms/replicate.py | 3 +- libs/langchain/langchain/llms/rwkv.py | 3 +- .../langchain/llms/sagemaker_endpoint.py | 3 +- libs/langchain/langchain/llms/self_hosted.py | 3 +- .../llms/self_hosted_hugging_face.py | 3 +- libs/langchain/langchain/llms/stochasticai.py | 2 +- .../langchain/llms/symblai_nebula.py | 2 +- libs/langchain/langchain/llms/textgen.py | 2 +- libs/langchain/langchain/llms/tongyi.py | 2 +- libs/langchain/langchain/llms/vertexai.py | 3 +- libs/langchain/langchain/llms/vllm.py | 3 +- libs/langchain/langchain/llms/writer.py | 2 +- libs/langchain/langchain/load/serializable.py | 2 +- libs/langchain/langchain/memory/buffer.py | 3 +- .../langchain/langchain/memory/chat_memory.py | 3 +- .../chat_message_histories/in_memory.py | 3 +- libs/langchain/langchain/memory/combined.py | 3 +- libs/langchain/langchain/memory/entity.py | 3 +- libs/langchain/langchain/memory/kg.py | 3 +- libs/langchain/langchain/memory/summary.py | 3 +- .../langchain/memory/summary_buffer.py | 3 +- .../langchain/langchain/memory/vectorstore.py | 3 +- .../langchain/output_parsers/combining.py | 3 +- .../langchain/output_parsers/enum.py | 3 +- .../output_parsers/openai_functions.py | 3 +- .../langchain/output_parsers/pydantic.py | 3 +- .../langchain/output_parsers/structured.py | 3 +- libs/langchain/langchain/prompts/chat.py | 3 +- .../prompts/example_selector/length_based.py | 3 +- .../prompts/example_selector/ngram_overlap.py | 2 +- .../example_selector/semantic_similarity.py | 3 +- libs/langchain/langchain/prompts/few_shot.py | 3 +- .../prompts/few_shot_with_templates.py | 3 +- libs/langchain/langchain/prompts/pipeline.py | 3 +- libs/langchain/langchain/prompts/prompt.py | 3 +- .../langchain/pydantic_v1/__init__.py | 23 +++++ .../langchain/pydantic_v1/dataclasses.py | 4 + libs/langchain/langchain/pydantic_v1/main.py | 4 + .../retrievers/azure_cognitive_search.py | 2 +- .../retrievers/document_compressors/base.py | 3 +- .../document_compressors/cohere_rerank.py | 3 +- .../document_compressors/embeddings_filter.py | 2 +- .../langchain/retrievers/ensemble.py | 3 +- .../google_cloud_enterprise_search.py | 3 +- libs/langchain/langchain/retrievers/kendra.py | 3 +- .../langchain/retrievers/llama_index.py | 3 +- libs/langchain/langchain/retrievers/metal.py | 3 +- libs/langchain/langchain/retrievers/milvus.py | 3 +- .../langchain/retrievers/multi_query.py | 3 +- .../retrievers/parent_document_retriever.py | 3 +- .../retrievers/pinecone_hybrid_search.py | 3 +- .../langchain/retrievers/self_query/base.py | 3 +- .../retrievers/time_weighted_retriever.py | 3 +- .../retrievers/weaviate_hybrid_search.py | 3 +- .../langchain/retrievers/web_research.py | 3 +- libs/langchain/langchain/retrievers/zep.py | 3 +- libs/langchain/langchain/retrievers/zilliz.py | 3 +- .../langchain/runnables/openai_functions.py | 2 +- libs/langchain/langchain/schema/document.py | 3 +- libs/langchain/langchain/schema/messages.py | 3 +- libs/langchain/langchain/schema/output.py | 3 +- .../langchain/schema/prompt_template.py | 2 +- .../langchain/schema/runnable/base.py | 3 +- .../langchain/smith/evaluation/config.py | 2 +- .../langchain/langchain/tools/amadeus/base.py | 3 +- .../tools/amadeus/closest_airport.py | 3 +- .../langchain/tools/amadeus/flight_search.py | 3 +- libs/langchain/langchain/tools/arxiv/tool.py | 3 +- .../form_recognizer.py | 3 +- .../image_analysis.py | 3 +- .../azure_cognitive_services/speech2text.py | 3 +- .../azure_cognitive_services/text2speech.py | 3 +- libs/langchain/langchain/tools/base.py | 88 ++++++++----------- .../tools/dataforseo_api_search/tool.py | 3 +- .../langchain/tools/ddg_search/tool.py | 3 +- .../langchain/tools/file_management/copy.py | 3 +- .../langchain/tools/file_management/delete.py | 3 +- .../tools/file_management/file_search.py | 3 +- .../tools/file_management/list_dir.py | 3 +- .../langchain/tools/file_management/move.py | 3 +- .../langchain/tools/file_management/read.py | 3 +- .../langchain/tools/file_management/utils.py | 2 +- .../langchain/tools/file_management/write.py | 3 +- libs/langchain/langchain/tools/github/tool.py | 3 +- libs/langchain/langchain/tools/gmail/base.py | 3 +- .../langchain/tools/gmail/create_draft.py | 3 +- .../langchain/tools/gmail/get_message.py | 3 +- .../langchain/tools/gmail/get_thread.py | 3 +- .../langchain/langchain/tools/gmail/search.py | 3 +- .../langchain/tools/gmail/send_message.py | 3 +- .../langchain/tools/google_places/tool.py | 3 +- .../langchain/tools/google_serper/tool.py | 3 +- libs/langchain/langchain/tools/human/tool.py | 3 +- libs/langchain/langchain/tools/jira/tool.py | 3 +- libs/langchain/langchain/tools/json/tool.py | 2 +- .../langchain/tools/multion/create_session.py | 3 +- .../langchain/tools/multion/update_session.py | 3 +- libs/langchain/langchain/tools/nuclia/tool.py | 2 +- .../langchain/tools/office365/base.py | 3 +- .../tools/office365/create_draft_message.py | 3 +- .../tools/office365/events_search.py | 3 +- .../tools/office365/messages_search.py | 3 +- .../langchain/tools/office365/send_event.py | 3 +- .../langchain/tools/office365/send_message.py | 3 +- .../tools/openapi/utils/api_models.py | 4 +- .../langchain/tools/openweathermap/tool.py | 3 +- .../langchain/tools/playwright/base.py | 3 +- .../langchain/tools/playwright/click.py | 3 +- .../tools/playwright/current_page.py | 3 +- .../tools/playwright/extract_hyperlinks.py | 3 +- .../tools/playwright/extract_text.py | 3 +- .../tools/playwright/get_elements.py | 3 +- .../langchain/tools/playwright/navigate.py | 3 +- .../tools/playwright/navigate_back.py | 3 +- libs/langchain/langchain/tools/plugin.py | 2 +- .../langchain/langchain/tools/powerbi/tool.py | 3 +- libs/langchain/langchain/tools/pubmed/tool.py | 3 +- libs/langchain/langchain/tools/python/tool.py | 3 +- .../langchain/tools/requests/tool.py | 2 +- .../langchain/tools/scenexplain/tool.py | 3 +- .../langchain/tools/searx_search/tool.py | 3 +- libs/langchain/langchain/tools/shell/tool.py | 3 +- libs/langchain/langchain/tools/sleep/tool.py | 3 +- .../langchain/tools/spark_sql/tool.py | 2 +- .../langchain/tools/sql_database/tool.py | 2 +- .../tools/steamship_image_generation/tool.py | 3 +- .../langchain/tools/vectorstore/tool.py | 3 +- libs/langchain/langchain/tools/zapier/tool.py | 3 +- .../langchain/utilities/alpha_vantage.py | 2 +- libs/langchain/langchain/utilities/arxiv.py | 3 +- .../langchain/utilities/awslambda.py | 2 +- libs/langchain/langchain/utilities/bibtex.py | 2 +- .../langchain/utilities/bing_search.py | 2 +- .../langchain/utilities/brave_search.py | 2 +- .../utilities/dalle_image_generator.py | 3 +- .../utilities/dataforseo_api_search.py | 2 +- .../langchain/utilities/duckduckgo_search.py | 3 +- libs/langchain/langchain/utilities/github.py | 3 +- .../langchain/utilities/golden_query.py | 2 +- .../langchain/utilities/google_places_api.py | 3 +- .../langchain/utilities/google_search.py | 3 +- .../langchain/utilities/google_serper.py | 3 +- libs/langchain/langchain/utilities/graphql.py | 2 +- libs/langchain/langchain/utilities/jira.py | 3 +- .../langchain/utilities/metaphor_search.py | 2 +- libs/langchain/langchain/utilities/openapi.py | 3 +- .../langchain/utilities/openweathermap.py | 3 +- libs/langchain/langchain/utilities/powerbi.py | 3 +- libs/langchain/langchain/utilities/pubmed.py | 4 +- libs/langchain/langchain/utilities/python.py | 2 +- .../langchain/langchain/utilities/requests.py | 3 +- .../langchain/utilities/scenexplain.py | 2 +- .../langchain/utilities/searx_search.py | 9 +- libs/langchain/langchain/utilities/serpapi.py | 2 +- .../utilities/tensorflow_datasets.py | 3 +- libs/langchain/langchain/utilities/twilio.py | 3 +- .../langchain/utilities/wikipedia.py | 3 +- .../langchain/utilities/wolfram_alpha.py | 3 +- libs/langchain/langchain/utilities/zapier.py | 2 +- .../langchain/vectorstores/azuresearch.py | 2 +- libs/langchain/langchain/vectorstores/base.py | 3 +- .../langchain/vectorstores/clickhouse.py | 3 +- .../langchain/vectorstores/docarray/base.py | 2 +- .../langchain/vectorstores/myscale.py | 3 +- .../langchain/langchain/vectorstores/redis.py | 2 +- .../langchain/vectorstores/starrocks.py | 3 +- .../langchain/vectorstores/vectara.py | 2 +- .../test_tensorflow_datasets.py | 2 +- .../retrievers/docarray/fixtures.py | 3 +- .../utilities/test_tensorflow_datasets.py | 2 +- .../tests/mock_servers/robot/server.py | 3 +- .../tests/unit_tests/_api/test_deprecation.py | 2 +- .../callbacks/fake_callback_handler.py | 3 +- .../evaluation/agents/test_eval_chain.py | 2 +- .../tests/unit_tests/llms/fake_llm.py | 3 +- .../output_parsers/test_pydantic_parser.py | 3 +- .../tools/openapi/test_api_models.py | 2 +- .../tests/unit_tests/tools/test_base.py | 21 +---- 387 files changed, 509 insertions(+), 766 deletions(-) create mode 100644 libs/experimental/langchain_experimental/pydantic_v1/__init__.py create mode 100644 libs/experimental/langchain_experimental/pydantic_v1/dataclasses.py create mode 100644 libs/experimental/langchain_experimental/pydantic_v1/main.py create mode 100644 libs/langchain/langchain/pydantic_v1/__init__.py create mode 100644 libs/langchain/langchain/pydantic_v1/dataclasses.py create mode 100644 libs/langchain/langchain/pydantic_v1/main.py diff --git a/libs/experimental/langchain_experimental/__init__.py b/libs/experimental/langchain_experimental/__init__.py index 79a9f33dd41..e69de29bb2d 100644 --- a/libs/experimental/langchain_experimental/__init__.py +++ b/libs/experimental/langchain_experimental/__init__.py @@ -1,24 +0,0 @@ -import importlib -import sys - -## Create namespaces for pydantic v1 and v2. -# This code must stay at the top of the file before other modules may -# attempt to import pydantic since it adds pydantic_v1 and pydantic_v2 to sys.modules. -# -# This hack is done for the following reasons: -# * Langchain will attempt to remain compatible with both pydantic v1 and v2 since -# both dependencies and dependents may be stuck on either version of v1 or v2. -# * Creating namespaces for pydantic v1 and v2 should allow us to write code that -# unambiguously uses either v1 or v2 API. -# * This change is easier to roll out and roll back. - -try: - pydantic_v1 = importlib.import_module("pydantic.v1") -except ImportError: - pydantic_v1 = importlib.import_module("pydantic") - -if "pydantic_v1" not in sys.modules: - # Use a conditional because langchain experimental - # will use the same strategy to add pydantic_v1 to sys.modules - # and may run prior to langchain core package. - sys.modules["pydantic_v1"] = pydantic_v1 diff --git a/libs/experimental/langchain_experimental/autonomous_agents/autogpt/agent.py b/libs/experimental/langchain_experimental/autonomous_agents/autogpt/agent.py index 528c092902a..5872f0fd744 100644 --- a/libs/experimental/langchain_experimental/autonomous_agents/autogpt/agent.py +++ b/libs/experimental/langchain_experimental/autonomous_agents/autogpt/agent.py @@ -13,7 +13,6 @@ from langchain.schema.messages import AIMessage, HumanMessage, SystemMessage from langchain.tools.base import BaseTool from langchain.tools.human.tool import HumanInputRun from langchain.vectorstores.base import VectorStoreRetriever -from pydantic_v1 import ValidationError from langchain_experimental.autonomous_agents.autogpt.output_parser import ( AutoGPTOutputParser, @@ -23,6 +22,7 @@ from langchain_experimental.autonomous_agents.autogpt.prompt import AutoGPTPromp from langchain_experimental.autonomous_agents.autogpt.prompt_generator import ( FINISH_NAME, ) +from langchain_experimental.pydantic_v1 import ValidationError class AutoGPT: diff --git a/libs/experimental/langchain_experimental/autonomous_agents/autogpt/memory.py b/libs/experimental/langchain_experimental/autonomous_agents/autogpt/memory.py index 767699a98ae..549a9955633 100644 --- a/libs/experimental/langchain_experimental/autonomous_agents/autogpt/memory.py +++ b/libs/experimental/langchain_experimental/autonomous_agents/autogpt/memory.py @@ -2,7 +2,8 @@ from typing import Any, Dict, List from langchain.memory.chat_memory import BaseChatMemory, get_prompt_input_key from langchain.vectorstores.base import VectorStoreRetriever -from pydantic_v1 import Field + +from langchain_experimental.pydantic_v1 import Field class AutoGPTMemory(BaseChatMemory): diff --git a/libs/experimental/langchain_experimental/autonomous_agents/autogpt/prompt.py b/libs/experimental/langchain_experimental/autonomous_agents/autogpt/prompt.py index 551b0dca5dc..68da11b0c3b 100644 --- a/libs/experimental/langchain_experimental/autonomous_agents/autogpt/prompt.py +++ b/libs/experimental/langchain_experimental/autonomous_agents/autogpt/prompt.py @@ -7,9 +7,9 @@ from langchain.prompts.chat import ( from langchain.schema.messages import BaseMessage, HumanMessage, SystemMessage from langchain.tools.base import BaseTool from langchain.vectorstores.base import VectorStoreRetriever -from pydantic_v1 import BaseModel from langchain_experimental.autonomous_agents.autogpt.prompt_generator import get_prompt +from langchain_experimental.pydantic_v1 import BaseModel class AutoGPTPrompt(BaseChatPromptTemplate, BaseModel): diff --git a/libs/experimental/langchain_experimental/autonomous_agents/baby_agi/baby_agi.py b/libs/experimental/langchain_experimental/autonomous_agents/baby_agi/baby_agi.py index a08bf3fdd36..6dd5d15b146 100644 --- a/libs/experimental/langchain_experimental/autonomous_agents/baby_agi/baby_agi.py +++ b/libs/experimental/langchain_experimental/autonomous_agents/baby_agi/baby_agi.py @@ -6,7 +6,6 @@ from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.schema.language_model import BaseLanguageModel from langchain.vectorstores.base import VectorStore -from pydantic_v1 import BaseModel, Field from langchain_experimental.autonomous_agents.baby_agi.task_creation import ( TaskCreationChain, @@ -17,6 +16,7 @@ from langchain_experimental.autonomous_agents.baby_agi.task_execution import ( from langchain_experimental.autonomous_agents.baby_agi.task_prioritization import ( TaskPrioritizationChain, ) +from langchain_experimental.pydantic_v1 import BaseModel, Field class BabyAGI(Chain, BaseModel): diff --git a/libs/experimental/langchain_experimental/autonomous_agents/hugginggpt/task_planner.py b/libs/experimental/langchain_experimental/autonomous_agents/hugginggpt/task_planner.py index 0ba026a06f2..e1228161cf7 100644 --- a/libs/experimental/langchain_experimental/autonomous_agents/hugginggpt/task_planner.py +++ b/libs/experimental/langchain_experimental/autonomous_agents/hugginggpt/task_planner.py @@ -13,7 +13,8 @@ from langchain.prompts.chat import ( SystemMessagePromptTemplate, ) from langchain.tools.base import BaseTool -from pydantic_v1 import BaseModel + +from langchain_experimental.pydantic_v1 import BaseModel DEMONSTRATIONS = [ { diff --git a/libs/experimental/langchain_experimental/cpal/models.py b/libs/experimental/langchain_experimental/cpal/models.py index 7f53a8e3535..62c41e5e14d 100644 --- a/libs/experimental/langchain_experimental/cpal/models.py +++ b/libs/experimental/langchain_experimental/cpal/models.py @@ -6,9 +6,15 @@ from typing import Any, Optional, Union import duckdb import pandas as pd from langchain.graphs.networkx_graph import NetworkxEntityGraph -from pydantic_v1 import BaseModel, Field, PrivateAttr, root_validator, validator from langchain_experimental.cpal.constants import Constant +from langchain_experimental.pydantic_v1 import ( + BaseModel, + Field, + PrivateAttr, + root_validator, + validator, +) class NarrativeModel(BaseModel): diff --git a/libs/experimental/langchain_experimental/generative_agents/generative_agent.py b/libs/experimental/langchain_experimental/generative_agents/generative_agent.py index ba0f49b5fab..8fcc4b8413c 100644 --- a/libs/experimental/langchain_experimental/generative_agents/generative_agent.py +++ b/libs/experimental/langchain_experimental/generative_agents/generative_agent.py @@ -5,9 +5,9 @@ from typing import Any, Dict, List, Optional, Tuple from langchain.chains import LLMChain from langchain.prompts import PromptTemplate from langchain.schema.language_model import BaseLanguageModel -from pydantic_v1 import BaseModel, Field from langchain_experimental.generative_agents.memory import GenerativeAgentMemory +from langchain_experimental.pydantic_v1 import BaseModel, Field class GenerativeAgent(BaseModel): diff --git a/libs/experimental/langchain_experimental/llms/anthropic_functions.py b/libs/experimental/langchain_experimental/llms/anthropic_functions.py index 9a5d14f3b52..958ba254d56 100644 --- a/libs/experimental/langchain_experimental/llms/anthropic_functions.py +++ b/libs/experimental/langchain_experimental/llms/anthropic_functions.py @@ -19,7 +19,8 @@ from langchain.schema.messages import ( BaseMessage, SystemMessage, ) -from pydantic_v1 import root_validator + +from langchain_experimental.pydantic_v1 import root_validator prompt = """In addition to responding, you can use tools. \ You have access to the following tools. diff --git a/libs/experimental/langchain_experimental/llms/jsonformer_decoder.py b/libs/experimental/langchain_experimental/llms/jsonformer_decoder.py index 6487e9a770f..1cb874fbe05 100644 --- a/libs/experimental/langchain_experimental/llms/jsonformer_decoder.py +++ b/libs/experimental/langchain_experimental/llms/jsonformer_decoder.py @@ -6,7 +6,8 @@ from typing import TYPE_CHECKING, Any, List, Optional, cast from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.huggingface_pipeline import HuggingFacePipeline -from pydantic_v1 import Field, root_validator + +from langchain_experimental.pydantic_v1 import Field, root_validator if TYPE_CHECKING: import jsonformer diff --git a/libs/experimental/langchain_experimental/llms/rellm_decoder.py b/libs/experimental/langchain_experimental/llms/rellm_decoder.py index 2ada412415f..09d7bf4b6b8 100644 --- a/libs/experimental/langchain_experimental/llms/rellm_decoder.py +++ b/libs/experimental/langchain_experimental/llms/rellm_decoder.py @@ -6,7 +6,8 @@ from typing import TYPE_CHECKING, Any, List, Optional, cast from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.huggingface_pipeline import HuggingFacePipeline from langchain.llms.utils import enforce_stop_tokens -from pydantic_v1 import Field, root_validator + +from langchain_experimental.pydantic_v1 import Field, root_validator if TYPE_CHECKING: import rellm diff --git a/libs/experimental/langchain_experimental/pal_chain/base.py b/libs/experimental/langchain_experimental/pal_chain/base.py index 852bb812751..6717c9f4a13 100644 --- a/libs/experimental/langchain_experimental/pal_chain/base.py +++ b/libs/experimental/langchain_experimental/pal_chain/base.py @@ -15,10 +15,10 @@ from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.schema.language_model import BaseLanguageModel from langchain.utilities import PythonREPL -from pydantic_v1 import Extra, Field from langchain_experimental.pal_chain.colored_object_prompt import COLORED_OBJECT_PROMPT from langchain_experimental.pal_chain.math_prompt import MATH_PROMPT +from langchain_experimental.pydantic_v1 import Extra, Field COMMAND_EXECUTION_FUNCTIONS = ["system", "exec", "execfile", "eval"] diff --git a/libs/experimental/langchain_experimental/plan_and_execute/agent_executor.py b/libs/experimental/langchain_experimental/plan_and_execute/agent_executor.py index 018b079d749..9c50bad650d 100644 --- a/libs/experimental/langchain_experimental/plan_and_execute/agent_executor.py +++ b/libs/experimental/langchain_experimental/plan_and_execute/agent_executor.py @@ -5,7 +5,6 @@ from langchain.callbacks.manager import ( CallbackManagerForChainRun, ) from langchain.chains.base import Chain -from pydantic_v1 import Field from langchain_experimental.plan_and_execute.executors.base import BaseExecutor from langchain_experimental.plan_and_execute.planners.base import BasePlanner @@ -13,6 +12,7 @@ from langchain_experimental.plan_and_execute.schema import ( BaseStepContainer, ListStepContainer, ) +from langchain_experimental.pydantic_v1 import Field class PlanAndExecute(Chain): diff --git a/libs/experimental/langchain_experimental/plan_and_execute/executors/base.py b/libs/experimental/langchain_experimental/plan_and_execute/executors/base.py index c009ba17283..a65716de29a 100644 --- a/libs/experimental/langchain_experimental/plan_and_execute/executors/base.py +++ b/libs/experimental/langchain_experimental/plan_and_execute/executors/base.py @@ -3,9 +3,9 @@ from typing import Any from langchain.callbacks.manager import Callbacks from langchain.chains.base import Chain -from pydantic_v1 import BaseModel from langchain_experimental.plan_and_execute.schema import StepResponse +from langchain_experimental.pydantic_v1 import BaseModel class BaseExecutor(BaseModel): diff --git a/libs/experimental/langchain_experimental/plan_and_execute/planners/base.py b/libs/experimental/langchain_experimental/plan_and_execute/planners/base.py index afe02acfe09..e79c564f807 100644 --- a/libs/experimental/langchain_experimental/plan_and_execute/planners/base.py +++ b/libs/experimental/langchain_experimental/plan_and_execute/planners/base.py @@ -3,9 +3,9 @@ from typing import Any, List, Optional from langchain.callbacks.manager import Callbacks from langchain.chains.llm import LLMChain -from pydantic_v1 import BaseModel from langchain_experimental.plan_and_execute.schema import Plan, PlanOutputParser +from langchain_experimental.pydantic_v1 import BaseModel class BasePlanner(BaseModel): diff --git a/libs/experimental/langchain_experimental/plan_and_execute/schema.py b/libs/experimental/langchain_experimental/plan_and_execute/schema.py index 4b67c17190d..41a323880a0 100644 --- a/libs/experimental/langchain_experimental/plan_and_execute/schema.py +++ b/libs/experimental/langchain_experimental/plan_and_execute/schema.py @@ -2,7 +2,8 @@ from abc import abstractmethod from typing import List, Tuple from langchain.schema import BaseOutputParser -from pydantic_v1 import BaseModel, Field + +from langchain_experimental.pydantic_v1 import BaseModel, Field class Step(BaseModel): diff --git a/libs/experimental/langchain_experimental/pydantic_v1/__init__.py b/libs/experimental/langchain_experimental/pydantic_v1/__init__.py new file mode 100644 index 00000000000..859822531ec --- /dev/null +++ b/libs/experimental/langchain_experimental/pydantic_v1/__init__.py @@ -0,0 +1,23 @@ +from importlib import metadata + +## Create namespaces for pydantic v1 and v2. +# This code must stay at the top of the file before other modules may +# attempt to import pydantic since it adds pydantic_v1 and pydantic_v2 to sys.modules. +# +# This hack is done for the following reasons: +# * Langchain will attempt to remain compatible with both pydantic v1 and v2 since +# both dependencies and dependents may be stuck on either version of v1 or v2. +# * Creating namespaces for pydantic v1 and v2 should allow us to write code that +# unambiguously uses either v1 or v2 API. +# * This change is easier to roll out and roll back. + +try: + from pydantic.v1 import * # noqa: F403 +except ImportError: + from pydantic import * # noqa: F403 + + +try: + _PYDANTIC_MAJOR_VERSION: int = int(metadata.version("pydantic").split(".")[0]) +except metadata.PackageNotFoundError: + _PYDANTIC_MAJOR_VERSION = 0 diff --git a/libs/experimental/langchain_experimental/pydantic_v1/dataclasses.py b/libs/experimental/langchain_experimental/pydantic_v1/dataclasses.py new file mode 100644 index 00000000000..bb7253c29d7 --- /dev/null +++ b/libs/experimental/langchain_experimental/pydantic_v1/dataclasses.py @@ -0,0 +1,4 @@ +try: + from pydantic.v1.dataclasses import * # noqa: F403 +except ImportError: + from pydantic.dataclasses import * # noqa: F403 diff --git a/libs/experimental/langchain_experimental/pydantic_v1/main.py b/libs/experimental/langchain_experimental/pydantic_v1/main.py new file mode 100644 index 00000000000..4b8f1670e13 --- /dev/null +++ b/libs/experimental/langchain_experimental/pydantic_v1/main.py @@ -0,0 +1,4 @@ +try: + from pydantic.v1.main import * # noqa: F403 +except ImportError: + from pydantic.main import * # noqa: F403 diff --git a/libs/experimental/langchain_experimental/smart_llm/base.py b/libs/experimental/langchain_experimental/smart_llm/base.py index e637a56d3ba..8aff6a293a3 100644 --- a/libs/experimental/langchain_experimental/smart_llm/base.py +++ b/libs/experimental/langchain_experimental/smart_llm/base.py @@ -13,7 +13,8 @@ from langchain.prompts.chat import ( HumanMessagePromptTemplate, ) from langchain.schema import LLMResult, PromptValue -from pydantic_v1 import Extra, root_validator + +from langchain_experimental.pydantic_v1 import Extra, root_validator class SmartLLMChain(Chain): diff --git a/libs/experimental/langchain_experimental/sql/base.py b/libs/experimental/langchain_experimental/sql/base.py index f3abd774d24..fcc664a75d0 100644 --- a/libs/experimental/langchain_experimental/sql/base.py +++ b/libs/experimental/langchain_experimental/sql/base.py @@ -13,7 +13,8 @@ from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.tools.sql_database.prompt import QUERY_CHECKER from langchain.utilities.sql_database import SQLDatabase -from pydantic_v1 import Extra, Field, root_validator + +from langchain_experimental.pydantic_v1 import Extra, Field, root_validator INTERMEDIATE_STEPS_KEY = "intermediate_steps" diff --git a/libs/experimental/langchain_experimental/tot/base.py b/libs/experimental/langchain_experimental/tot/base.py index 33dca6dc01b..b423525e45c 100644 --- a/libs/experimental/langchain_experimental/tot/base.py +++ b/libs/experimental/langchain_experimental/tot/base.py @@ -20,8 +20,8 @@ from langchain.callbacks.manager import ( CallbackManagerForChainRun, ) from langchain.chains.base import Chain -from pydantic_v1 import Extra +from langchain_experimental.pydantic_v1 import Extra from langchain_experimental.tot.checker import ToTChecker from langchain_experimental.tot.controller import ToTController from langchain_experimental.tot.memory import ToTDFSMemory diff --git a/libs/experimental/langchain_experimental/tot/thought.py b/libs/experimental/langchain_experimental/tot/thought.py index 711d17a102b..35bc2dfaffa 100644 --- a/libs/experimental/langchain_experimental/tot/thought.py +++ b/libs/experimental/langchain_experimental/tot/thought.py @@ -3,7 +3,7 @@ from __future__ import annotations from enum import Enum from typing import Set -from pydantic_v1 import BaseModel, Field +from langchain_experimental.pydantic_v1 import BaseModel, Field class ThoughtValidity(Enum): diff --git a/libs/experimental/langchain_experimental/tot/thought_generation.py b/libs/experimental/langchain_experimental/tot/thought_generation.py index f855efdaee8..8a7a665663b 100644 --- a/libs/experimental/langchain_experimental/tot/thought_generation.py +++ b/libs/experimental/langchain_experimental/tot/thought_generation.py @@ -11,8 +11,8 @@ from typing import Any, Dict, List, Tuple from langchain.chains.llm import LLMChain from langchain.prompts.base import BasePromptTemplate -from pydantic_v1 import Field +from langchain_experimental.pydantic_v1 import Field from langchain_experimental.tot.prompts import COT_PROMPT, PROPOSE_PROMPT diff --git a/libs/experimental/tests/unit_tests/fake_llm.py b/libs/experimental/tests/unit_tests/fake_llm.py index 4e1a663056a..a0369418758 100644 --- a/libs/experimental/tests/unit_tests/fake_llm.py +++ b/libs/experimental/tests/unit_tests/fake_llm.py @@ -3,7 +3,8 @@ from typing import Any, Dict, List, Mapping, Optional, cast from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM -from pydantic_v1 import validator + +from langchain_experimental.pydantic_v1 import validator class FakeLLM(LLM): diff --git a/libs/langchain/langchain/__init__.py b/libs/langchain/langchain/__init__.py index e3b87d49614..32ad552ecc5 100644 --- a/libs/langchain/langchain/__init__.py +++ b/libs/langchain/langchain/__init__.py @@ -1,38 +1,8 @@ # ruff: noqa: E402 """Main entrypoint into package.""" -import importlib -import sys from importlib import metadata from typing import Optional -## Create namespaces for pydantic v1 and v2. -# This code must stay at the top of the file before other modules may -# attempt to import pydantic since it adds pydantic_v1 and pydantic_v2 to sys.modules. -# -# This hack is done for the following reasons: -# * Langchain will attempt to remain compatible with both pydantic v1 and v2 since -# both dependencies and dependents may be stuck on either version of v1 or v2. -# * Creating namespaces for pydantic v1 and v2 should allow us to write code that -# unambiguously uses either v1 or v2 API. -# * This change is easier to roll out and roll back. - -try: - pydantic_v1 = importlib.import_module("pydantic.v1") -except ImportError: - pydantic_v1 = importlib.import_module("pydantic") - -if "pydantic_v1" not in sys.modules: - # Use a conditional because langchain experimental - # will use the same strategy to add pydantic_v1 to sys.modules - # and may run prior to langchain core package. - sys.modules["pydantic_v1"] = pydantic_v1 - -try: - _PYDANTIC_MAJOR_VERSION: int = int(metadata.version("pydantic").split(".")[0]) -except metadata.PackageNotFoundError: - _PYDANTIC_MAJOR_VERSION = 0 - - from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain from langchain.cache import BaseCache from langchain.chains import ( diff --git a/libs/langchain/langchain/agents/agent.py b/libs/langchain/langchain/agents/agent.py index 8791bce5483..1294b1718f8 100644 --- a/libs/langchain/langchain/agents/agent.py +++ b/libs/langchain/langchain/agents/agent.py @@ -10,7 +10,6 @@ from pathlib import Path from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union import yaml -from pydantic_v1 import BaseModel, root_validator from langchain.agents.agent_iterator import AgentExecutorIterator from langchain.agents.agent_types import AgentType @@ -27,6 +26,7 @@ from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.prompts.few_shot import FewShotPromptTemplate from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import ( AgentAction, AgentFinish, diff --git a/libs/langchain/langchain/agents/agent_toolkits/amadeus/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/amadeus/toolkit.py index 652d71211fb..9682e122672 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/amadeus/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/amadeus/toolkit.py @@ -2,9 +2,8 @@ from __future__ import annotations from typing import TYPE_CHECKING, List -from pydantic_v1 import Field - from langchain.agents.agent_toolkits.base import BaseToolkit +from langchain.pydantic_v1 import Field from langchain.tools import BaseTool from langchain.tools.amadeus.closest_airport import AmadeusClosestAirport from langchain.tools.amadeus.flight_search import AmadeusFlightSearch diff --git a/libs/langchain/langchain/agents/agent_toolkits/base.py b/libs/langchain/langchain/agents/agent_toolkits/base.py index 580354d6e2f..5eeccce6b02 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/base.py +++ b/libs/langchain/langchain/agents/agent_toolkits/base.py @@ -2,8 +2,7 @@ from abc import ABC, abstractmethod from typing import List -from pydantic_v1 import BaseModel - +from langchain.pydantic_v1 import BaseModel from langchain.tools import BaseTool diff --git a/libs/langchain/langchain/agents/agent_toolkits/file_management/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/file_management/toolkit.py index 25232d37e99..6f173888d3f 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/file_management/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/file_management/toolkit.py @@ -2,9 +2,8 @@ from __future__ import annotations from typing import List, Optional -from pydantic_v1 import root_validator - from langchain.agents.agent_toolkits.base import BaseToolkit +from langchain.pydantic_v1 import root_validator from langchain.tools import BaseTool from langchain.tools.file_management.copy import CopyFileTool from langchain.tools.file_management.delete import DeleteFileTool diff --git a/libs/langchain/langchain/agents/agent_toolkits/gmail/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/gmail/toolkit.py index 096d32c0d15..cb456d6aab1 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/gmail/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/gmail/toolkit.py @@ -2,9 +2,8 @@ from __future__ import annotations from typing import TYPE_CHECKING, List -from pydantic_v1 import Field - from langchain.agents.agent_toolkits.base import BaseToolkit +from langchain.pydantic_v1 import Field from langchain.tools import BaseTool from langchain.tools.gmail.create_draft import GmailCreateDraft from langchain.tools.gmail.get_message import GmailGetMessage diff --git a/libs/langchain/langchain/agents/agent_toolkits/nla/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/nla/toolkit.py index 314e0419322..38fb1a52197 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/nla/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/nla/toolkit.py @@ -2,10 +2,9 @@ from __future__ import annotations from typing import Any, List, Optional, Sequence -from pydantic_v1 import Field - from langchain.agents.agent_toolkits.base import BaseToolkit from langchain.agents.agent_toolkits.nla.tool import NLATool +from langchain.pydantic_v1 import Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool from langchain.tools.openapi.utils.openapi_utils import OpenAPISpec diff --git a/libs/langchain/langchain/agents/agent_toolkits/office365/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/office365/toolkit.py index 536ce7307b2..781184863ad 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/office365/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/office365/toolkit.py @@ -2,9 +2,8 @@ from __future__ import annotations from typing import TYPE_CHECKING, List -from pydantic_v1 import Field - from langchain.agents.agent_toolkits.base import BaseToolkit +from langchain.pydantic_v1 import Field from langchain.tools import BaseTool from langchain.tools.office365.create_draft_message import O365CreateDraftMessage from langchain.tools.office365.events_search import O365SearchEvents diff --git a/libs/langchain/langchain/agents/agent_toolkits/openapi/planner.py b/libs/langchain/langchain/agents/agent_toolkits/openapi/planner.py index 3dcecc2fe56..d46d14b593e 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/openapi/planner.py +++ b/libs/langchain/langchain/agents/agent_toolkits/openapi/planner.py @@ -5,7 +5,6 @@ from functools import partial from typing import Any, Callable, Dict, List, Optional import yaml -from pydantic_v1 import Field from langchain.agents.agent import AgentExecutor from langchain.agents.agent_toolkits.openapi.planner_prompt import ( @@ -33,6 +32,7 @@ from langchain.chains.llm import LLMChain from langchain.llms.openai import OpenAI from langchain.memory import ReadOnlySharedMemory from langchain.prompts import PromptTemplate +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/agents/agent_toolkits/playwright/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/playwright/toolkit.py index b8ef6407f88..8d12d90e54f 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/playwright/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/playwright/toolkit.py @@ -3,9 +3,8 @@ from __future__ import annotations from typing import TYPE_CHECKING, List, Optional, Type, cast -from pydantic_v1 import Extra, root_validator - from langchain.agents.agent_toolkits.base import BaseToolkit +from langchain.pydantic_v1 import Extra, root_validator from langchain.tools.base import BaseTool from langchain.tools.playwright.base import ( BaseBrowserTool, diff --git a/libs/langchain/langchain/agents/agent_toolkits/powerbi/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/powerbi/toolkit.py index 0caa2377330..2f24a1cb7ab 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/powerbi/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/powerbi/toolkit.py @@ -1,8 +1,6 @@ """Toolkit for interacting with a Power BI dataset.""" from typing import List, Optional, Union -from pydantic_v1 import Field - from langchain.agents.agent_toolkits.base import BaseToolkit from langchain.callbacks.base import BaseCallbackManager from langchain.chains.llm import LLMChain @@ -13,6 +11,7 @@ from langchain.prompts.chat import ( HumanMessagePromptTemplate, SystemMessagePromptTemplate, ) +from langchain.pydantic_v1 import Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools import BaseTool from langchain.tools.powerbi.prompt import ( diff --git a/libs/langchain/langchain/agents/agent_toolkits/spark_sql/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/spark_sql/toolkit.py index 8b94dfb5011..3b7e1641c72 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/spark_sql/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/spark_sql/toolkit.py @@ -1,9 +1,8 @@ """Toolkit for interacting with Spark SQL.""" from typing import List -from pydantic_v1 import Field - from langchain.agents.agent_toolkits.base import BaseToolkit +from langchain.pydantic_v1 import Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools import BaseTool from langchain.tools.spark_sql.tool import ( diff --git a/libs/langchain/langchain/agents/agent_toolkits/sql/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/sql/toolkit.py index 2e851f625dc..db217a347ae 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/sql/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/sql/toolkit.py @@ -1,9 +1,8 @@ """Toolkit for interacting with an SQL database.""" from typing import List -from pydantic_v1 import Field - from langchain.agents.agent_toolkits.base import BaseToolkit +from langchain.pydantic_v1 import Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools import BaseTool from langchain.tools.sql_database.tool import ( diff --git a/libs/langchain/langchain/agents/agent_toolkits/vectorstore/toolkit.py b/libs/langchain/langchain/agents/agent_toolkits/vectorstore/toolkit.py index 557c2619e77..c9399a9359c 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/vectorstore/toolkit.py +++ b/libs/langchain/langchain/agents/agent_toolkits/vectorstore/toolkit.py @@ -1,10 +1,9 @@ """Toolkit for interacting with a vector store.""" from typing import List -from pydantic_v1 import BaseModel, Field - from langchain.agents.agent_toolkits.base import BaseToolkit from langchain.llms.openai import OpenAI +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools import BaseTool from langchain.tools.vectorstore.tool import ( diff --git a/libs/langchain/langchain/agents/chat/base.py b/libs/langchain/langchain/agents/chat/base.py index cf871ad94e3..dfe97b222f7 100644 --- a/libs/langchain/langchain/agents/chat/base.py +++ b/libs/langchain/langchain/agents/chat/base.py @@ -1,7 +1,5 @@ from typing import Any, List, Optional, Sequence, Tuple -from pydantic_v1 import Field - from langchain.agents.agent import Agent, AgentOutputParser from langchain.agents.chat.output_parser import ChatOutputParser from langchain.agents.chat.prompt import ( @@ -18,6 +16,7 @@ from langchain.prompts.chat import ( HumanMessagePromptTemplate, SystemMessagePromptTemplate, ) +from langchain.pydantic_v1 import Field from langchain.schema import AgentAction, BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/agents/conversational/base.py b/libs/langchain/langchain/agents/conversational/base.py index 324059f98bd..ab5f041ec9b 100644 --- a/libs/langchain/langchain/agents/conversational/base.py +++ b/libs/langchain/langchain/agents/conversational/base.py @@ -3,8 +3,6 @@ from __future__ import annotations from typing import Any, List, Optional, Sequence -from pydantic_v1 import Field - from langchain.agents.agent import Agent, AgentOutputParser from langchain.agents.agent_types import AgentType from langchain.agents.conversational.output_parser import ConvoOutputParser @@ -13,6 +11,7 @@ from langchain.agents.utils import validate_tools_single_input from langchain.callbacks.base import BaseCallbackManager from langchain.chains import LLMChain from langchain.prompts import PromptTemplate +from langchain.pydantic_v1 import Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/agents/conversational_chat/base.py b/libs/langchain/langchain/agents/conversational_chat/base.py index 521c67caf40..5b99593b68e 100644 --- a/libs/langchain/langchain/agents/conversational_chat/base.py +++ b/libs/langchain/langchain/agents/conversational_chat/base.py @@ -3,8 +3,6 @@ from __future__ import annotations from typing import Any, List, Optional, Sequence, Tuple -from pydantic_v1 import Field - from langchain.agents.agent import Agent, AgentOutputParser from langchain.agents.conversational_chat.output_parser import ConvoOutputParser from langchain.agents.conversational_chat.prompt import ( @@ -21,6 +19,7 @@ from langchain.prompts.chat import ( MessagesPlaceholder, SystemMessagePromptTemplate, ) +from langchain.pydantic_v1 import Field from langchain.schema import AgentAction, BaseOutputParser, BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.schema.messages import AIMessage, BaseMessage, HumanMessage diff --git a/libs/langchain/langchain/agents/mrkl/base.py b/libs/langchain/langchain/agents/mrkl/base.py index 90b6d35167a..71b33a92f79 100644 --- a/libs/langchain/langchain/agents/mrkl/base.py +++ b/libs/langchain/langchain/agents/mrkl/base.py @@ -3,8 +3,6 @@ from __future__ import annotations from typing import Any, Callable, List, NamedTuple, Optional, Sequence -from pydantic_v1 import Field - from langchain.agents.agent import Agent, AgentExecutor, AgentOutputParser from langchain.agents.agent_types import AgentType from langchain.agents.mrkl.output_parser import MRKLOutputParser @@ -14,6 +12,7 @@ from langchain.agents.utils import validate_tools_single_input from langchain.callbacks.base import BaseCallbackManager from langchain.chains import LLMChain from langchain.prompts import PromptTemplate +from langchain.pydantic_v1 import Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/agents/openai_functions_agent/base.py b/libs/langchain/langchain/agents/openai_functions_agent/base.py index 52e74c96d35..19d5ebbc433 100644 --- a/libs/langchain/langchain/agents/openai_functions_agent/base.py +++ b/libs/langchain/langchain/agents/openai_functions_agent/base.py @@ -4,8 +4,6 @@ from dataclasses import dataclass from json import JSONDecodeError from typing import Any, List, Optional, Sequence, Tuple, Union -from pydantic_v1 import root_validator - from langchain.agents import BaseSingleActionAgent from langchain.callbacks.base import BaseCallbackManager from langchain.callbacks.manager import Callbacks @@ -16,6 +14,7 @@ from langchain.prompts.chat import ( HumanMessagePromptTemplate, MessagesPlaceholder, ) +from langchain.pydantic_v1 import root_validator from langchain.schema import ( AgentAction, AgentFinish, diff --git a/libs/langchain/langchain/agents/openai_functions_multi_agent/base.py b/libs/langchain/langchain/agents/openai_functions_multi_agent/base.py index b80cfc01947..fcc51227fda 100644 --- a/libs/langchain/langchain/agents/openai_functions_multi_agent/base.py +++ b/libs/langchain/langchain/agents/openai_functions_multi_agent/base.py @@ -4,8 +4,6 @@ from dataclasses import dataclass from json import JSONDecodeError from typing import Any, List, Optional, Sequence, Tuple, Union -from pydantic_v1 import root_validator - from langchain.agents import BaseMultiActionAgent from langchain.callbacks.base import BaseCallbackManager from langchain.callbacks.manager import Callbacks @@ -16,6 +14,7 @@ from langchain.prompts.chat import ( HumanMessagePromptTemplate, MessagesPlaceholder, ) +from langchain.pydantic_v1 import root_validator from langchain.schema import ( AgentAction, AgentFinish, diff --git a/libs/langchain/langchain/agents/react/base.py b/libs/langchain/langchain/agents/react/base.py index f2d3687c9a0..3d2e73ec20e 100644 --- a/libs/langchain/langchain/agents/react/base.py +++ b/libs/langchain/langchain/agents/react/base.py @@ -1,8 +1,6 @@ """Chain that implements the ReAct paper from https://arxiv.org/pdf/2210.03629.pdf.""" from typing import Any, List, Optional, Sequence -from pydantic_v1 import Field - from langchain.agents.agent import Agent, AgentExecutor, AgentOutputParser from langchain.agents.agent_types import AgentType from langchain.agents.react.output_parser import ReActOutputParser @@ -12,6 +10,7 @@ from langchain.agents.tools import Tool from langchain.agents.utils import validate_tools_single_input from langchain.docstore.base import Docstore from langchain.docstore.document import Document +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/agents/self_ask_with_search/base.py b/libs/langchain/langchain/agents/self_ask_with_search/base.py index db4c09230ad..f2db10b4f72 100644 --- a/libs/langchain/langchain/agents/self_ask_with_search/base.py +++ b/libs/langchain/langchain/agents/self_ask_with_search/base.py @@ -1,14 +1,13 @@ """Chain that does self-ask with search.""" from typing import Any, Sequence, Union -from pydantic_v1 import Field - from langchain.agents.agent import Agent, AgentExecutor, AgentOutputParser from langchain.agents.agent_types import AgentType from langchain.agents.self_ask_with_search.output_parser import SelfAskOutputParser from langchain.agents.self_ask_with_search.prompt import PROMPT from langchain.agents.tools import Tool from langchain.agents.utils import validate_tools_single_input +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/agents/structured_chat/base.py b/libs/langchain/langchain/agents/structured_chat/base.py index 3650fb89a52..d325e3463ce 100644 --- a/libs/langchain/langchain/agents/structured_chat/base.py +++ b/libs/langchain/langchain/agents/structured_chat/base.py @@ -1,8 +1,6 @@ import re from typing import Any, List, Optional, Sequence, Tuple -from pydantic_v1 import Field - from langchain.agents.agent import Agent, AgentOutputParser from langchain.agents.structured_chat.output_parser import ( StructuredChatOutputParserWithRetries, @@ -15,6 +13,7 @@ from langchain.prompts.chat import ( HumanMessagePromptTemplate, SystemMessagePromptTemplate, ) +from langchain.pydantic_v1 import Field from langchain.schema import AgentAction, BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.tools import BaseTool diff --git a/libs/langchain/langchain/agents/structured_chat/output_parser.py b/libs/langchain/langchain/agents/structured_chat/output_parser.py index a73492204ba..3049a531fab 100644 --- a/libs/langchain/langchain/agents/structured_chat/output_parser.py +++ b/libs/langchain/langchain/agents/structured_chat/output_parser.py @@ -5,11 +5,10 @@ import logging import re from typing import Optional, Union -from pydantic_v1 import Field - from langchain.agents.agent import AgentOutputParser from langchain.agents.structured_chat.prompt import FORMAT_INSTRUCTIONS from langchain.output_parsers import OutputFixingParser +from langchain.pydantic_v1 import Field from langchain.schema import AgentAction, AgentFinish, OutputParserException from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/callbacks/tracers/schemas.py b/libs/langchain/langchain/callbacks/tracers/schemas.py index 6e7de65b8f8..37f33763ff1 100644 --- a/libs/langchain/langchain/callbacks/tracers/schemas.py +++ b/libs/langchain/langchain/callbacks/tracers/schemas.py @@ -8,8 +8,8 @@ from uuid import UUID from langsmith.schemas import RunBase as BaseRunV2 from langsmith.schemas import RunTypeEnum as RunTypeEnumDep -from pydantic_v1 import BaseModel, Field, root_validator +from langchain.pydantic_v1 import BaseModel, Field, root_validator from langchain.schema import LLMResult diff --git a/libs/langchain/langchain/chains/api/base.py b/libs/langchain/langchain/chains/api/base.py index b8c841b289e..52f4afecfe8 100644 --- a/libs/langchain/langchain/chains/api/base.py +++ b/libs/langchain/langchain/chains/api/base.py @@ -3,8 +3,6 @@ from __future__ import annotations from typing import Any, Dict, List, Optional -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -12,6 +10,7 @@ from langchain.callbacks.manager import ( from langchain.chains.api.prompt import API_RESPONSE_PROMPT, API_URL_PROMPT from langchain.chains.base import Chain from langchain.chains.llm import LLMChain +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.utilities.requests import TextRequestsWrapper diff --git a/libs/langchain/langchain/chains/api/openapi/chain.py b/libs/langchain/langchain/chains/api/openapi/chain.py index 14ca4abc58a..1ef5b3c88f3 100644 --- a/libs/langchain/langchain/chains/api/openapi/chain.py +++ b/libs/langchain/langchain/chains/api/openapi/chain.py @@ -4,7 +4,6 @@ from __future__ import annotations import json from typing import Any, Dict, List, NamedTuple, Optional, cast -from pydantic_v1 import BaseModel, Field from requests import Response from langchain.callbacks.manager import CallbackManagerForChainRun, Callbacks @@ -12,6 +11,7 @@ from langchain.chains.api.openapi.requests_chain import APIRequesterChain from langchain.chains.api.openapi.response_chain import APIResponderChain from langchain.chains.base import Chain from langchain.chains.llm import LLMChain +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools.openapi.utils.api_models import APIOperation from langchain.utilities.requests import Requests diff --git a/libs/langchain/langchain/chains/base.py b/libs/langchain/langchain/chains/base.py index e4ea0d37f0f..5a21dc6a661 100644 --- a/libs/langchain/langchain/chains/base.py +++ b/libs/langchain/langchain/chains/base.py @@ -10,7 +10,6 @@ from pathlib import Path from typing import Any, Dict, List, Optional, Union import yaml -from pydantic_v1 import Field, root_validator, validator import langchain from langchain.callbacks.base import BaseCallbackManager @@ -23,6 +22,7 @@ from langchain.callbacks.manager import ( ) from langchain.load.dump import dumpd from langchain.load.serializable import Serializable +from langchain.pydantic_v1 import Field, root_validator, validator from langchain.schema import RUN_KEY, BaseMemory, RunInfo from langchain.schema.runnable import Runnable, RunnableConfig diff --git a/libs/langchain/langchain/chains/combine_documents/base.py b/libs/langchain/langchain/chains/combine_documents/base.py index 43805382a9b..56b87ce2695 100644 --- a/libs/langchain/langchain/chains/combine_documents/base.py +++ b/libs/langchain/langchain/chains/combine_documents/base.py @@ -3,14 +3,13 @@ from abc import ABC, abstractmethod from typing import Any, Dict, List, Optional, Tuple -from pydantic_v1 import Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, ) from langchain.chains.base import Chain from langchain.docstore.document import Document +from langchain.pydantic_v1 import Field from langchain.text_splitter import RecursiveCharacterTextSplitter, TextSplitter diff --git a/libs/langchain/langchain/chains/combine_documents/map_reduce.py b/libs/langchain/langchain/chains/combine_documents/map_reduce.py index 9b38ceaa177..335ffd17a5b 100644 --- a/libs/langchain/langchain/chains/combine_documents/map_reduce.py +++ b/libs/langchain/langchain/chains/combine_documents/map_reduce.py @@ -4,13 +4,12 @@ from __future__ import annotations from typing import Any, Dict, List, Optional, Tuple -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import Callbacks from langchain.chains.combine_documents.base import BaseCombineDocumentsChain from langchain.chains.combine_documents.reduce import ReduceDocumentsChain from langchain.chains.llm import LLMChain from langchain.docstore.document import Document +from langchain.pydantic_v1 import Extra, root_validator class MapReduceDocumentsChain(BaseCombineDocumentsChain): diff --git a/libs/langchain/langchain/chains/combine_documents/map_rerank.py b/libs/langchain/langchain/chains/combine_documents/map_rerank.py index afc12fe6bb3..ddc28a5232a 100644 --- a/libs/langchain/langchain/chains/combine_documents/map_rerank.py +++ b/libs/langchain/langchain/chains/combine_documents/map_rerank.py @@ -4,13 +4,12 @@ from __future__ import annotations from typing import Any, Dict, List, Optional, Sequence, Tuple, Union, cast -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import Callbacks from langchain.chains.combine_documents.base import BaseCombineDocumentsChain from langchain.chains.llm import LLMChain from langchain.docstore.document import Document from langchain.output_parsers.regex import RegexParser +from langchain.pydantic_v1 import Extra, root_validator class MapRerankDocumentsChain(BaseCombineDocumentsChain): diff --git a/libs/langchain/langchain/chains/combine_documents/reduce.py b/libs/langchain/langchain/chains/combine_documents/reduce.py index 3475d8c25a9..9ad2415b12a 100644 --- a/libs/langchain/langchain/chains/combine_documents/reduce.py +++ b/libs/langchain/langchain/chains/combine_documents/reduce.py @@ -4,11 +4,10 @@ from __future__ import annotations from typing import Any, Callable, List, Optional, Protocol, Tuple -from pydantic_v1 import Extra - from langchain.callbacks.manager import Callbacks from langchain.chains.combine_documents.base import BaseCombineDocumentsChain from langchain.docstore.document import Document +from langchain.pydantic_v1 import Extra class CombineDocsProtocol(Protocol): diff --git a/libs/langchain/langchain/chains/combine_documents/refine.py b/libs/langchain/langchain/chains/combine_documents/refine.py index 628b0ceba0b..4cdfa2ad77d 100644 --- a/libs/langchain/langchain/chains/combine_documents/refine.py +++ b/libs/langchain/langchain/chains/combine_documents/refine.py @@ -4,8 +4,6 @@ from __future__ import annotations from typing import Any, Dict, List, Tuple -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import Callbacks from langchain.chains.combine_documents.base import ( BaseCombineDocumentsChain, @@ -13,6 +11,7 @@ from langchain.chains.combine_documents.base import ( from langchain.chains.llm import LLMChain from langchain.docstore.document import Document from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.schema import BasePromptTemplate, format_document diff --git a/libs/langchain/langchain/chains/combine_documents/stuff.py b/libs/langchain/langchain/chains/combine_documents/stuff.py index 0670fb63f24..7d76b5fa266 100644 --- a/libs/langchain/langchain/chains/combine_documents/stuff.py +++ b/libs/langchain/langchain/chains/combine_documents/stuff.py @@ -2,8 +2,6 @@ from typing import Any, Dict, List, Optional, Tuple -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import Callbacks from langchain.chains.combine_documents.base import ( BaseCombineDocumentsChain, @@ -11,6 +9,7 @@ from langchain.chains.combine_documents.base import ( from langchain.chains.llm import LLMChain from langchain.docstore.document import Document from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.schema import BasePromptTemplate, format_document diff --git a/libs/langchain/langchain/chains/constitutional_ai/models.py b/libs/langchain/langchain/chains/constitutional_ai/models.py index 64318281089..74e6a562530 100644 --- a/libs/langchain/langchain/chains/constitutional_ai/models.py +++ b/libs/langchain/langchain/chains/constitutional_ai/models.py @@ -1,5 +1,5 @@ """Models for the Constitutional AI chain.""" -from pydantic_v1 import BaseModel +from langchain.pydantic_v1 import BaseModel class ConstitutionalPrinciple(BaseModel): diff --git a/libs/langchain/langchain/chains/conversation/base.py b/libs/langchain/langchain/chains/conversation/base.py index e55bbf3e552..033e73ffefb 100644 --- a/libs/langchain/langchain/chains/conversation/base.py +++ b/libs/langchain/langchain/chains/conversation/base.py @@ -1,11 +1,10 @@ """Chain that carries on a conversation and calls an LLM.""" from typing import Dict, List -from pydantic_v1 import Extra, Field, root_validator - from langchain.chains.conversation.prompt import PROMPT from langchain.chains.llm import LLMChain from langchain.memory.buffer import ConversationBufferMemory +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.schema import BaseMemory, BasePromptTemplate diff --git a/libs/langchain/langchain/chains/conversational_retrieval/base.py b/libs/langchain/langchain/chains/conversational_retrieval/base.py index eb1e396c62d..911094e6d90 100644 --- a/libs/langchain/langchain/chains/conversational_retrieval/base.py +++ b/libs/langchain/langchain/chains/conversational_retrieval/base.py @@ -7,8 +7,6 @@ from abc import abstractmethod from pathlib import Path from typing import Any, Callable, Dict, List, Optional, Tuple, Union -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -20,6 +18,7 @@ from langchain.chains.combine_documents.stuff import StuffDocumentsChain from langchain.chains.conversational_retrieval.prompts import CONDENSE_QUESTION_PROMPT from langchain.chains.llm import LLMChain from langchain.chains.question_answering import load_qa_chain +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.schema import BasePromptTemplate, BaseRetriever, Document from langchain.schema.language_model import BaseLanguageModel from langchain.schema.messages import BaseMessage diff --git a/libs/langchain/langchain/chains/elasticsearch_database/base.py b/libs/langchain/langchain/chains/elasticsearch_database/base.py index 956aac7812e..f4cc3a6837b 100644 --- a/libs/langchain/langchain/chains/elasticsearch_database/base.py +++ b/libs/langchain/langchain/chains/elasticsearch_database/base.py @@ -3,13 +3,12 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.elasticsearch_database.prompts import ANSWER_PROMPT, DSL_PROMPT from langchain.chains.llm import LLMChain from langchain.output_parsers.json import SimpleJsonOutputParser +from langchain.pydantic_v1 import Extra, root_validator from langchain.schema import BaseLLMOutputParser, BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/flare/base.py b/libs/langchain/langchain/chains/flare/base.py index e3008c33305..4c94df2f379 100644 --- a/libs/langchain/langchain/chains/flare/base.py +++ b/libs/langchain/langchain/chains/flare/base.py @@ -5,7 +5,6 @@ from abc import abstractmethod from typing import Any, Dict, List, Optional, Sequence, Tuple import numpy as np -from pydantic_v1 import Field from langchain.callbacks.manager import ( CallbackManagerForChainRun, @@ -18,6 +17,7 @@ from langchain.chains.flare.prompts import ( ) from langchain.chains.llm import LLMChain from langchain.llms import OpenAI +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate, BaseRetriever, Generation from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/graph_qa/arangodb.py b/libs/langchain/langchain/chains/graph_qa/arangodb.py index f9d4fb382f8..d688114480f 100644 --- a/libs/langchain/langchain/chains/graph_qa/arangodb.py +++ b/libs/langchain/langchain/chains/graph_qa/arangodb.py @@ -4,8 +4,6 @@ from __future__ import annotations import re from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.base_language import BaseLanguageModel from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain @@ -16,6 +14,7 @@ from langchain.chains.graph_qa.prompts import ( ) from langchain.chains.llm import LLMChain from langchain.graphs.arangodb_graph import ArangoGraph +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate diff --git a/libs/langchain/langchain/chains/graph_qa/base.py b/libs/langchain/langchain/chains/graph_qa/base.py index 24e076a2ad0..358a3cf411c 100644 --- a/libs/langchain/langchain/chains/graph_qa/base.py +++ b/libs/langchain/langchain/chains/graph_qa/base.py @@ -3,13 +3,12 @@ from __future__ import annotations from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.graph_qa.prompts import ENTITY_EXTRACTION_PROMPT, GRAPH_QA_PROMPT from langchain.chains.llm import LLMChain from langchain.graphs.networkx_graph import NetworkxEntityGraph, get_entities +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/graph_qa/cypher.py b/libs/langchain/langchain/chains/graph_qa/cypher.py index f6faffe639d..015ff5f47b2 100644 --- a/libs/langchain/langchain/chains/graph_qa/cypher.py +++ b/libs/langchain/langchain/chains/graph_qa/cypher.py @@ -4,13 +4,12 @@ from __future__ import annotations import re from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.graph_qa.prompts import CYPHER_GENERATION_PROMPT, CYPHER_QA_PROMPT from langchain.chains.llm import LLMChain from langchain.graphs.neo4j_graph import Neo4jGraph +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/graph_qa/hugegraph.py b/libs/langchain/langchain/chains/graph_qa/hugegraph.py index 4c3577bd7a2..9c11016cd1b 100644 --- a/libs/langchain/langchain/chains/graph_qa/hugegraph.py +++ b/libs/langchain/langchain/chains/graph_qa/hugegraph.py @@ -3,8 +3,6 @@ from __future__ import annotations from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.graph_qa.prompts import ( @@ -13,6 +11,7 @@ from langchain.chains.graph_qa.prompts import ( ) from langchain.chains.llm import LLMChain from langchain.graphs.hugegraph import HugeGraph +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/graph_qa/kuzu.py b/libs/langchain/langchain/chains/graph_qa/kuzu.py index f5750e4d048..8246e92588b 100644 --- a/libs/langchain/langchain/chains/graph_qa/kuzu.py +++ b/libs/langchain/langchain/chains/graph_qa/kuzu.py @@ -3,13 +3,12 @@ from __future__ import annotations from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.graph_qa.prompts import CYPHER_QA_PROMPT, KUZU_GENERATION_PROMPT from langchain.chains.llm import LLMChain from langchain.graphs.kuzu_graph import KuzuGraph +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/graph_qa/nebulagraph.py b/libs/langchain/langchain/chains/graph_qa/nebulagraph.py index 487efedd3ae..09dd52671ba 100644 --- a/libs/langchain/langchain/chains/graph_qa/nebulagraph.py +++ b/libs/langchain/langchain/chains/graph_qa/nebulagraph.py @@ -3,13 +3,12 @@ from __future__ import annotations from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.graph_qa.prompts import CYPHER_QA_PROMPT, NGQL_GENERATION_PROMPT from langchain.chains.llm import LLMChain from langchain.graphs.nebula_graph import NebulaGraph +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/graph_qa/neptune_cypher.py b/libs/langchain/langchain/chains/graph_qa/neptune_cypher.py index e8d6ddf6fe1..8809a665fd7 100644 --- a/libs/langchain/langchain/chains/graph_qa/neptune_cypher.py +++ b/libs/langchain/langchain/chains/graph_qa/neptune_cypher.py @@ -3,8 +3,6 @@ from __future__ import annotations import re from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.base_language import BaseLanguageModel from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain @@ -15,6 +13,7 @@ from langchain.chains.graph_qa.prompts import ( from langchain.chains.llm import LLMChain from langchain.graphs import NeptuneGraph from langchain.prompts.base import BasePromptTemplate +from langchain.pydantic_v1 import Field INTERMEDIATE_STEPS_KEY = "intermediate_steps" diff --git a/libs/langchain/langchain/chains/graph_qa/sparql.py b/libs/langchain/langchain/chains/graph_qa/sparql.py index 3efef4f2528..eb8a365d76a 100644 --- a/libs/langchain/langchain/chains/graph_qa/sparql.py +++ b/libs/langchain/langchain/chains/graph_qa/sparql.py @@ -5,8 +5,6 @@ from __future__ import annotations from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.graph_qa.prompts import ( @@ -18,6 +16,7 @@ from langchain.chains.graph_qa.prompts import ( from langchain.chains.llm import LLMChain from langchain.graphs.rdf_graph import RdfGraph from langchain.prompts.base import BasePromptTemplate +from langchain.pydantic_v1 import Field from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/hyde/base.py b/libs/langchain/langchain/chains/hyde/base.py index 62d11cf7291..75b8c50666f 100644 --- a/libs/langchain/langchain/chains/hyde/base.py +++ b/libs/langchain/langchain/chains/hyde/base.py @@ -7,13 +7,13 @@ from __future__ import annotations from typing import Any, Dict, List, Optional import numpy as np -from pydantic_v1 import Extra from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.hyde.prompts import PROMPT_MAP from langchain.chains.llm import LLMChain from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import Extra from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/llm.py b/libs/langchain/langchain/chains/llm.py index 6d6f6794332..ba8c107305b 100644 --- a/libs/langchain/langchain/chains/llm.py +++ b/libs/langchain/langchain/chains/llm.py @@ -4,8 +4,6 @@ from __future__ import annotations import warnings from typing import Any, Dict, List, Optional, Sequence, Tuple, Union -from pydantic_v1 import Extra, Field - from langchain.callbacks.manager import ( AsyncCallbackManager, AsyncCallbackManagerForChainRun, @@ -16,6 +14,7 @@ from langchain.callbacks.manager import ( from langchain.chains.base import Chain from langchain.load.dump import dumpd from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import Extra, Field from langchain.schema import ( BaseLLMOutputParser, BasePromptTemplate, diff --git a/libs/langchain/langchain/chains/llm_bash/base.py b/libs/langchain/langchain/chains/llm_bash/base.py index 19c0b1356ba..9b1bd568bb5 100644 --- a/libs/langchain/langchain/chains/llm_bash/base.py +++ b/libs/langchain/langchain/chains/llm_bash/base.py @@ -5,12 +5,11 @@ import logging import warnings from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.chains.llm_bash.prompt import PROMPT +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.schema import BasePromptTemplate, OutputParserException from langchain.schema.language_model import BaseLanguageModel from langchain.utilities.bash import BashProcess diff --git a/libs/langchain/langchain/chains/llm_checker/base.py b/libs/langchain/langchain/chains/llm_checker/base.py index f72df0e9868..d72d389398a 100644 --- a/libs/langchain/langchain/chains/llm_checker/base.py +++ b/libs/langchain/langchain/chains/llm_checker/base.py @@ -4,8 +4,6 @@ from __future__ import annotations import warnings from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.llm import LLMChain @@ -17,6 +15,7 @@ from langchain.chains.llm_checker.prompt import ( ) from langchain.chains.sequential import SequentialChain from langchain.prompts import PromptTemplate +from langchain.pydantic_v1 import Extra, root_validator from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/llm_math/base.py b/libs/langchain/langchain/chains/llm_math/base.py index 39cb8cc6a44..fc54999b910 100644 --- a/libs/langchain/langchain/chains/llm_math/base.py +++ b/libs/langchain/langchain/chains/llm_math/base.py @@ -7,7 +7,6 @@ import warnings from typing import Any, Dict, List, Optional import numexpr -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, @@ -16,6 +15,7 @@ from langchain.callbacks.manager import ( from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.chains.llm_math.prompt import PROMPT +from langchain.pydantic_v1 import Extra, root_validator from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/llm_requests.py b/libs/langchain/langchain/chains/llm_requests.py index 3920e397b56..8344c759581 100644 --- a/libs/langchain/langchain/chains/llm_requests.py +++ b/libs/langchain/langchain/chains/llm_requests.py @@ -3,11 +3,10 @@ from __future__ import annotations from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains import LLMChain from langchain.chains.base import Chain +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.utilities.requests import TextRequestsWrapper DEFAULT_HEADERS = { diff --git a/libs/langchain/langchain/chains/llm_summarization_checker/base.py b/libs/langchain/langchain/chains/llm_summarization_checker/base.py index b3f9bdd4fba..0728571eb33 100644 --- a/libs/langchain/langchain/chains/llm_summarization_checker/base.py +++ b/libs/langchain/langchain/chains/llm_summarization_checker/base.py @@ -6,13 +6,12 @@ import warnings from pathlib import Path from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.chains.sequential import SequentialChain from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import Extra, root_validator from langchain.schema.language_model import BaseLanguageModel PROMPTS_DIR = Path(__file__).parent / "prompts" diff --git a/libs/langchain/langchain/chains/llm_symbolic_math/base.py b/libs/langchain/langchain/chains/llm_symbolic_math/base.py index 95fba36464f..c511b8cc373 100644 --- a/libs/langchain/langchain/chains/llm_symbolic_math/base.py +++ b/libs/langchain/langchain/chains/llm_symbolic_math/base.py @@ -4,8 +4,6 @@ from __future__ import annotations import re from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra - from langchain.base_language import BaseLanguageModel from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, @@ -15,6 +13,7 @@ from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.chains.llm_symbolic_math.prompt import PROMPT from langchain.prompts.base import BasePromptTemplate +from langchain.pydantic_v1 import Extra class LLMSymbolicMathChain(Chain): diff --git a/libs/langchain/langchain/chains/mapreduce.py b/libs/langchain/langchain/chains/mapreduce.py index d404f6afc94..0374d12da59 100644 --- a/libs/langchain/langchain/chains/mapreduce.py +++ b/libs/langchain/langchain/chains/mapreduce.py @@ -7,8 +7,6 @@ from __future__ import annotations from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra - from langchain.callbacks.manager import CallbackManagerForChainRun, Callbacks from langchain.chains import ReduceDocumentsChain from langchain.chains.base import Chain @@ -17,6 +15,7 @@ from langchain.chains.combine_documents.map_reduce import MapReduceDocumentsChai from langchain.chains.combine_documents.stuff import StuffDocumentsChain from langchain.chains.llm import LLMChain from langchain.docstore.document import Document +from langchain.pydantic_v1 import Extra from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.text_splitter import TextSplitter diff --git a/libs/langchain/langchain/chains/moderation.py b/libs/langchain/langchain/chains/moderation.py index c07eda1477b..6c31a957f25 100644 --- a/libs/langchain/langchain/chains/moderation.py +++ b/libs/langchain/langchain/chains/moderation.py @@ -1,10 +1,9 @@ """Pass input through a moderation endpoint.""" from typing import Any, Dict, List, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain +from langchain.pydantic_v1 import root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/chains/natbot/base.py b/libs/langchain/langchain/chains/natbot/base.py index 8eec84d0d26..0fbffe6885e 100644 --- a/libs/langchain/langchain/chains/natbot/base.py +++ b/libs/langchain/langchain/chains/natbot/base.py @@ -4,13 +4,12 @@ from __future__ import annotations import warnings from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.chains.natbot.prompt import PROMPT from langchain.llms.openai import OpenAI +from langchain.pydantic_v1 import Extra, root_validator from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/openai_functions/base.py b/libs/langchain/langchain/chains/openai_functions/base.py index f83dddd2544..e023c67b7f3 100644 --- a/libs/langchain/langchain/chains/openai_functions/base.py +++ b/libs/langchain/langchain/chains/openai_functions/base.py @@ -12,8 +12,6 @@ from typing import ( Union, ) -from pydantic_v1 import BaseModel - from langchain.base_language import BaseLanguageModel from langchain.chains import LLMChain from langchain.output_parsers.openai_functions import ( @@ -22,6 +20,7 @@ from langchain.output_parsers.openai_functions import ( PydanticOutputFunctionsParser, ) from langchain.prompts import BasePromptTemplate +from langchain.pydantic_v1 import BaseModel from langchain.schema import BaseLLMOutputParser PYTHON_TO_JSON_TYPES = { diff --git a/libs/langchain/langchain/chains/openai_functions/citation_fuzzy_match.py b/libs/langchain/langchain/chains/openai_functions/citation_fuzzy_match.py index def8414a267..421a7599569 100644 --- a/libs/langchain/langchain/chains/openai_functions/citation_fuzzy_match.py +++ b/libs/langchain/langchain/chains/openai_functions/citation_fuzzy_match.py @@ -1,13 +1,12 @@ from typing import Iterator, List -from pydantic_v1 import BaseModel, Field - from langchain.chains.llm import LLMChain from langchain.chains.openai_functions.utils import get_llm_kwargs from langchain.output_parsers.openai_functions import ( PydanticOutputFunctionsParser, ) from langchain.prompts.chat import ChatPromptTemplate, HumanMessagePromptTemplate +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema.language_model import BaseLanguageModel from langchain.schema.messages import HumanMessage, SystemMessage diff --git a/libs/langchain/langchain/chains/openai_functions/extraction.py b/libs/langchain/langchain/chains/openai_functions/extraction.py index f1eb13790f7..c881537866e 100644 --- a/libs/langchain/langchain/chains/openai_functions/extraction.py +++ b/libs/langchain/langchain/chains/openai_functions/extraction.py @@ -1,7 +1,5 @@ from typing import Any, List -from pydantic_v1 import BaseModel - from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.chains.openai_functions.utils import ( @@ -14,6 +12,7 @@ from langchain.output_parsers.openai_functions import ( PydanticAttrOutputFunctionsParser, ) from langchain.prompts import ChatPromptTemplate +from langchain.pydantic_v1 import BaseModel from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/openai_functions/qa_with_structure.py b/libs/langchain/langchain/chains/openai_functions/qa_with_structure.py index 21a6bfa3380..dff17030a36 100644 --- a/libs/langchain/langchain/chains/openai_functions/qa_with_structure.py +++ b/libs/langchain/langchain/chains/openai_functions/qa_with_structure.py @@ -1,7 +1,5 @@ from typing import Any, List, Optional, Type, Union -from pydantic_v1 import BaseModel, Field - from langchain.chains.llm import LLMChain from langchain.chains.openai_functions.utils import get_llm_kwargs from langchain.output_parsers.openai_functions import ( @@ -10,6 +8,7 @@ from langchain.output_parsers.openai_functions import ( ) from langchain.prompts import PromptTemplate from langchain.prompts.chat import ChatPromptTemplate, HumanMessagePromptTemplate +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import BaseLLMOutputParser from langchain.schema.language_model import BaseLanguageModel from langchain.schema.messages import HumanMessage, SystemMessage diff --git a/libs/langchain/langchain/chains/prompt_selector.py b/libs/langchain/langchain/chains/prompt_selector.py index e39124c5e6f..7726ed7ebf0 100644 --- a/libs/langchain/langchain/chains/prompt_selector.py +++ b/libs/langchain/langchain/chains/prompt_selector.py @@ -1,10 +1,9 @@ from abc import ABC, abstractmethod from typing import Callable, List, Tuple -from pydantic_v1 import BaseModel, Field - from langchain.chat_models.base import BaseChatModel from langchain.llms.base import BaseLLM +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/qa_generation/base.py b/libs/langchain/langchain/chains/qa_generation/base.py index 142f6670cc9..c081060086f 100644 --- a/libs/langchain/langchain/chains/qa_generation/base.py +++ b/libs/langchain/langchain/chains/qa_generation/base.py @@ -3,12 +3,11 @@ from __future__ import annotations import json from typing import Any, Dict, List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.base import Chain from langchain.chains.llm import LLMChain from langchain.chains.qa_generation.prompt import PROMPT_SELECTOR +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.text_splitter import RecursiveCharacterTextSplitter, TextSplitter diff --git a/libs/langchain/langchain/chains/qa_with_sources/base.py b/libs/langchain/langchain/chains/qa_with_sources/base.py index 38c10627a3a..db07d24b233 100644 --- a/libs/langchain/langchain/chains/qa_with_sources/base.py +++ b/libs/langchain/langchain/chains/qa_with_sources/base.py @@ -7,8 +7,6 @@ import re from abc import ABC, abstractmethod from typing import Any, Dict, List, Optional, Tuple -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -26,6 +24,7 @@ from langchain.chains.qa_with_sources.map_reduce_prompt import ( QUESTION_PROMPT, ) from langchain.docstore.document import Document +from langchain.pydantic_v1 import Extra, root_validator from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/qa_with_sources/retrieval.py b/libs/langchain/langchain/chains/qa_with_sources/retrieval.py index da67bdc5d8f..c5d587b464c 100644 --- a/libs/langchain/langchain/chains/qa_with_sources/retrieval.py +++ b/libs/langchain/langchain/chains/qa_with_sources/retrieval.py @@ -2,8 +2,6 @@ from typing import Any, Dict, List -from pydantic_v1 import Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -11,6 +9,7 @@ from langchain.callbacks.manager import ( from langchain.chains.combine_documents.stuff import StuffDocumentsChain from langchain.chains.qa_with_sources.base import BaseQAWithSourcesChain from langchain.docstore.document import Document +from langchain.pydantic_v1 import Field from langchain.schema import BaseRetriever diff --git a/libs/langchain/langchain/chains/qa_with_sources/vector_db.py b/libs/langchain/langchain/chains/qa_with_sources/vector_db.py index 8f92a2749fd..19a491fcb14 100644 --- a/libs/langchain/langchain/chains/qa_with_sources/vector_db.py +++ b/libs/langchain/langchain/chains/qa_with_sources/vector_db.py @@ -3,8 +3,6 @@ import warnings from typing import Any, Dict, List -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -12,6 +10,7 @@ from langchain.callbacks.manager import ( from langchain.chains.combine_documents.stuff import StuffDocumentsChain from langchain.chains.qa_with_sources.base import BaseQAWithSourcesChain from langchain.docstore.document import Document +from langchain.pydantic_v1 import Field, root_validator from langchain.vectorstores.base import VectorStore diff --git a/libs/langchain/langchain/chains/query_constructor/ir.py b/libs/langchain/langchain/chains/query_constructor/ir.py index 7bf0aa9cb09..04eac8be913 100644 --- a/libs/langchain/langchain/chains/query_constructor/ir.py +++ b/libs/langchain/langchain/chains/query_constructor/ir.py @@ -5,7 +5,7 @@ from abc import ABC, abstractmethod from enum import Enum from typing import Any, List, Optional, Sequence, Union -from pydantic_v1 import BaseModel +from langchain.pydantic_v1 import BaseModel class Visitor(ABC): diff --git a/libs/langchain/langchain/chains/query_constructor/schema.py b/libs/langchain/langchain/chains/query_constructor/schema.py index 90447be48cd..54998710615 100644 --- a/libs/langchain/langchain/chains/query_constructor/schema.py +++ b/libs/langchain/langchain/chains/query_constructor/schema.py @@ -1,4 +1,4 @@ -from pydantic_v1 import BaseModel +from langchain.pydantic_v1 import BaseModel class AttributeInfo(BaseModel): diff --git a/libs/langchain/langchain/chains/retrieval_qa/base.py b/libs/langchain/langchain/chains/retrieval_qa/base.py index cd6faa09552..481aab5a3be 100644 --- a/libs/langchain/langchain/chains/retrieval_qa/base.py +++ b/libs/langchain/langchain/chains/retrieval_qa/base.py @@ -6,8 +6,6 @@ import warnings from abc import abstractmethod from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -20,6 +18,7 @@ from langchain.chains.llm import LLMChain from langchain.chains.question_answering import load_qa_chain from langchain.chains.question_answering.stuff_prompt import PROMPT_SELECTOR from langchain.prompts import PromptTemplate +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.schema import BaseRetriever, Document from langchain.schema.language_model import BaseLanguageModel from langchain.vectorstores.base import VectorStore diff --git a/libs/langchain/langchain/chains/router/base.py b/libs/langchain/langchain/chains/router/base.py index f8c156c3310..6bc704b8e20 100644 --- a/libs/langchain/langchain/chains/router/base.py +++ b/libs/langchain/langchain/chains/router/base.py @@ -4,14 +4,13 @@ from __future__ import annotations from abc import ABC from typing import Any, Dict, List, Mapping, NamedTuple, Optional -from pydantic_v1 import Extra - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, Callbacks, ) from langchain.chains.base import Chain +from langchain.pydantic_v1 import Extra class Route(NamedTuple): diff --git a/libs/langchain/langchain/chains/router/embedding_router.py b/libs/langchain/langchain/chains/router/embedding_router.py index b8d9d8d9fa8..f2e0712f89e 100644 --- a/libs/langchain/langchain/chains/router/embedding_router.py +++ b/libs/langchain/langchain/chains/router/embedding_router.py @@ -2,12 +2,11 @@ from __future__ import annotations from typing import Any, Dict, List, Optional, Sequence, Tuple, Type -from pydantic_v1 import Extra - from langchain.callbacks.manager import CallbackManagerForChainRun from langchain.chains.router.base import RouterChain from langchain.docstore.document import Document from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import Extra from langchain.vectorstores.base import VectorStore diff --git a/libs/langchain/langchain/chains/router/llm_router.py b/libs/langchain/langchain/chains/router/llm_router.py index 5ce27026358..74dcf6c0721 100644 --- a/libs/langchain/langchain/chains/router/llm_router.py +++ b/libs/langchain/langchain/chains/router/llm_router.py @@ -3,8 +3,6 @@ from __future__ import annotations from typing import Any, Dict, List, Optional, Type, cast -from pydantic_v1 import root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -12,6 +10,7 @@ from langchain.callbacks.manager import ( from langchain.chains import LLMChain from langchain.chains.router.base import RouterChain from langchain.output_parsers.json import parse_and_check_json_markdown +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseOutputParser, BasePromptTemplate, OutputParserException from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/chains/sequential.py b/libs/langchain/langchain/chains/sequential.py index 7a48577fe2f..7acf33ef08d 100644 --- a/libs/langchain/langchain/chains/sequential.py +++ b/libs/langchain/langchain/chains/sequential.py @@ -1,13 +1,12 @@ """Chain pipeline where the outputs of one step feed directly into next.""" from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, ) from langchain.chains.base import Chain +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils.input import get_color_mapping diff --git a/libs/langchain/langchain/chains/transform.py b/libs/langchain/langchain/chains/transform.py index fb1965f9e8f..66762fa4ab2 100644 --- a/libs/langchain/langchain/chains/transform.py +++ b/libs/langchain/langchain/chains/transform.py @@ -3,13 +3,12 @@ import functools import logging from typing import Any, Awaitable, Callable, Dict, List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, ) from langchain.chains.base import Chain +from langchain.pydantic_v1 import Field logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/chat_models/anyscale.py b/libs/langchain/langchain/chat_models/anyscale.py index 7858d2356b6..2ccae7ca75f 100644 --- a/libs/langchain/langchain/chat_models/anyscale.py +++ b/libs/langchain/langchain/chat_models/anyscale.py @@ -7,13 +7,13 @@ import sys from typing import TYPE_CHECKING, Optional, Set import requests -from pydantic_v1 import Field, root_validator from langchain.adapters.openai import convert_message_to_dict from langchain.chat_models.openai import ( ChatOpenAI, _import_tiktoken, ) +from langchain.pydantic_v1 import Field, root_validator from langchain.schema.messages import BaseMessage from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/chat_models/azure_openai.py b/libs/langchain/langchain/chat_models/azure_openai.py index 5537ddb1129..c5090fd8451 100644 --- a/libs/langchain/langchain/chat_models/azure_openai.py +++ b/libs/langchain/langchain/chat_models/azure_openai.py @@ -4,9 +4,8 @@ from __future__ import annotations import logging from typing import Any, Dict, Mapping -from pydantic_v1 import root_validator - from langchain.chat_models.openai import ChatOpenAI +from langchain.pydantic_v1 import root_validator from langchain.schema import ChatResult from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/chat_models/azureml_endpoint.py b/libs/langchain/langchain/chat_models/azureml_endpoint.py index 7ceb692a685..c0a1eeffeae 100644 --- a/libs/langchain/langchain/chat_models/azureml_endpoint.py +++ b/libs/langchain/langchain/chat_models/azureml_endpoint.py @@ -1,11 +1,10 @@ import json from typing import Any, Dict, List, Optional -from pydantic_v1 import validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.chat_models.base import SimpleChatModel from langchain.llms.azureml_endpoint import AzureMLEndpointClient, ContentFormatterBase +from langchain.pydantic_v1 import validator from langchain.schema.messages import ( AIMessage, BaseMessage, diff --git a/libs/langchain/langchain/chat_models/base.py b/libs/langchain/langchain/chat_models/base.py index 77fb3d1df46..09199e30dc9 100644 --- a/libs/langchain/langchain/chat_models/base.py +++ b/libs/langchain/langchain/chat_models/base.py @@ -14,8 +14,6 @@ from typing import ( cast, ) -from pydantic_v1 import Field, root_validator - import langchain from langchain.callbacks.base import BaseCallbackManager from langchain.callbacks.manager import ( @@ -28,6 +26,7 @@ from langchain.callbacks.manager import ( from langchain.load.dump import dumpd, dumps from langchain.prompts.base import StringPromptValue from langchain.prompts.chat import ChatPromptValue +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import ( ChatGeneration, ChatResult, diff --git a/libs/langchain/langchain/chat_models/ernie.py b/libs/langchain/langchain/chat_models/ernie.py index 463a26e15c7..1ccecf36fe6 100644 --- a/libs/langchain/langchain/chat_models/ernie.py +++ b/libs/langchain/langchain/chat_models/ernie.py @@ -3,10 +3,10 @@ import threading from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.chat_models.base import BaseChatModel +from langchain.pydantic_v1 import root_validator from langchain.schema import ( AIMessage, BaseMessage, diff --git a/libs/langchain/langchain/chat_models/google_palm.py b/libs/langchain/langchain/chat_models/google_palm.py index 47dbe4869e9..cc7c288f890 100644 --- a/libs/langchain/langchain/chat_models/google_palm.py +++ b/libs/langchain/langchain/chat_models/google_palm.py @@ -4,7 +4,6 @@ from __future__ import annotations import logging from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional -from pydantic_v1 import BaseModel, root_validator from tenacity import ( before_sleep_log, retry, @@ -18,6 +17,7 @@ from langchain.callbacks.manager import ( CallbackManagerForLLMRun, ) from langchain.chat_models.base import BaseChatModel +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import ( ChatGeneration, ChatResult, diff --git a/libs/langchain/langchain/chat_models/human.py b/libs/langchain/langchain/chat_models/human.py index 2c99ff8a1bd..6c964c9243c 100644 --- a/libs/langchain/langchain/chat_models/human.py +++ b/libs/langchain/langchain/chat_models/human.py @@ -5,7 +5,6 @@ from io import StringIO from typing import Any, Callable, Dict, List, Mapping, Optional import yaml -from pydantic_v1 import Field from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, @@ -13,6 +12,7 @@ from langchain.callbacks.manager import ( ) from langchain.chat_models.base import BaseChatModel from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Field from langchain.schema.messages import ( BaseMessage, HumanMessage, diff --git a/libs/langchain/langchain/chat_models/jinachat.py b/libs/langchain/langchain/chat_models/jinachat.py index 4c8c621e2a5..7c1e6f90341 100644 --- a/libs/langchain/langchain/chat_models/jinachat.py +++ b/libs/langchain/langchain/chat_models/jinachat.py @@ -15,7 +15,6 @@ from typing import ( Union, ) -from pydantic_v1 import Field, root_validator from tenacity import ( before_sleep_log, retry, @@ -29,6 +28,7 @@ from langchain.callbacks.manager import ( CallbackManagerForLLMRun, ) from langchain.chat_models.base import BaseChatModel +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import ( AIMessage, BaseMessage, diff --git a/libs/langchain/langchain/chat_models/litellm.py b/libs/langchain/langchain/chat_models/litellm.py index 54c91f857ce..d23549dc51c 100644 --- a/libs/langchain/langchain/chat_models/litellm.py +++ b/libs/langchain/langchain/chat_models/litellm.py @@ -15,14 +15,13 @@ from typing import ( Union, ) -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.chat_models.base import BaseChatModel from langchain.llms.base import create_base_retry_decorator +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import ( ChatGeneration, ChatResult, diff --git a/libs/langchain/langchain/chat_models/mlflow_ai_gateway.py b/libs/langchain/langchain/chat_models/mlflow_ai_gateway.py index 7645d6cac75..a1c02abb7d8 100644 --- a/libs/langchain/langchain/chat_models/mlflow_ai_gateway.py +++ b/libs/langchain/langchain/chat_models/mlflow_ai_gateway.py @@ -3,13 +3,12 @@ import logging from functools import partial from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import BaseModel, Extra - from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.chat_models.base import BaseChatModel +from langchain.pydantic_v1 import BaseModel, Extra from langchain.schema import ( ChatGeneration, ChatResult, diff --git a/libs/langchain/langchain/chat_models/openai.py b/libs/langchain/langchain/chat_models/openai.py index 3ec3a2a4928..ea9da5131e5 100644 --- a/libs/langchain/langchain/chat_models/openai.py +++ b/libs/langchain/langchain/chat_models/openai.py @@ -17,8 +17,6 @@ from typing import ( Union, ) -from pydantic_v1 import Field, root_validator - from langchain.adapters.openai import convert_dict_to_message, convert_message_to_dict from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, @@ -26,6 +24,7 @@ from langchain.callbacks.manager import ( ) from langchain.chat_models.base import BaseChatModel from langchain.llms.base import create_base_retry_decorator +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import ChatGeneration, ChatResult from langchain.schema.messages import ( AIMessageChunk, diff --git a/libs/langchain/langchain/chat_models/vertexai.py b/libs/langchain/langchain/chat_models/vertexai.py index e67cb77d5ee..79a80b6b4c4 100644 --- a/libs/langchain/langchain/chat_models/vertexai.py +++ b/libs/langchain/langchain/chat_models/vertexai.py @@ -2,11 +2,10 @@ from dataclasses import dataclass, field from typing import TYPE_CHECKING, Any, Dict, List, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.chat_models.base import BaseChatModel from langchain.llms.vertexai import _VertexAICommon, is_codey_model +from langchain.pydantic_v1 import root_validator from langchain.schema import ( ChatGeneration, ChatResult, diff --git a/libs/langchain/langchain/document_loaders/apify_dataset.py b/libs/langchain/langchain/document_loaders/apify_dataset.py index b923ddac3a0..25658037d6b 100644 --- a/libs/langchain/langchain/document_loaders/apify_dataset.py +++ b/libs/langchain/langchain/document_loaders/apify_dataset.py @@ -1,9 +1,8 @@ from typing import Any, Callable, Dict, List -from pydantic_v1 import BaseModel, root_validator - from langchain.docstore.document import Document from langchain.document_loaders.base import BaseLoader +from langchain.pydantic_v1 import BaseModel, root_validator class ApifyDatasetLoader(BaseLoader, BaseModel): diff --git a/libs/langchain/langchain/document_loaders/blob_loaders/schema.py b/libs/langchain/langchain/document_loaders/blob_loaders/schema.py index 4e1978c446d..59e69c31b21 100644 --- a/libs/langchain/langchain/document_loaders/blob_loaders/schema.py +++ b/libs/langchain/langchain/document_loaders/blob_loaders/schema.py @@ -13,7 +13,7 @@ from io import BufferedReader, BytesIO from pathlib import PurePath from typing import Any, Generator, Iterable, Mapping, Optional, Union -from pydantic_v1 import BaseModel, root_validator +from langchain.pydantic_v1 import BaseModel, root_validator PathLike = Union[str, PurePath] diff --git a/libs/langchain/langchain/document_loaders/docugami.py b/libs/langchain/langchain/document_loaders/docugami.py index db4c8ee7a1e..5eeaf483f8a 100644 --- a/libs/langchain/langchain/document_loaders/docugami.py +++ b/libs/langchain/langchain/document_loaders/docugami.py @@ -6,10 +6,10 @@ from pathlib import Path from typing import Any, Dict, List, Mapping, Optional, Sequence, Union import requests -from pydantic_v1 import BaseModel, root_validator from langchain.docstore.document import Document from langchain.document_loaders.base import BaseLoader +from langchain.pydantic_v1 import BaseModel, root_validator TD_NAME = "{http://www.w3.org/1999/xhtml}td" TABLE_NAME = "{http://www.w3.org/1999/xhtml}table" diff --git a/libs/langchain/langchain/document_loaders/dropbox.py b/libs/langchain/langchain/document_loaders/dropbox.py index 1296e29b2e3..513d19a6d43 100644 --- a/libs/langchain/langchain/document_loaders/dropbox.py +++ b/libs/langchain/langchain/document_loaders/dropbox.py @@ -11,10 +11,9 @@ import tempfile from pathlib import Path from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, root_validator - from langchain.docstore.document import Document from langchain.document_loaders.base import BaseLoader +from langchain.pydantic_v1 import BaseModel, root_validator class DropboxLoader(BaseLoader, BaseModel): diff --git a/libs/langchain/langchain/document_loaders/embaas.py b/libs/langchain/langchain/document_loaders/embaas.py index 0afe0b71984..2b3e6d01a71 100644 --- a/libs/langchain/langchain/document_loaders/embaas.py +++ b/libs/langchain/langchain/document_loaders/embaas.py @@ -3,12 +3,12 @@ import warnings from typing import Any, Dict, Iterator, List, Optional import requests -from pydantic_v1 import BaseModel, root_validator, validator from typing_extensions import NotRequired, TypedDict from langchain.docstore.document import Document from langchain.document_loaders.base import BaseBlobParser, BaseLoader from langchain.document_loaders.blob_loaders import Blob +from langchain.pydantic_v1 import BaseModel, root_validator, validator from langchain.text_splitter import TextSplitter from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/document_loaders/github.py b/libs/langchain/langchain/document_loaders/github.py index e5e840f8105..e3dc44b579c 100644 --- a/libs/langchain/langchain/document_loaders/github.py +++ b/libs/langchain/langchain/document_loaders/github.py @@ -3,10 +3,10 @@ from datetime import datetime from typing import Dict, Iterator, List, Literal, Optional, Union import requests -from pydantic_v1 import BaseModel, root_validator, validator from langchain.docstore.document import Document from langchain.document_loaders.base import BaseLoader +from langchain.pydantic_v1 import BaseModel, root_validator, validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/document_loaders/googledrive.py b/libs/langchain/langchain/document_loaders/googledrive.py index 4da466f8663..881bafbd5ae 100644 --- a/libs/langchain/langchain/document_loaders/googledrive.py +++ b/libs/langchain/langchain/document_loaders/googledrive.py @@ -11,10 +11,9 @@ import os from pathlib import Path from typing import Any, Dict, List, Optional, Sequence, Union -from pydantic_v1 import BaseModel, root_validator, validator - from langchain.docstore.document import Document from langchain.document_loaders.base import BaseLoader +from langchain.pydantic_v1 import BaseModel, root_validator, validator SCOPES = ["https://www.googleapis.com/auth/drive.readonly"] diff --git a/libs/langchain/langchain/document_loaders/onedrive.py b/libs/langchain/langchain/document_loaders/onedrive.py index 87d4f3b7d08..f12cc5cd449 100644 --- a/libs/langchain/langchain/document_loaders/onedrive.py +++ b/libs/langchain/langchain/document_loaders/onedrive.py @@ -8,11 +8,10 @@ from enum import Enum from pathlib import Path from typing import TYPE_CHECKING, Dict, List, Optional, Type, Union -from pydantic_v1 import BaseModel, BaseSettings, Field, FilePath, SecretStr - from langchain.docstore.document import Document from langchain.document_loaders.base import BaseLoader from langchain.document_loaders.onedrive_file import OneDriveFileLoader +from langchain.pydantic_v1 import BaseModel, BaseSettings, Field, FilePath, SecretStr if TYPE_CHECKING: from O365 import Account diff --git a/libs/langchain/langchain/document_loaders/onedrive_file.py b/libs/langchain/langchain/document_loaders/onedrive_file.py index 067a6189016..8cc0e7e3753 100644 --- a/libs/langchain/langchain/document_loaders/onedrive_file.py +++ b/libs/langchain/langchain/document_loaders/onedrive_file.py @@ -3,11 +3,10 @@ from __future__ import annotations import tempfile from typing import TYPE_CHECKING, List -from pydantic_v1 import BaseModel, Field - from langchain.docstore.document import Document from langchain.document_loaders.base import BaseLoader from langchain.document_loaders.unstructured import UnstructuredFileLoader +from langchain.pydantic_v1 import BaseModel, Field if TYPE_CHECKING: from O365.drive import File diff --git a/libs/langchain/langchain/document_loaders/youtube.py b/libs/langchain/langchain/document_loaders/youtube.py index 9998435a369..54cd35af216 100644 --- a/libs/langchain/langchain/document_loaders/youtube.py +++ b/libs/langchain/langchain/document_loaders/youtube.py @@ -6,11 +6,10 @@ from pathlib import Path from typing import Any, Dict, List, Optional, Sequence, Union from urllib.parse import parse_qs, urlparse -from pydantic_v1 import root_validator -from pydantic_v1.dataclasses import dataclass - from langchain.docstore.document import Document from langchain.document_loaders.base import BaseLoader +from langchain.pydantic_v1 import root_validator +from langchain.pydantic_v1.dataclasses import dataclass logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py b/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py index c274c2a1c03..51f166b8c87 100644 --- a/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py +++ b/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py @@ -2,9 +2,9 @@ from typing import Any, Callable, List, Sequence import numpy as np -from pydantic_v1 import BaseModel, Field from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import BaseDocumentTransformer, Document from langchain.utils.math import cosine_similarity diff --git a/libs/langchain/langchain/document_transformers/long_context_reorder.py b/libs/langchain/langchain/document_transformers/long_context_reorder.py index ca126534b28..8da4fc441b5 100644 --- a/libs/langchain/langchain/document_transformers/long_context_reorder.py +++ b/libs/langchain/langchain/document_transformers/long_context_reorder.py @@ -1,8 +1,7 @@ """Reorder documents""" from typing import Any, List, Sequence -from pydantic_v1 import BaseModel - +from langchain.pydantic_v1 import BaseModel from langchain.schema import BaseDocumentTransformer, Document diff --git a/libs/langchain/langchain/document_transformers/openai_functions.py b/libs/langchain/langchain/document_transformers/openai_functions.py index bf2c136271c..f60586410cb 100644 --- a/libs/langchain/langchain/document_transformers/openai_functions.py +++ b/libs/langchain/langchain/document_transformers/openai_functions.py @@ -1,11 +1,10 @@ """Document transformers that use OpenAI Functions models""" from typing import Any, Dict, Optional, Sequence, Type, Union -from pydantic_v1 import BaseModel - from langchain.chains.llm import LLMChain from langchain.chains.openai_functions import create_tagging_chain from langchain.prompts import ChatPromptTemplate +from langchain.pydantic_v1 import BaseModel from langchain.schema import BaseDocumentTransformer, Document from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/embeddings/aleph_alpha.py b/libs/langchain/langchain/embeddings/aleph_alpha.py index 8c3c831a9e9..eb7c28f84a1 100644 --- a/libs/langchain/langchain/embeddings/aleph_alpha.py +++ b/libs/langchain/langchain/embeddings/aleph_alpha.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/embeddings/awa.py b/libs/langchain/langchain/embeddings/awa.py index 44905617a36..c6f844104be 100644 --- a/libs/langchain/langchain/embeddings/awa.py +++ b/libs/langchain/langchain/embeddings/awa.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List -from pydantic_v1 import BaseModel, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, root_validator class AwaEmbeddings(BaseModel, Embeddings): diff --git a/libs/langchain/langchain/embeddings/bedrock.py b/libs/langchain/langchain/embeddings/bedrock.py index ef087ee207f..6b66c0139b2 100644 --- a/libs/langchain/langchain/embeddings/bedrock.py +++ b/libs/langchain/langchain/embeddings/bedrock.py @@ -4,9 +4,8 @@ import os from functools import partial from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator class BedrockEmbeddings(BaseModel, Embeddings): diff --git a/libs/langchain/langchain/embeddings/clarifai.py b/libs/langchain/langchain/embeddings/clarifai.py index c11e967a0a1..0e0d52356a8 100644 --- a/libs/langchain/langchain/embeddings/clarifai.py +++ b/libs/langchain/langchain/embeddings/clarifai.py @@ -1,9 +1,8 @@ import logging from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/embeddings/cohere.py b/libs/langchain/langchain/embeddings/cohere.py index f23544770a3..2377f416825 100644 --- a/libs/langchain/langchain/embeddings/cohere.py +++ b/libs/langchain/langchain/embeddings/cohere.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/embeddings/dashscope.py b/libs/langchain/langchain/embeddings/dashscope.py index 5fb0c5d571c..4c7b7f2b34c 100644 --- a/libs/langchain/langchain/embeddings/dashscope.py +++ b/libs/langchain/langchain/embeddings/dashscope.py @@ -9,7 +9,6 @@ from typing import ( Optional, ) -from pydantic_v1 import BaseModel, Extra, root_validator from requests.exceptions import HTTPError from tenacity import ( before_sleep_log, @@ -20,6 +19,7 @@ from tenacity import ( ) from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/embeddings/deepinfra.py b/libs/langchain/langchain/embeddings/deepinfra.py index 8c7a4c7ec54..79d741b062d 100644 --- a/libs/langchain/langchain/embeddings/deepinfra.py +++ b/libs/langchain/langchain/embeddings/deepinfra.py @@ -1,9 +1,9 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import BaseModel, Extra, root_validator from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env DEFAULT_MODEL_ID = "sentence-transformers/clip-ViT-B-32" diff --git a/libs/langchain/langchain/embeddings/edenai.py b/libs/langchain/langchain/embeddings/edenai.py index 59d3b28829b..5e10ddb166a 100644 --- a/libs/langchain/langchain/embeddings/edenai.py +++ b/libs/langchain/langchain/embeddings/edenai.py @@ -1,8 +1,7 @@ from typing import Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, Field, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.requests import Requests from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/embeddings/embaas.py b/libs/langchain/langchain/embeddings/embaas.py index 37261453c36..011ed22ad53 100644 --- a/libs/langchain/langchain/embeddings/embaas.py +++ b/libs/langchain/langchain/embeddings/embaas.py @@ -1,10 +1,10 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import BaseModel, Extra, root_validator from typing_extensions import NotRequired, TypedDict from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env # Currently supported maximum batch size for embedding requests diff --git a/libs/langchain/langchain/embeddings/fake.py b/libs/langchain/langchain/embeddings/fake.py index 4df6b0239c8..27a91142c8e 100644 --- a/libs/langchain/langchain/embeddings/fake.py +++ b/libs/langchain/langchain/embeddings/fake.py @@ -2,9 +2,9 @@ import hashlib from typing import List import numpy as np -from pydantic_v1 import BaseModel from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel class FakeEmbeddings(Embeddings, BaseModel): diff --git a/libs/langchain/langchain/embeddings/google_palm.py b/libs/langchain/langchain/embeddings/google_palm.py index 6bcec015a74..825f60d8433 100644 --- a/libs/langchain/langchain/embeddings/google_palm.py +++ b/libs/langchain/langchain/embeddings/google_palm.py @@ -3,7 +3,6 @@ from __future__ import annotations import logging from typing import Any, Callable, Dict, List, Optional -from pydantic_v1 import BaseModel, root_validator from tenacity import ( before_sleep_log, retry, @@ -13,6 +12,7 @@ from tenacity import ( ) from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/embeddings/gpt4all.py b/libs/langchain/langchain/embeddings/gpt4all.py index cd8fdb8fc7e..8ce636c5d73 100644 --- a/libs/langchain/langchain/embeddings/gpt4all.py +++ b/libs/langchain/langchain/embeddings/gpt4all.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List -from pydantic_v1 import BaseModel, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, root_validator class GPT4AllEmbeddings(BaseModel, Embeddings): diff --git a/libs/langchain/langchain/embeddings/huggingface.py b/libs/langchain/langchain/embeddings/huggingface.py index cc8012a8e25..35a3ae062be 100644 --- a/libs/langchain/langchain/embeddings/huggingface.py +++ b/libs/langchain/langchain/embeddings/huggingface.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, Field - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, Field DEFAULT_MODEL_NAME = "sentence-transformers/all-mpnet-base-v2" DEFAULT_INSTRUCT_MODEL = "hkunlp/instructor-large" diff --git a/libs/langchain/langchain/embeddings/huggingface_hub.py b/libs/langchain/langchain/embeddings/huggingface_hub.py index db2e563698a..e5204eb0efa 100644 --- a/libs/langchain/langchain/embeddings/huggingface_hub.py +++ b/libs/langchain/langchain/embeddings/huggingface_hub.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env DEFAULT_REPO_ID = "sentence-transformers/all-mpnet-base-v2" diff --git a/libs/langchain/langchain/embeddings/jina.py b/libs/langchain/langchain/embeddings/jina.py index 6b8f2e3232f..3d4a4797e6d 100644 --- a/libs/langchain/langchain/embeddings/jina.py +++ b/libs/langchain/langchain/embeddings/jina.py @@ -2,9 +2,9 @@ import os from typing import Any, Dict, List, Optional import requests -from pydantic_v1 import BaseModel, root_validator from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/embeddings/llamacpp.py b/libs/langchain/langchain/embeddings/llamacpp.py index 750c22cce7c..8c8b2628321 100644 --- a/libs/langchain/langchain/embeddings/llamacpp.py +++ b/libs/langchain/langchain/embeddings/llamacpp.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, Field, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator class LlamaCppEmbeddings(BaseModel, Embeddings): diff --git a/libs/langchain/langchain/embeddings/localai.py b/libs/langchain/langchain/embeddings/localai.py index 025e16c7fd6..ba7a82ebe56 100644 --- a/libs/langchain/langchain/embeddings/localai.py +++ b/libs/langchain/langchain/embeddings/localai.py @@ -15,7 +15,6 @@ from typing import ( Union, ) -from pydantic_v1 import BaseModel, Extra, Field, root_validator from tenacity import ( AsyncRetrying, before_sleep_log, @@ -26,6 +25,7 @@ from tenacity import ( ) from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.utils import get_from_dict_or_env, get_pydantic_field_names logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/embeddings/minimax.py b/libs/langchain/langchain/embeddings/minimax.py index 1253a5569c8..82402ca12b0 100644 --- a/libs/langchain/langchain/embeddings/minimax.py +++ b/libs/langchain/langchain/embeddings/minimax.py @@ -4,7 +4,6 @@ import logging from typing import Any, Callable, Dict, List, Optional import requests -from pydantic_v1 import BaseModel, Extra, root_validator from tenacity import ( before_sleep_log, retry, @@ -13,6 +12,7 @@ from tenacity import ( ) from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/embeddings/mlflow_gateway.py b/libs/langchain/langchain/embeddings/mlflow_gateway.py index d3cf14a08b4..26c91cf7c7d 100644 --- a/libs/langchain/langchain/embeddings/mlflow_gateway.py +++ b/libs/langchain/langchain/embeddings/mlflow_gateway.py @@ -2,9 +2,8 @@ from __future__ import annotations from typing import Any, Iterator, List, Optional -from pydantic_v1 import BaseModel - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel def _chunk(texts: List[str], size: int) -> Iterator[List[str]]: diff --git a/libs/langchain/langchain/embeddings/modelscope_hub.py b/libs/langchain/langchain/embeddings/modelscope_hub.py index 7af03854797..c652e007756 100644 --- a/libs/langchain/langchain/embeddings/modelscope_hub.py +++ b/libs/langchain/langchain/embeddings/modelscope_hub.py @@ -1,8 +1,7 @@ from typing import Any, List, Optional -from pydantic_v1 import BaseModel, Extra - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra class ModelScopeEmbeddings(BaseModel, Embeddings): diff --git a/libs/langchain/langchain/embeddings/mosaicml.py b/libs/langchain/langchain/embeddings/mosaicml.py index 0def3948787..8346bf7cfc1 100644 --- a/libs/langchain/langchain/embeddings/mosaicml.py +++ b/libs/langchain/langchain/embeddings/mosaicml.py @@ -1,9 +1,9 @@ from typing import Any, Dict, List, Mapping, Optional, Tuple import requests -from pydantic_v1 import BaseModel, Extra, root_validator from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/embeddings/nlpcloud.py b/libs/langchain/langchain/embeddings/nlpcloud.py index ce3d6defff8..ab5372d9ead 100644 --- a/libs/langchain/langchain/embeddings/nlpcloud.py +++ b/libs/langchain/langchain/embeddings/nlpcloud.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List -from pydantic_v1 import BaseModel, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/embeddings/octoai_embeddings.py b/libs/langchain/langchain/embeddings/octoai_embeddings.py index 285f0dabebd..c2e1711f12c 100644 --- a/libs/langchain/langchain/embeddings/octoai_embeddings.py +++ b/libs/langchain/langchain/embeddings/octoai_embeddings.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import BaseModel, Extra, Field, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.utils import get_from_dict_or_env DEFAULT_EMBED_INSTRUCTION = "Represent this input: " diff --git a/libs/langchain/langchain/embeddings/openai.py b/libs/langchain/langchain/embeddings/openai.py index 59f70f64c12..9c78e2499e8 100644 --- a/libs/langchain/langchain/embeddings/openai.py +++ b/libs/langchain/langchain/embeddings/openai.py @@ -16,7 +16,6 @@ from typing import ( ) import numpy as np -from pydantic_v1 import BaseModel, Extra, Field, root_validator from tenacity import ( AsyncRetrying, before_sleep_log, @@ -27,6 +26,7 @@ from tenacity import ( ) from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.utils import get_from_dict_or_env, get_pydantic_field_names logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/embeddings/sagemaker_endpoint.py b/libs/langchain/langchain/embeddings/sagemaker_endpoint.py index 29f33b036dc..ee14eca27af 100644 --- a/libs/langchain/langchain/embeddings/sagemaker_endpoint.py +++ b/libs/langchain/langchain/embeddings/sagemaker_endpoint.py @@ -1,9 +1,8 @@ from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - from langchain.embeddings.base import Embeddings from langchain.llms.sagemaker_endpoint import ContentHandlerBase +from langchain.pydantic_v1 import BaseModel, Extra, root_validator class EmbeddingsContentHandler(ContentHandlerBase[List[str], List[List[float]]]): diff --git a/libs/langchain/langchain/embeddings/self_hosted.py b/libs/langchain/langchain/embeddings/self_hosted.py index 1239e57dcf5..e83ed9e8995 100644 --- a/libs/langchain/langchain/embeddings/self_hosted.py +++ b/libs/langchain/langchain/embeddings/self_hosted.py @@ -1,9 +1,8 @@ from typing import Any, Callable, List -from pydantic_v1 import Extra - from langchain.embeddings.base import Embeddings from langchain.llms import SelfHostedPipeline +from langchain.pydantic_v1 import Extra def _embed_documents(pipeline: Any, *args: Any, **kwargs: Any) -> List[List[float]]: diff --git a/libs/langchain/langchain/embeddings/spacy_embeddings.py b/libs/langchain/langchain/embeddings/spacy_embeddings.py index d3d5a55f87e..06a6a0b5dc6 100644 --- a/libs/langchain/langchain/embeddings/spacy_embeddings.py +++ b/libs/langchain/langchain/embeddings/spacy_embeddings.py @@ -1,9 +1,8 @@ import importlib.util from typing import Any, Dict, List -from pydantic_v1 import BaseModel, Extra, root_validator - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra, root_validator class SpacyEmbeddings(BaseModel, Embeddings): diff --git a/libs/langchain/langchain/embeddings/tensorflow_hub.py b/libs/langchain/langchain/embeddings/tensorflow_hub.py index b7542e47aa0..2048163ba70 100644 --- a/libs/langchain/langchain/embeddings/tensorflow_hub.py +++ b/libs/langchain/langchain/embeddings/tensorflow_hub.py @@ -1,8 +1,7 @@ from typing import Any, List -from pydantic_v1 import BaseModel, Extra - from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseModel, Extra DEFAULT_MODEL_URL = "https://tfhub.dev/google/universal-sentence-encoder-multilingual/3" diff --git a/libs/langchain/langchain/embeddings/vertexai.py b/libs/langchain/langchain/embeddings/vertexai.py index 140797d63f8..bb1750c2855 100644 --- a/libs/langchain/langchain/embeddings/vertexai.py +++ b/libs/langchain/langchain/embeddings/vertexai.py @@ -1,9 +1,8 @@ from typing import Dict, List -from pydantic_v1 import root_validator - from langchain.embeddings.base import Embeddings from langchain.llms.vertexai import _VertexAICommon +from langchain.pydantic_v1 import root_validator from langchain.utilities.vertexai import raise_vertex_import_error diff --git a/libs/langchain/langchain/evaluation/agents/trajectory_eval_chain.py b/libs/langchain/langchain/evaluation/agents/trajectory_eval_chain.py index 39e4d8fe150..805a968d01e 100644 --- a/libs/langchain/langchain/evaluation/agents/trajectory_eval_chain.py +++ b/libs/langchain/langchain/evaluation/agents/trajectory_eval_chain.py @@ -18,8 +18,6 @@ from typing import ( cast, ) -from pydantic_v1 import Extra, Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -32,6 +30,7 @@ from langchain.evaluation.agents.trajectory_eval_prompt import ( TOOL_FREE_EVAL_CHAT_PROMPT, ) from langchain.evaluation.schema import AgentTrajectoryEvaluator, LLMEvalChain +from langchain.pydantic_v1 import Extra, Field from langchain.schema import AgentAction, BaseOutputParser, OutputParserException from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/evaluation/comparison/eval_chain.py b/libs/langchain/langchain/evaluation/comparison/eval_chain.py index 795f6760e55..21f623bf0fb 100644 --- a/libs/langchain/langchain/evaluation/comparison/eval_chain.py +++ b/libs/langchain/langchain/evaluation/comparison/eval_chain.py @@ -3,8 +3,6 @@ from __future__ import annotations from typing import Any, Dict, List, Optional, Union -from pydantic_v1 import Extra, Field - from langchain.callbacks.manager import Callbacks from langchain.chains.constitutional_ai.models import ConstitutionalPrinciple from langchain.chains.llm import LLMChain @@ -15,6 +13,7 @@ from langchain.evaluation.criteria.eval_chain import ( ) from langchain.evaluation.schema import LLMEvalChain, PairwiseStringEvaluator from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import Extra, Field from langchain.schema import RUN_KEY, BaseOutputParser from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/evaluation/criteria/eval_chain.py b/libs/langchain/langchain/evaluation/criteria/eval_chain.py index 5bd3694e7dd..dbd34cb6e82 100644 --- a/libs/langchain/langchain/evaluation/criteria/eval_chain.py +++ b/libs/langchain/langchain/evaluation/criteria/eval_chain.py @@ -3,13 +3,12 @@ from __future__ import annotations from enum import Enum from typing import Any, Dict, List, Mapping, Optional, Union -from pydantic_v1 import Extra, Field - from langchain.callbacks.manager import Callbacks from langchain.chains.constitutional_ai.models import ConstitutionalPrinciple from langchain.chains.llm import LLMChain from langchain.evaluation.criteria.prompt import PROMPT, PROMPT_WITH_REFERENCES from langchain.evaluation.schema import LLMEvalChain, StringEvaluator +from langchain.pydantic_v1 import Extra, Field from langchain.schema import RUN_KEY, BaseOutputParser, BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/evaluation/embedding_distance/base.py b/libs/langchain/langchain/evaluation/embedding_distance/base.py index 4c426f06cb8..36fe252b824 100644 --- a/libs/langchain/langchain/evaluation/embedding_distance/base.py +++ b/libs/langchain/langchain/evaluation/embedding_distance/base.py @@ -3,7 +3,6 @@ from enum import Enum from typing import Any, Dict, List, Optional import numpy as np -from pydantic_v1 import Field, root_validator from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, @@ -14,6 +13,7 @@ from langchain.chains.base import Chain from langchain.embeddings.base import Embeddings from langchain.embeddings.openai import OpenAIEmbeddings from langchain.evaluation.schema import PairwiseStringEvaluator, StringEvaluator +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import RUN_KEY from langchain.utils.math import cosine_similarity diff --git a/libs/langchain/langchain/evaluation/qa/eval_chain.py b/libs/langchain/langchain/evaluation/qa/eval_chain.py index 4190dee0d3c..7e3af64168c 100644 --- a/libs/langchain/langchain/evaluation/qa/eval_chain.py +++ b/libs/langchain/langchain/evaluation/qa/eval_chain.py @@ -4,13 +4,12 @@ from __future__ import annotations import re from typing import Any, List, Optional, Sequence -from pydantic_v1 import Extra - from langchain import PromptTemplate from langchain.callbacks.manager import Callbacks from langchain.chains.llm import LLMChain from langchain.evaluation.qa.eval_prompt import CONTEXT_PROMPT, COT_PROMPT, PROMPT from langchain.evaluation.schema import LLMEvalChain, StringEvaluator +from langchain.pydantic_v1 import Extra from langchain.schema import RUN_KEY from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/evaluation/qa/generate_chain.py b/libs/langchain/langchain/evaluation/qa/generate_chain.py index 595ed4af0ec..5f925e2e35b 100644 --- a/libs/langchain/langchain/evaluation/qa/generate_chain.py +++ b/libs/langchain/langchain/evaluation/qa/generate_chain.py @@ -3,11 +3,10 @@ from __future__ import annotations from typing import Any -from pydantic_v1 import Field - from langchain.chains.llm import LLMChain from langchain.evaluation.qa.generate_prompt import PROMPT from langchain.output_parsers.regex import RegexParser +from langchain.pydantic_v1 import Field from langchain.schema.language_model import BaseLanguageModel from langchain.schema.output_parser import BaseLLMOutputParser diff --git a/libs/langchain/langchain/evaluation/string_distance/base.py b/libs/langchain/langchain/evaluation/string_distance/base.py index 57e37be7ee6..81aa9a9ebe0 100644 --- a/libs/langchain/langchain/evaluation/string_distance/base.py +++ b/libs/langchain/langchain/evaluation/string_distance/base.py @@ -3,8 +3,6 @@ from enum import Enum from typing import Any, Callable, Dict, List, Optional -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, @@ -12,6 +10,7 @@ from langchain.callbacks.manager import ( ) from langchain.chains.base import Chain from langchain.evaluation.schema import PairwiseStringEvaluator, StringEvaluator +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import RUN_KEY diff --git a/libs/langchain/langchain/indexes/graph.py b/libs/langchain/langchain/indexes/graph.py index e1b01c112f8..c29f56de5e6 100644 --- a/libs/langchain/langchain/indexes/graph.py +++ b/libs/langchain/langchain/indexes/graph.py @@ -1,14 +1,13 @@ """Graph Index Creator.""" from typing import Optional, Type -from pydantic_v1 import BaseModel - from langchain import BasePromptTemplate from langchain.chains.llm import LLMChain from langchain.graphs.networkx_graph import NetworkxEntityGraph, parse_triples from langchain.indexes.prompts.knowledge_triplet_extraction import ( KNOWLEDGE_TRIPLE_EXTRACTION_PROMPT, ) +from langchain.pydantic_v1 import BaseModel from langchain.schema.language_model import BaseLanguageModel diff --git a/libs/langchain/langchain/indexes/vectorstore.py b/libs/langchain/langchain/indexes/vectorstore.py index 3cdc4817250..f812754f110 100644 --- a/libs/langchain/langchain/indexes/vectorstore.py +++ b/libs/langchain/langchain/indexes/vectorstore.py @@ -1,13 +1,12 @@ from typing import Any, Dict, List, Optional, Type -from pydantic_v1 import BaseModel, Extra, Field - from langchain.chains.qa_with_sources.retrieval import RetrievalQAWithSourcesChain from langchain.chains.retrieval_qa.base import RetrievalQA from langchain.document_loaders.base import BaseLoader from langchain.embeddings.base import Embeddings from langchain.embeddings.openai import OpenAIEmbeddings from langchain.llms.openai import OpenAI +from langchain.pydantic_v1 import BaseModel, Extra, Field from langchain.schema import Document from langchain.schema.language_model import BaseLanguageModel from langchain.text_splitter import RecursiveCharacterTextSplitter, TextSplitter diff --git a/libs/langchain/langchain/llms/ai21.py b/libs/langchain/langchain/llms/ai21.py index 1502a473537..dc079c2010f 100644 --- a/libs/langchain/langchain/llms/ai21.py +++ b/libs/langchain/langchain/llms/ai21.py @@ -1,10 +1,10 @@ from typing import Any, Dict, List, Optional import requests -from pydantic_v1 import BaseModel, Extra, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/aleph_alpha.py b/libs/langchain/langchain/llms/aleph_alpha.py index c3c95026397..00235e7760e 100644 --- a/libs/langchain/langchain/llms/aleph_alpha.py +++ b/libs/langchain/langchain/llms/aleph_alpha.py @@ -1,10 +1,9 @@ from typing import Any, Dict, List, Optional, Sequence -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/amazon_api_gateway.py b/libs/langchain/langchain/llms/amazon_api_gateway.py index 766649174df..3161c0bc2ee 100644 --- a/libs/langchain/langchain/llms/amazon_api_gateway.py +++ b/libs/langchain/langchain/llms/amazon_api_gateway.py @@ -1,11 +1,11 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra class ContentHandlerAmazonAPIGateway: diff --git a/libs/langchain/langchain/llms/anthropic.py b/libs/langchain/langchain/llms/anthropic.py index 93d8fb737f9..afaea04b51c 100644 --- a/libs/langchain/langchain/llms/anthropic.py +++ b/libs/langchain/langchain/llms/anthropic.py @@ -2,13 +2,12 @@ import re import warnings from typing import Any, AsyncIterator, Callable, Dict, Iterator, List, Mapping, Optional -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.llms.base import LLM +from langchain.pydantic_v1 import Field, root_validator from langchain.schema.language_model import BaseLanguageModel from langchain.schema.output import GenerationChunk from langchain.utils import ( diff --git a/libs/langchain/langchain/llms/anyscale.py b/libs/langchain/langchain/llms/anyscale.py index 85e33ed4e7d..810d1730712 100644 --- a/libs/langchain/langchain/llms/anyscale.py +++ b/libs/langchain/langchain/llms/anyscale.py @@ -1,11 +1,11 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/aviary.py b/libs/langchain/langchain/llms/aviary.py index 96780b6518a..8444a3a041c 100644 --- a/libs/langchain/langchain/llms/aviary.py +++ b/libs/langchain/langchain/llms/aviary.py @@ -3,11 +3,11 @@ import os from typing import Any, Dict, List, Mapping, Optional, Union, cast import requests -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env TIMEOUT = 60 diff --git a/libs/langchain/langchain/llms/azureml_endpoint.py b/libs/langchain/langchain/llms/azureml_endpoint.py index 5bf5ba6c2fe..3e7833bc988 100644 --- a/libs/langchain/langchain/llms/azureml_endpoint.py +++ b/libs/langchain/langchain/llms/azureml_endpoint.py @@ -4,10 +4,9 @@ import warnings from abc import abstractmethod from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import BaseModel, validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import BaseModel, validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/bananadev.py b/libs/langchain/langchain/llms/bananadev.py index 24d5cc8394a..f0659118d63 100644 --- a/libs/langchain/langchain/llms/bananadev.py +++ b/libs/langchain/langchain/llms/bananadev.py @@ -1,11 +1,10 @@ import logging from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/base.py b/libs/langchain/langchain/llms/base.py index b30afe85514..a833487ffb1 100644 --- a/libs/langchain/langchain/llms/base.py +++ b/libs/langchain/langchain/llms/base.py @@ -27,7 +27,6 @@ from typing import ( ) import yaml -from pydantic_v1 import Field, root_validator, validator from tenacity import ( RetryCallState, before_sleep_log, @@ -50,6 +49,7 @@ from langchain.callbacks.manager import ( from langchain.load.dump import dumpd from langchain.prompts.base import StringPromptValue from langchain.prompts.chat import ChatPromptValue +from langchain.pydantic_v1 import Field, root_validator, validator from langchain.schema import ( Generation, LLMResult, diff --git a/libs/langchain/langchain/llms/baseten.py b/libs/langchain/langchain/llms/baseten.py index 1ce71ed4107..d8f1fb4e94e 100644 --- a/libs/langchain/langchain/llms/baseten.py +++ b/libs/langchain/langchain/llms/baseten.py @@ -1,10 +1,9 @@ import logging from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Field logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/beam.py b/libs/langchain/langchain/llms/beam.py index 82670491ad2..20aa0d0e2a0 100644 --- a/libs/langchain/langchain/llms/beam.py +++ b/libs/langchain/langchain/llms/beam.py @@ -7,10 +7,10 @@ import time from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, Field, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/bedrock.py b/libs/langchain/langchain/llms/bedrock.py index 6bfc2ffc890..75af53a6a58 100644 --- a/libs/langchain/langchain/llms/bedrock.py +++ b/libs/langchain/langchain/llms/bedrock.py @@ -1,11 +1,10 @@ import json from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator class LLMInputOutputAdapter: diff --git a/libs/langchain/langchain/llms/cerebriumai.py b/libs/langchain/langchain/llms/cerebriumai.py index b08aa427741..9b8a55eb268 100644 --- a/libs/langchain/langchain/llms/cerebriumai.py +++ b/libs/langchain/langchain/llms/cerebriumai.py @@ -1,11 +1,10 @@ import logging from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/clarifai.py b/libs/langchain/langchain/llms/clarifai.py index edfc7d739df..33396bfa4e8 100644 --- a/libs/langchain/langchain/llms/clarifai.py +++ b/libs/langchain/langchain/llms/clarifai.py @@ -1,11 +1,10 @@ import logging from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/cohere.py b/libs/langchain/langchain/llms/cohere.py index f57300ac166..257a69c9ff0 100644 --- a/libs/langchain/langchain/llms/cohere.py +++ b/libs/langchain/langchain/llms/cohere.py @@ -3,7 +3,6 @@ from __future__ import annotations import logging from typing import Any, Callable, Dict, List, Optional -from pydantic_v1 import Extra, root_validator from tenacity import ( before_sleep_log, retry, @@ -18,6 +17,7 @@ from langchain.callbacks.manager import ( ) from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/ctransformers.py b/libs/langchain/langchain/llms/ctransformers.py index af071d5cee4..ed859a1c80f 100644 --- a/libs/langchain/langchain/llms/ctransformers.py +++ b/libs/langchain/langchain/llms/ctransformers.py @@ -1,13 +1,12 @@ from functools import partial from typing import Any, Dict, List, Optional, Sequence -from pydantic_v1 import root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.llms.base import LLM +from langchain.pydantic_v1 import root_validator class CTransformers(LLM): diff --git a/libs/langchain/langchain/llms/databricks.py b/libs/langchain/langchain/llms/databricks.py index b88e6f86c96..fb4a3674b37 100644 --- a/libs/langchain/langchain/llms/databricks.py +++ b/libs/langchain/langchain/llms/databricks.py @@ -3,10 +3,17 @@ from abc import ABC, abstractmethod from typing import Any, Callable, Dict, List, Optional import requests -from pydantic_v1 import BaseModel, Extra, Field, PrivateAttr, root_validator, validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import ( + BaseModel, + Extra, + Field, + PrivateAttr, + root_validator, + validator, +) __all__ = ["Databricks"] diff --git a/libs/langchain/langchain/llms/deepinfra.py b/libs/langchain/langchain/llms/deepinfra.py index 9d763eff238..9229d2712d9 100644 --- a/libs/langchain/langchain/llms/deepinfra.py +++ b/libs/langchain/langchain/llms/deepinfra.py @@ -1,11 +1,11 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env DEFAULT_MODEL_ID = "google/flan-t5-xl" diff --git a/libs/langchain/langchain/llms/deepsparse.py b/libs/langchain/langchain/llms/deepsparse.py index a8db75677a0..ccb753bf6ae 100644 --- a/libs/langchain/langchain/llms/deepsparse.py +++ b/libs/langchain/langchain/llms/deepsparse.py @@ -1,7 +1,7 @@ # flake8: noqa from typing import Any, Dict, Optional, List -from pydantic_v1 import root_validator +from langchain.pydantic_v1 import root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM diff --git a/libs/langchain/langchain/llms/edenai.py b/libs/langchain/langchain/llms/edenai.py index f3dcc020933..22926dd89bb 100644 --- a/libs/langchain/langchain/llms/edenai.py +++ b/libs/langchain/langchain/llms/edenai.py @@ -3,7 +3,6 @@ import logging from typing import Any, Dict, List, Literal, Optional from aiohttp import ClientSession -from pydantic_v1 import Extra, Field, root_validator from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, @@ -11,6 +10,7 @@ from langchain.callbacks.manager import ( ) from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.requests import Requests from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/fireworks.py b/libs/langchain/langchain/llms/fireworks.py index fb9eb27828e..2b4b5f0ff95 100644 --- a/libs/langchain/langchain/llms/fireworks.py +++ b/libs/langchain/langchain/llms/fireworks.py @@ -12,13 +12,13 @@ from typing import ( ) import requests -from pydantic_v1 import Field, root_validator from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.llms.base import BaseLLM +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import Generation, LLMResult from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/forefrontai.py b/libs/langchain/langchain/llms/forefrontai.py index c7ff6dee3e7..7d82b6896e1 100644 --- a/libs/langchain/langchain/llms/forefrontai.py +++ b/libs/langchain/langchain/llms/forefrontai.py @@ -1,11 +1,11 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/google_palm.py b/libs/langchain/langchain/llms/google_palm.py index df5dcd35178..1a0a409979c 100644 --- a/libs/langchain/langchain/llms/google_palm.py +++ b/libs/langchain/langchain/llms/google_palm.py @@ -3,7 +3,6 @@ from __future__ import annotations import logging from typing import Any, Callable, Dict, List, Optional -from pydantic_v1 import BaseModel, root_validator from tenacity import ( before_sleep_log, retry, @@ -14,6 +13,7 @@ from tenacity import ( from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms import BaseLLM +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import Generation, LLMResult from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/gooseai.py b/libs/langchain/langchain/llms/gooseai.py index 8259bdc036c..831cff9a54a 100644 --- a/libs/langchain/langchain/llms/gooseai.py +++ b/libs/langchain/langchain/llms/gooseai.py @@ -1,10 +1,9 @@ import logging from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/gpt4all.py b/libs/langchain/langchain/llms/gpt4all.py index 2239beaba53..67aa6d49a75 100644 --- a/libs/langchain/langchain/llms/gpt4all.py +++ b/libs/langchain/langchain/llms/gpt4all.py @@ -1,11 +1,10 @@ from functools import partial from typing import Any, Dict, List, Mapping, Optional, Set -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, Field, root_validator class GPT4All(LLM): diff --git a/libs/langchain/langchain/llms/huggingface_endpoint.py b/libs/langchain/langchain/llms/huggingface_endpoint.py index f9e88f37238..a1593287a60 100644 --- a/libs/langchain/langchain/llms/huggingface_endpoint.py +++ b/libs/langchain/langchain/llms/huggingface_endpoint.py @@ -1,11 +1,11 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env VALID_TASKS = ("text2text-generation", "text-generation", "summarization") diff --git a/libs/langchain/langchain/llms/huggingface_hub.py b/libs/langchain/langchain/llms/huggingface_hub.py index ef2fac0906e..f1bc8977ab9 100644 --- a/libs/langchain/langchain/llms/huggingface_hub.py +++ b/libs/langchain/langchain/llms/huggingface_hub.py @@ -1,10 +1,9 @@ from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env DEFAULT_REPO_ID = "gpt2" diff --git a/libs/langchain/langchain/llms/huggingface_pipeline.py b/libs/langchain/langchain/llms/huggingface_pipeline.py index 18910c4c5e3..9c32787928d 100644 --- a/libs/langchain/langchain/llms/huggingface_pipeline.py +++ b/libs/langchain/langchain/llms/huggingface_pipeline.py @@ -2,11 +2,10 @@ import importlib.util import logging from typing import Any, List, Mapping, Optional -from pydantic_v1 import Extra - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra DEFAULT_MODEL_ID = "gpt2" DEFAULT_TASK = "text-generation" diff --git a/libs/langchain/langchain/llms/huggingface_text_gen_inference.py b/libs/langchain/langchain/llms/huggingface_text_gen_inference.py index 08d2f0c8f59..8e23d935f85 100644 --- a/libs/langchain/langchain/llms/huggingface_text_gen_inference.py +++ b/libs/langchain/langchain/llms/huggingface_text_gen_inference.py @@ -1,12 +1,11 @@ from typing import Any, AsyncIterator, Dict, Iterator, List, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.llms.base import LLM +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.schema.output import GenerationChunk diff --git a/libs/langchain/langchain/llms/human.py b/libs/langchain/langchain/llms/human.py index ac6206f9432..d6ea10b8ec2 100644 --- a/libs/langchain/langchain/llms/human.py +++ b/libs/langchain/langchain/llms/human.py @@ -1,10 +1,9 @@ from typing import Any, Callable, List, Mapping, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Field def _display_prompt(prompt: str) -> None: diff --git a/libs/langchain/langchain/llms/llamacpp.py b/libs/langchain/langchain/llms/llamacpp.py index 26f02f34c3c..d5af66dc4c9 100644 --- a/libs/langchain/langchain/llms/llamacpp.py +++ b/libs/langchain/langchain/llms/llamacpp.py @@ -1,10 +1,9 @@ import logging from typing import Any, Dict, Iterator, List, Optional -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Field, root_validator from langchain.schema.output import GenerationChunk from langchain.utils import get_pydantic_field_names from langchain.utils.utils import build_extra_kwargs diff --git a/libs/langchain/langchain/llms/manifest.py b/libs/langchain/langchain/llms/manifest.py index 9527e609aff..aaaf3a24f76 100644 --- a/libs/langchain/langchain/llms/manifest.py +++ b/libs/langchain/langchain/llms/manifest.py @@ -1,9 +1,8 @@ from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Extra, root_validator class ManifestWrapper(LLM): diff --git a/libs/langchain/langchain/llms/minimax.py b/libs/langchain/langchain/llms/minimax.py index f723e94da33..1fb04709e03 100644 --- a/libs/langchain/langchain/llms/minimax.py +++ b/libs/langchain/langchain/llms/minimax.py @@ -10,12 +10,12 @@ from typing import ( ) import requests -from pydantic_v1 import BaseModel, Extra, Field, PrivateAttr, root_validator from langchain.callbacks.manager import ( CallbackManagerForLLMRun, ) from langchain.llms.base import LLM +from langchain.pydantic_v1 import BaseModel, Extra, Field, PrivateAttr, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/mlflow_ai_gateway.py b/libs/langchain/langchain/llms/mlflow_ai_gateway.py index 59def90b5e3..dcb75c5190b 100644 --- a/libs/langchain/langchain/llms/mlflow_ai_gateway.py +++ b/libs/langchain/langchain/llms/mlflow_ai_gateway.py @@ -2,10 +2,9 @@ from __future__ import annotations from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import BaseModel, Extra - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import BaseModel, Extra # Ignoring type because below is valid pydantic code diff --git a/libs/langchain/langchain/llms/modal.py b/libs/langchain/langchain/llms/modal.py index e4ae2f417e9..9f1f42269d7 100644 --- a/libs/langchain/langchain/llms/modal.py +++ b/libs/langchain/langchain/llms/modal.py @@ -2,11 +2,11 @@ import logging from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, Field, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, Field, root_validator logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/mosaicml.py b/libs/langchain/langchain/llms/mosaicml.py index 615a23df92b..780e7a8b4da 100644 --- a/libs/langchain/langchain/llms/mosaicml.py +++ b/libs/langchain/langchain/llms/mosaicml.py @@ -1,11 +1,11 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env INSTRUCTION_KEY = "### Instruction:" diff --git a/libs/langchain/langchain/llms/nlpcloud.py b/libs/langchain/langchain/llms/nlpcloud.py index ec56b4458b1..1420595eee9 100644 --- a/libs/langchain/langchain/llms/nlpcloud.py +++ b/libs/langchain/langchain/llms/nlpcloud.py @@ -1,9 +1,8 @@ from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/octoai_endpoint.py b/libs/langchain/langchain/llms/octoai_endpoint.py index 76519ed7031..93bdb36ff93 100644 --- a/libs/langchain/langchain/llms/octoai_endpoint.py +++ b/libs/langchain/langchain/llms/octoai_endpoint.py @@ -1,10 +1,9 @@ from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/ollama.py b/libs/langchain/langchain/llms/ollama.py index 5be1c384790..66f9e7ab015 100644 --- a/libs/langchain/langchain/llms/ollama.py +++ b/libs/langchain/langchain/llms/ollama.py @@ -2,10 +2,10 @@ import json from typing import Any, Dict, Iterator, List, Mapping, Optional import requests -from pydantic_v1 import Extra from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import BaseLLM +from langchain.pydantic_v1 import Extra from langchain.schema import LLMResult from langchain.schema.language_model import BaseLanguageModel from langchain.schema.output import GenerationChunk diff --git a/libs/langchain/langchain/llms/openai.py b/libs/langchain/langchain/llms/openai.py index 2d368737ecd..0ab26529122 100644 --- a/libs/langchain/langchain/llms/openai.py +++ b/libs/langchain/langchain/llms/openai.py @@ -20,13 +20,12 @@ from typing import ( Union, ) -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.llms.base import BaseLLM, create_base_retry_decorator +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import Generation, LLMResult from langchain.schema.output import GenerationChunk from langchain.utils import get_from_dict_or_env, get_pydantic_field_names diff --git a/libs/langchain/langchain/llms/openllm.py b/libs/langchain/langchain/llms/openllm.py index c478ff04719..df8d4bc3818 100644 --- a/libs/langchain/langchain/llms/openllm.py +++ b/libs/langchain/langchain/llms/openllm.py @@ -15,13 +15,12 @@ from typing import ( overload, ) -from pydantic_v1 import PrivateAttr - from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.llms.base import LLM +from langchain.pydantic_v1 import PrivateAttr if TYPE_CHECKING: import openllm diff --git a/libs/langchain/langchain/llms/openlm.py b/libs/langchain/langchain/llms/openlm.py index 2192901c735..156add03ecf 100644 --- a/libs/langchain/langchain/llms/openlm.py +++ b/libs/langchain/langchain/llms/openlm.py @@ -1,8 +1,7 @@ from typing import Any, Dict -from pydantic_v1 import root_validator - from langchain.llms.openai import BaseOpenAI +from langchain.pydantic_v1 import root_validator class OpenLM(BaseOpenAI): diff --git a/libs/langchain/langchain/llms/petals.py b/libs/langchain/langchain/llms/petals.py index f3c02900a7e..9499b602887 100644 --- a/libs/langchain/langchain/llms/petals.py +++ b/libs/langchain/langchain/llms/petals.py @@ -1,11 +1,10 @@ import logging from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/pipelineai.py b/libs/langchain/langchain/llms/pipelineai.py index 52591db848c..0d257e33647 100644 --- a/libs/langchain/langchain/llms/pipelineai.py +++ b/libs/langchain/langchain/llms/pipelineai.py @@ -1,11 +1,10 @@ import logging from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import BaseModel, Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/predibase.py b/libs/langchain/langchain/llms/predibase.py index 4c3a0c8a89e..98ab06937ae 100644 --- a/libs/langchain/langchain/llms/predibase.py +++ b/libs/langchain/langchain/llms/predibase.py @@ -1,9 +1,8 @@ from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Field class Predibase(LLM): diff --git a/libs/langchain/langchain/llms/predictionguard.py b/libs/langchain/langchain/llms/predictionguard.py index f116b54d850..6977381129b 100644 --- a/libs/langchain/langchain/llms/predictionguard.py +++ b/libs/langchain/langchain/llms/predictionguard.py @@ -1,11 +1,10 @@ import logging from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/replicate.py b/libs/langchain/langchain/llms/replicate.py index e2abf64e53b..9fa2807b4e2 100644 --- a/libs/langchain/langchain/llms/replicate.py +++ b/libs/langchain/langchain/llms/replicate.py @@ -1,10 +1,9 @@ import logging from typing import Any, Dict, List, Mapping, Optional -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/rwkv.py b/libs/langchain/langchain/llms/rwkv.py index b3530250d2c..bb54c9d5deb 100644 --- a/libs/langchain/langchain/llms/rwkv.py +++ b/libs/langchain/langchain/llms/rwkv.py @@ -5,11 +5,10 @@ Based on https://github.com/saharNooby/rwkv.cpp/blob/master/rwkv/chat_with_bot.p """ from typing import Any, Dict, List, Mapping, Optional, Set -from pydantic_v1 import BaseModel, Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import BaseModel, Extra, root_validator class RWKV(LLM, BaseModel): diff --git a/libs/langchain/langchain/llms/sagemaker_endpoint.py b/libs/langchain/langchain/llms/sagemaker_endpoint.py index a122aafb599..e0383552b2f 100644 --- a/libs/langchain/langchain/llms/sagemaker_endpoint.py +++ b/libs/langchain/langchain/llms/sagemaker_endpoint.py @@ -2,11 +2,10 @@ from abc import abstractmethod from typing import Any, Dict, Generic, List, Mapping, Optional, TypeVar, Union -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator INPUT_TYPE = TypeVar("INPUT_TYPE", bound=Union[str, List[str]]) OUTPUT_TYPE = TypeVar("OUTPUT_TYPE", bound=Union[str, List[List[float]]]) diff --git a/libs/langchain/langchain/llms/self_hosted.py b/libs/langchain/langchain/llms/self_hosted.py index a4ca677c017..b43ce822e54 100644 --- a/libs/langchain/langchain/llms/self_hosted.py +++ b/libs/langchain/langchain/llms/self_hosted.py @@ -3,11 +3,10 @@ import logging import pickle from typing import Any, Callable, List, Mapping, Optional -from pydantic_v1 import Extra - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/self_hosted_hugging_face.py b/libs/langchain/langchain/llms/self_hosted_hugging_face.py index 06b54198f8d..0b590cf5192 100644 --- a/libs/langchain/langchain/llms/self_hosted_hugging_face.py +++ b/libs/langchain/langchain/llms/self_hosted_hugging_face.py @@ -2,11 +2,10 @@ import importlib.util import logging from typing import Any, Callable, List, Mapping, Optional -from pydantic_v1 import Extra - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.self_hosted import SelfHostedPipeline from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra DEFAULT_MODEL_ID = "gpt2" DEFAULT_TASK = "text-generation" diff --git a/libs/langchain/langchain/llms/stochasticai.py b/libs/langchain/langchain/llms/stochasticai.py index b6e4c37ed41..2afe7d695e4 100644 --- a/libs/langchain/langchain/llms/stochasticai.py +++ b/libs/langchain/langchain/llms/stochasticai.py @@ -3,11 +3,11 @@ import time from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, Field, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.utils import get_from_dict_or_env logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/symblai_nebula.py b/libs/langchain/langchain/llms/symblai_nebula.py index cbc8284169e..d368c3a1a0d 100644 --- a/libs/langchain/langchain/llms/symblai_nebula.py +++ b/libs/langchain/langchain/llms/symblai_nebula.py @@ -3,7 +3,6 @@ import logging from typing import Any, Callable, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, root_validator from requests import ConnectTimeout, ReadTimeout, RequestException from tenacity import ( before_sleep_log, @@ -16,6 +15,7 @@ from tenacity import ( from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env DEFAULT_NEBULA_SERVICE_URL = "https://api-nebula.symbl.ai" diff --git a/libs/langchain/langchain/llms/textgen.py b/libs/langchain/langchain/llms/textgen.py index dc93d88cc3d..bcee0eb83ed 100644 --- a/libs/langchain/langchain/llms/textgen.py +++ b/libs/langchain/langchain/llms/textgen.py @@ -2,10 +2,10 @@ import logging from typing import Any, Dict, List, Optional import requests -from pydantic_v1 import Field from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Field logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/llms/tongyi.py b/libs/langchain/langchain/llms/tongyi.py index e2b9943f478..80447a61917 100644 --- a/libs/langchain/langchain/llms/tongyi.py +++ b/libs/langchain/langchain/llms/tongyi.py @@ -3,7 +3,6 @@ from __future__ import annotations import logging from typing import Any, Callable, Dict, List, Optional -from pydantic_v1 import Field, root_validator from requests.exceptions import HTTPError from tenacity import ( before_sleep_log, @@ -15,6 +14,7 @@ from tenacity import ( from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import Generation, LLMResult from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/llms/vertexai.py b/libs/langchain/langchain/llms/vertexai.py index 5a5f037b84c..cdc541824c8 100644 --- a/libs/langchain/langchain/llms/vertexai.py +++ b/libs/langchain/langchain/llms/vertexai.py @@ -4,14 +4,13 @@ import asyncio from concurrent.futures import Executor, ThreadPoolExecutor from typing import TYPE_CHECKING, Any, Callable, ClassVar, Dict, List, Optional -from pydantic_v1 import BaseModel, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForLLMRun, CallbackManagerForLLMRun, ) from langchain.llms.base import LLM, create_base_retry_decorator from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.utilities.vertexai import ( init_vertexai, raise_vertex_import_error, diff --git a/libs/langchain/langchain/llms/vllm.py b/libs/langchain/langchain/llms/vllm.py index e7a0b0c363e..bf82c8c2149 100644 --- a/libs/langchain/langchain/llms/vllm.py +++ b/libs/langchain/langchain/llms/vllm.py @@ -1,10 +1,9 @@ from typing import Any, Dict, List, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import BaseLLM from langchain.llms.openai import BaseOpenAI +from langchain.pydantic_v1 import root_validator from langchain.schema.output import Generation, LLMResult diff --git a/libs/langchain/langchain/llms/writer.py b/libs/langchain/langchain/llms/writer.py index 308ccc30bae..5f83d16e694 100644 --- a/libs/langchain/langchain/llms/writer.py +++ b/libs/langchain/langchain/llms/writer.py @@ -1,11 +1,11 @@ from typing import Any, Dict, List, Mapping, Optional import requests -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM from langchain.llms.utils import enforce_stop_tokens +from langchain.pydantic_v1 import Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/load/serializable.py b/libs/langchain/langchain/load/serializable.py index 76352e28710..535be6476d7 100644 --- a/libs/langchain/langchain/load/serializable.py +++ b/libs/langchain/langchain/load/serializable.py @@ -1,7 +1,7 @@ from abc import ABC from typing import Any, Dict, List, Literal, TypedDict, Union, cast -from pydantic_v1 import BaseModel, PrivateAttr +from langchain.pydantic_v1 import BaseModel, PrivateAttr class BaseSerialized(TypedDict): diff --git a/libs/langchain/langchain/memory/buffer.py b/libs/langchain/langchain/memory/buffer.py index b35373749fe..4afad7dffd3 100644 --- a/libs/langchain/langchain/memory/buffer.py +++ b/libs/langchain/langchain/memory/buffer.py @@ -1,9 +1,8 @@ from typing import Any, Dict, List, Optional -from pydantic_v1 import root_validator - from langchain.memory.chat_memory import BaseChatMemory, BaseMemory from langchain.memory.utils import get_prompt_input_key +from langchain.pydantic_v1 import root_validator from langchain.schema.messages import BaseMessage, get_buffer_string diff --git a/libs/langchain/langchain/memory/chat_memory.py b/libs/langchain/langchain/memory/chat_memory.py index 0e2ef543e35..cb49c12d964 100644 --- a/libs/langchain/langchain/memory/chat_memory.py +++ b/libs/langchain/langchain/memory/chat_memory.py @@ -1,10 +1,9 @@ from abc import ABC from typing import Any, Dict, Optional, Tuple -from pydantic_v1 import Field - from langchain.memory.chat_message_histories.in_memory import ChatMessageHistory from langchain.memory.utils import get_prompt_input_key +from langchain.pydantic_v1 import Field from langchain.schema import BaseChatMessageHistory, BaseMemory diff --git a/libs/langchain/langchain/memory/chat_message_histories/in_memory.py b/libs/langchain/langchain/memory/chat_message_histories/in_memory.py index 19ae89105eb..d8db3f424b5 100644 --- a/libs/langchain/langchain/memory/chat_message_histories/in_memory.py +++ b/libs/langchain/langchain/memory/chat_message_histories/in_memory.py @@ -1,7 +1,6 @@ from typing import List -from pydantic_v1 import BaseModel - +from langchain.pydantic_v1 import BaseModel from langchain.schema import ( BaseChatMessageHistory, ) diff --git a/libs/langchain/langchain/memory/combined.py b/libs/langchain/langchain/memory/combined.py index 1b9cc5cd644..8cf76046237 100644 --- a/libs/langchain/langchain/memory/combined.py +++ b/libs/langchain/langchain/memory/combined.py @@ -1,9 +1,8 @@ import warnings from typing import Any, Dict, List, Set -from pydantic_v1 import validator - from langchain.memory.chat_memory import BaseChatMemory +from langchain.pydantic_v1 import validator from langchain.schema import BaseMemory diff --git a/libs/langchain/langchain/memory/entity.py b/libs/langchain/langchain/memory/entity.py index a8cdd154450..cc48026f8c4 100644 --- a/libs/langchain/langchain/memory/entity.py +++ b/libs/langchain/langchain/memory/entity.py @@ -3,8 +3,6 @@ from abc import ABC, abstractmethod from itertools import islice from typing import Any, Dict, Iterable, List, Optional -from pydantic_v1 import BaseModel, Field - from langchain.chains.llm import LLMChain from langchain.memory.chat_memory import BaseChatMemory from langchain.memory.prompt import ( @@ -12,6 +10,7 @@ from langchain.memory.prompt import ( ENTITY_SUMMARIZATION_PROMPT, ) from langchain.memory.utils import get_prompt_input_key +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.schema.messages import BaseMessage, get_buffer_string diff --git a/libs/langchain/langchain/memory/kg.py b/libs/langchain/langchain/memory/kg.py index 57751718504..4f79bd76a57 100644 --- a/libs/langchain/langchain/memory/kg.py +++ b/libs/langchain/langchain/memory/kg.py @@ -1,7 +1,5 @@ from typing import Any, Dict, List, Type, Union -from pydantic_v1 import Field - from langchain.chains.llm import LLMChain from langchain.graphs import NetworkxEntityGraph from langchain.graphs.networkx_graph import KnowledgeTriple, get_entities, parse_triples @@ -11,6 +9,7 @@ from langchain.memory.prompt import ( KNOWLEDGE_TRIPLE_EXTRACTION_PROMPT, ) from langchain.memory.utils import get_prompt_input_key +from langchain.pydantic_v1 import Field from langchain.schema import BasePromptTemplate from langchain.schema.language_model import BaseLanguageModel from langchain.schema.messages import BaseMessage, SystemMessage, get_buffer_string diff --git a/libs/langchain/langchain/memory/summary.py b/libs/langchain/langchain/memory/summary.py index 77d24bc013b..a6cbfa727c3 100644 --- a/libs/langchain/langchain/memory/summary.py +++ b/libs/langchain/langchain/memory/summary.py @@ -2,11 +2,10 @@ from __future__ import annotations from typing import Any, Dict, List, Type -from pydantic_v1 import BaseModel, root_validator - from langchain.chains.llm import LLMChain from langchain.memory.chat_memory import BaseChatMemory from langchain.memory.prompt import SUMMARY_PROMPT +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import ( BaseChatMessageHistory, BasePromptTemplate, diff --git a/libs/langchain/langchain/memory/summary_buffer.py b/libs/langchain/langchain/memory/summary_buffer.py index bec6076214d..f0a31b41244 100644 --- a/libs/langchain/langchain/memory/summary_buffer.py +++ b/libs/langchain/langchain/memory/summary_buffer.py @@ -1,9 +1,8 @@ from typing import Any, Dict, List -from pydantic_v1 import root_validator - from langchain.memory.chat_memory import BaseChatMemory from langchain.memory.summary import SummarizerMixin +from langchain.pydantic_v1 import root_validator from langchain.schema.messages import BaseMessage, get_buffer_string diff --git a/libs/langchain/langchain/memory/vectorstore.py b/libs/langchain/langchain/memory/vectorstore.py index c367b47073b..b368fbab38b 100644 --- a/libs/langchain/langchain/memory/vectorstore.py +++ b/libs/langchain/langchain/memory/vectorstore.py @@ -2,10 +2,9 @@ from typing import Any, Dict, List, Optional, Sequence, Union -from pydantic_v1 import Field - from langchain.memory.chat_memory import BaseMemory from langchain.memory.utils import get_prompt_input_key +from langchain.pydantic_v1 import Field from langchain.schema import Document from langchain.vectorstores.base import VectorStoreRetriever diff --git a/libs/langchain/langchain/output_parsers/combining.py b/libs/langchain/langchain/output_parsers/combining.py index a6f3dab84ff..3ca3cb96222 100644 --- a/libs/langchain/langchain/output_parsers/combining.py +++ b/libs/langchain/langchain/output_parsers/combining.py @@ -2,8 +2,7 @@ from __future__ import annotations from typing import Any, Dict, List -from pydantic_v1 import root_validator - +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseOutputParser diff --git a/libs/langchain/langchain/output_parsers/enum.py b/libs/langchain/langchain/output_parsers/enum.py index c1469bfb996..b066e5ca144 100644 --- a/libs/langchain/langchain/output_parsers/enum.py +++ b/libs/langchain/langchain/output_parsers/enum.py @@ -1,8 +1,7 @@ from enum import Enum from typing import Any, Dict, List, Type -from pydantic_v1 import root_validator - +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseOutputParser, OutputParserException diff --git a/libs/langchain/langchain/output_parsers/openai_functions.py b/libs/langchain/langchain/output_parsers/openai_functions.py index 20913c3688a..f916c4836ba 100644 --- a/libs/langchain/langchain/output_parsers/openai_functions.py +++ b/libs/langchain/langchain/output_parsers/openai_functions.py @@ -2,8 +2,7 @@ import copy import json from typing import Any, Dict, List, Type, Union -from pydantic_v1 import BaseModel, root_validator - +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import ( ChatGeneration, Generation, diff --git a/libs/langchain/langchain/output_parsers/pydantic.py b/libs/langchain/langchain/output_parsers/pydantic.py index ea2bf334821..f60408eccff 100644 --- a/libs/langchain/langchain/output_parsers/pydantic.py +++ b/libs/langchain/langchain/output_parsers/pydantic.py @@ -2,9 +2,8 @@ import json import re from typing import Type, TypeVar -from pydantic_v1 import BaseModel, ValidationError - from langchain.output_parsers.format_instructions import PYDANTIC_FORMAT_INSTRUCTIONS +from langchain.pydantic_v1 import BaseModel, ValidationError from langchain.schema import BaseOutputParser, OutputParserException T = TypeVar("T", bound=BaseModel) diff --git a/libs/langchain/langchain/output_parsers/structured.py b/libs/langchain/langchain/output_parsers/structured.py index eecd8de69a7..b7f53ca32b4 100644 --- a/libs/langchain/langchain/output_parsers/structured.py +++ b/libs/langchain/langchain/output_parsers/structured.py @@ -2,13 +2,12 @@ from __future__ import annotations from typing import Any, List -from pydantic_v1 import BaseModel - from langchain.output_parsers.format_instructions import ( STRUCTURED_FORMAT_INSTRUCTIONS, STRUCTURED_FORMAT_SIMPLE_INSTRUCTIONS, ) from langchain.output_parsers.json import parse_and_check_json_markdown +from langchain.pydantic_v1 import BaseModel from langchain.schema import BaseOutputParser line_template = '\t"{name}": {type} // {description}' diff --git a/libs/langchain/langchain/prompts/chat.py b/libs/langchain/langchain/prompts/chat.py index 72925e1cb42..b6cd9e0c036 100644 --- a/libs/langchain/langchain/prompts/chat.py +++ b/libs/langchain/langchain/prompts/chat.py @@ -16,12 +16,11 @@ from typing import ( overload, ) -from pydantic_v1 import Field, root_validator - from langchain._api import deprecated from langchain.load.serializable import Serializable from langchain.prompts.base import StringPromptTemplate from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import ( BasePromptTemplate, PromptValue, diff --git a/libs/langchain/langchain/prompts/example_selector/length_based.py b/libs/langchain/langchain/prompts/example_selector/length_based.py index b2af714159e..19f4a0c5c8e 100644 --- a/libs/langchain/langchain/prompts/example_selector/length_based.py +++ b/libs/langchain/langchain/prompts/example_selector/length_based.py @@ -2,10 +2,9 @@ import re from typing import Callable, Dict, List -from pydantic_v1 import BaseModel, validator - from langchain.prompts.example_selector.base import BaseExampleSelector from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import BaseModel, validator def _get_length_based(text: str) -> int: diff --git a/libs/langchain/langchain/prompts/example_selector/ngram_overlap.py b/libs/langchain/langchain/prompts/example_selector/ngram_overlap.py index 6697a07c1f8..969c81e43d6 100644 --- a/libs/langchain/langchain/prompts/example_selector/ngram_overlap.py +++ b/libs/langchain/langchain/prompts/example_selector/ngram_overlap.py @@ -6,10 +6,10 @@ https://aclanthology.org/P02-1040.pdf from typing import Dict, List import numpy as np -from pydantic_v1 import BaseModel, root_validator from langchain.prompts.example_selector.base import BaseExampleSelector from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import BaseModel, root_validator def ngram_overlap_score(source: List[str], example: List[str]) -> float: diff --git a/libs/langchain/langchain/prompts/example_selector/semantic_similarity.py b/libs/langchain/langchain/prompts/example_selector/semantic_similarity.py index 7f224324b72..2dbd4a7d4d4 100644 --- a/libs/langchain/langchain/prompts/example_selector/semantic_similarity.py +++ b/libs/langchain/langchain/prompts/example_selector/semantic_similarity.py @@ -3,10 +3,9 @@ from __future__ import annotations from typing import Any, Dict, List, Optional, Type -from pydantic_v1 import BaseModel, Extra - from langchain.embeddings.base import Embeddings from langchain.prompts.example_selector.base import BaseExampleSelector +from langchain.pydantic_v1 import BaseModel, Extra from langchain.vectorstores.base import VectorStore diff --git a/libs/langchain/langchain/prompts/few_shot.py b/libs/langchain/langchain/prompts/few_shot.py index 873f732d4b8..72ba8c13fd7 100644 --- a/libs/langchain/langchain/prompts/few_shot.py +++ b/libs/langchain/langchain/prompts/few_shot.py @@ -3,8 +3,6 @@ from __future__ import annotations from typing import Any, Dict, List, Optional, Union -from pydantic_v1 import BaseModel, Extra, Field, root_validator - from langchain.prompts.base import ( DEFAULT_FORMATTER_MAPPING, StringPromptTemplate, @@ -13,6 +11,7 @@ from langchain.prompts.base import ( from langchain.prompts.chat import BaseChatPromptTemplate, BaseMessagePromptTemplate from langchain.prompts.example_selector.base import BaseExampleSelector from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.schema.messages import BaseMessage, get_buffer_string diff --git a/libs/langchain/langchain/prompts/few_shot_with_templates.py b/libs/langchain/langchain/prompts/few_shot_with_templates.py index 15c967bb18d..a66f1a37ee2 100644 --- a/libs/langchain/langchain/prompts/few_shot_with_templates.py +++ b/libs/langchain/langchain/prompts/few_shot_with_templates.py @@ -1,11 +1,10 @@ """Prompt template that contains few shot examples.""" from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.prompts.base import DEFAULT_FORMATTER_MAPPING, StringPromptTemplate from langchain.prompts.example_selector.base import BaseExampleSelector from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import Extra, root_validator class FewShotPromptWithTemplates(StringPromptTemplate): diff --git a/libs/langchain/langchain/prompts/pipeline.py b/libs/langchain/langchain/prompts/pipeline.py index 75a56f5d2cb..4183b97387c 100644 --- a/libs/langchain/langchain/prompts/pipeline.py +++ b/libs/langchain/langchain/prompts/pipeline.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List, Tuple -from pydantic_v1 import root_validator - from langchain.prompts.chat import BaseChatPromptTemplate +from langchain.pydantic_v1 import root_validator from langchain.schema import BasePromptTemplate, PromptValue diff --git a/libs/langchain/langchain/prompts/prompt.py b/libs/langchain/langchain/prompts/prompt.py index b5e26b33b18..9f18af8a165 100644 --- a/libs/langchain/langchain/prompts/prompt.py +++ b/libs/langchain/langchain/prompts/prompt.py @@ -5,14 +5,13 @@ from pathlib import Path from string import Formatter from typing import Any, Dict, List, Optional, Union -from pydantic_v1 import root_validator - from langchain.prompts.base import ( DEFAULT_FORMATTER_MAPPING, StringPromptTemplate, _get_jinja2_variables_from_template, check_valid_template, ) +from langchain.pydantic_v1 import root_validator class PromptTemplate(StringPromptTemplate): diff --git a/libs/langchain/langchain/pydantic_v1/__init__.py b/libs/langchain/langchain/pydantic_v1/__init__.py new file mode 100644 index 00000000000..859822531ec --- /dev/null +++ b/libs/langchain/langchain/pydantic_v1/__init__.py @@ -0,0 +1,23 @@ +from importlib import metadata + +## Create namespaces for pydantic v1 and v2. +# This code must stay at the top of the file before other modules may +# attempt to import pydantic since it adds pydantic_v1 and pydantic_v2 to sys.modules. +# +# This hack is done for the following reasons: +# * Langchain will attempt to remain compatible with both pydantic v1 and v2 since +# both dependencies and dependents may be stuck on either version of v1 or v2. +# * Creating namespaces for pydantic v1 and v2 should allow us to write code that +# unambiguously uses either v1 or v2 API. +# * This change is easier to roll out and roll back. + +try: + from pydantic.v1 import * # noqa: F403 +except ImportError: + from pydantic import * # noqa: F403 + + +try: + _PYDANTIC_MAJOR_VERSION: int = int(metadata.version("pydantic").split(".")[0]) +except metadata.PackageNotFoundError: + _PYDANTIC_MAJOR_VERSION = 0 diff --git a/libs/langchain/langchain/pydantic_v1/dataclasses.py b/libs/langchain/langchain/pydantic_v1/dataclasses.py new file mode 100644 index 00000000000..bb7253c29d7 --- /dev/null +++ b/libs/langchain/langchain/pydantic_v1/dataclasses.py @@ -0,0 +1,4 @@ +try: + from pydantic.v1.dataclasses import * # noqa: F403 +except ImportError: + from pydantic.dataclasses import * # noqa: F403 diff --git a/libs/langchain/langchain/pydantic_v1/main.py b/libs/langchain/langchain/pydantic_v1/main.py new file mode 100644 index 00000000000..4b8f1670e13 --- /dev/null +++ b/libs/langchain/langchain/pydantic_v1/main.py @@ -0,0 +1,4 @@ +try: + from pydantic.v1.main import * # noqa: F403 +except ImportError: + from pydantic.main import * # noqa: F403 diff --git a/libs/langchain/langchain/retrievers/azure_cognitive_search.py b/libs/langchain/langchain/retrievers/azure_cognitive_search.py index cf5c6b9538c..45deebfe31e 100644 --- a/libs/langchain/langchain/retrievers/azure_cognitive_search.py +++ b/libs/langchain/langchain/retrievers/azure_cognitive_search.py @@ -7,12 +7,12 @@ from typing import Dict, List, Optional import aiohttp import requests -from pydantic_v1 import Extra, root_validator from langchain.callbacks.manager import ( AsyncCallbackManagerForRetrieverRun, CallbackManagerForRetrieverRun, ) +from langchain.pydantic_v1 import Extra, root_validator from langchain.schema import BaseRetriever, Document from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/retrievers/document_compressors/base.py b/libs/langchain/langchain/retrievers/document_compressors/base.py index 10ba7494a87..b44c1e5c73d 100644 --- a/libs/langchain/langchain/retrievers/document_compressors/base.py +++ b/libs/langchain/langchain/retrievers/document_compressors/base.py @@ -3,9 +3,8 @@ from abc import ABC, abstractmethod from inspect import signature from typing import List, Optional, Sequence, Union -from pydantic_v1 import BaseModel - from langchain.callbacks.manager import Callbacks +from langchain.pydantic_v1 import BaseModel from langchain.schema import BaseDocumentTransformer, Document diff --git a/libs/langchain/langchain/retrievers/document_compressors/cohere_rerank.py b/libs/langchain/langchain/retrievers/document_compressors/cohere_rerank.py index e02ddadd525..f6e79a0b3a3 100644 --- a/libs/langchain/langchain/retrievers/document_compressors/cohere_rerank.py +++ b/libs/langchain/langchain/retrievers/document_compressors/cohere_rerank.py @@ -2,9 +2,8 @@ from __future__ import annotations from typing import TYPE_CHECKING, Dict, Optional, Sequence -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import Callbacks +from langchain.pydantic_v1 import Extra, root_validator from langchain.retrievers.document_compressors.base import BaseDocumentCompressor from langchain.schema import Document from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/retrievers/document_compressors/embeddings_filter.py b/libs/langchain/langchain/retrievers/document_compressors/embeddings_filter.py index d8ac0de13f7..115eb941fa3 100644 --- a/libs/langchain/langchain/retrievers/document_compressors/embeddings_filter.py +++ b/libs/langchain/langchain/retrievers/document_compressors/embeddings_filter.py @@ -1,7 +1,6 @@ from typing import Callable, Dict, Optional, Sequence import numpy as np -from pydantic_v1 import root_validator from langchain.callbacks.manager import Callbacks from langchain.document_transformers.embeddings_redundant_filter import ( @@ -9,6 +8,7 @@ from langchain.document_transformers.embeddings_redundant_filter import ( get_stateful_documents, ) from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import root_validator from langchain.retrievers.document_compressors.base import ( BaseDocumentCompressor, ) diff --git a/libs/langchain/langchain/retrievers/ensemble.py b/libs/langchain/langchain/retrievers/ensemble.py index 89e49aaedc3..03f555a686c 100644 --- a/libs/langchain/langchain/retrievers/ensemble.py +++ b/libs/langchain/langchain/retrievers/ensemble.py @@ -4,12 +4,11 @@ multiple retrievers by using weighted Reciprocal Rank Fusion """ from typing import Any, Dict, List -from pydantic_v1 import root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForRetrieverRun, CallbackManagerForRetrieverRun, ) +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseRetriever, Document diff --git a/libs/langchain/langchain/retrievers/google_cloud_enterprise_search.py b/libs/langchain/langchain/retrievers/google_cloud_enterprise_search.py index 8c869e7fdbc..826428c26bb 100644 --- a/libs/langchain/langchain/retrievers/google_cloud_enterprise_search.py +++ b/libs/langchain/langchain/retrievers/google_cloud_enterprise_search.py @@ -3,9 +3,8 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any, Dict, List, Optional, Sequence -from pydantic_v1 import Extra, Field, root_validator - from langchain.callbacks.manager import CallbackManagerForRetrieverRun +from langchain.pydantic_v1 import Extra, Field, root_validator from langchain.schema import BaseRetriever, Document from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/retrievers/kendra.py b/libs/langchain/langchain/retrievers/kendra.py index 17b176d6662..1f43050c49c 100644 --- a/libs/langchain/langchain/retrievers/kendra.py +++ b/libs/langchain/langchain/retrievers/kendra.py @@ -2,10 +2,9 @@ import re from abc import ABC, abstractmethod from typing import Any, Callable, Dict, List, Literal, Optional, Sequence, Union -from pydantic_v1 import BaseModel, Extra, root_validator, validator - from langchain.callbacks.manager import CallbackManagerForRetrieverRun from langchain.docstore.document import Document +from langchain.pydantic_v1 import BaseModel, Extra, root_validator, validator from langchain.schema import BaseRetriever diff --git a/libs/langchain/langchain/retrievers/llama_index.py b/libs/langchain/langchain/retrievers/llama_index.py index e839ecb57ca..42ad10d7bf3 100644 --- a/libs/langchain/langchain/retrievers/llama_index.py +++ b/libs/langchain/langchain/retrievers/llama_index.py @@ -1,8 +1,7 @@ from typing import Any, Dict, List, cast -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForRetrieverRun +from langchain.pydantic_v1 import Field from langchain.schema import BaseRetriever, Document diff --git a/libs/langchain/langchain/retrievers/metal.py b/libs/langchain/langchain/retrievers/metal.py index f5cddf20a98..286de10300a 100644 --- a/libs/langchain/langchain/retrievers/metal.py +++ b/libs/langchain/langchain/retrievers/metal.py @@ -1,8 +1,7 @@ from typing import Any, List, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForRetrieverRun +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseRetriever, Document diff --git a/libs/langchain/langchain/retrievers/milvus.py b/libs/langchain/langchain/retrievers/milvus.py index 3f6c9d9b5ec..2d03388e0cc 100644 --- a/libs/langchain/langchain/retrievers/milvus.py +++ b/libs/langchain/langchain/retrievers/milvus.py @@ -2,10 +2,9 @@ import warnings from typing import Any, Dict, List, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForRetrieverRun from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseRetriever, Document from langchain.vectorstores.milvus import Milvus diff --git a/libs/langchain/langchain/retrievers/multi_query.py b/libs/langchain/langchain/retrievers/multi_query.py index eb93ca6dd95..2085e9f2d92 100644 --- a/libs/langchain/langchain/retrievers/multi_query.py +++ b/libs/langchain/langchain/retrievers/multi_query.py @@ -1,13 +1,12 @@ import logging from typing import List -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForRetrieverRun from langchain.chains.llm import LLMChain from langchain.llms.base import BaseLLM from langchain.output_parsers.pydantic import PydanticOutputParser from langchain.prompts.prompt import PromptTemplate +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import BaseRetriever, Document logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/retrievers/parent_document_retriever.py b/libs/langchain/langchain/retrievers/parent_document_retriever.py index 1efac5a8978..d7ad9acfb12 100644 --- a/libs/langchain/langchain/retrievers/parent_document_retriever.py +++ b/libs/langchain/langchain/retrievers/parent_document_retriever.py @@ -1,9 +1,8 @@ import uuid from typing import List, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForRetrieverRun +from langchain.pydantic_v1 import Field from langchain.schema.document import Document from langchain.schema.retriever import BaseRetriever from langchain.schema.storage import BaseStore diff --git a/libs/langchain/langchain/retrievers/pinecone_hybrid_search.py b/libs/langchain/langchain/retrievers/pinecone_hybrid_search.py index 956c84b5405..a3653164524 100644 --- a/libs/langchain/langchain/retrievers/pinecone_hybrid_search.py +++ b/libs/langchain/langchain/retrievers/pinecone_hybrid_search.py @@ -3,10 +3,9 @@ import hashlib from typing import Any, Dict, List, Optional -from pydantic_v1 import Extra, root_validator - from langchain.callbacks.manager import CallbackManagerForRetrieverRun from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import Extra, root_validator from langchain.schema import BaseRetriever, Document diff --git a/libs/langchain/langchain/retrievers/self_query/base.py b/libs/langchain/langchain/retrievers/self_query/base.py index 4d9b6fd4260..806d4e1502b 100644 --- a/libs/langchain/langchain/retrievers/self_query/base.py +++ b/libs/langchain/langchain/retrievers/self_query/base.py @@ -2,13 +2,12 @@ from typing import Any, Dict, List, Optional, Type, cast -from pydantic_v1 import BaseModel, Field, root_validator - from langchain import LLMChain from langchain.callbacks.manager import CallbackManagerForRetrieverRun from langchain.chains.query_constructor.base import load_query_constructor_chain from langchain.chains.query_constructor.ir import StructuredQuery, Visitor from langchain.chains.query_constructor.schema import AttributeInfo +from langchain.pydantic_v1 import BaseModel, Field, root_validator from langchain.retrievers.self_query.chroma import ChromaTranslator from langchain.retrievers.self_query.deeplake import DeepLakeTranslator from langchain.retrievers.self_query.elasticsearch import ElasticsearchTranslator diff --git a/libs/langchain/langchain/retrievers/time_weighted_retriever.py b/libs/langchain/langchain/retrievers/time_weighted_retriever.py index 169d101157d..de4ff2adf29 100644 --- a/libs/langchain/langchain/retrievers/time_weighted_retriever.py +++ b/libs/langchain/langchain/retrievers/time_weighted_retriever.py @@ -2,9 +2,8 @@ import datetime from copy import deepcopy from typing import Any, Dict, List, Optional, Tuple -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForRetrieverRun +from langchain.pydantic_v1 import Field from langchain.schema import BaseRetriever, Document from langchain.vectorstores.base import VectorStore diff --git a/libs/langchain/langchain/retrievers/weaviate_hybrid_search.py b/libs/langchain/langchain/retrievers/weaviate_hybrid_search.py index b53e1df1600..3251a41cd18 100644 --- a/libs/langchain/langchain/retrievers/weaviate_hybrid_search.py +++ b/libs/langchain/langchain/retrievers/weaviate_hybrid_search.py @@ -3,10 +3,9 @@ from __future__ import annotations from typing import Any, Dict, List, Optional, cast from uuid import uuid4 -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForRetrieverRun from langchain.docstore.document import Document +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseRetriever diff --git a/libs/langchain/langchain/retrievers/web_research.py b/libs/langchain/langchain/retrievers/web_research.py index abc4daeb6bd..5c25a411278 100644 --- a/libs/langchain/langchain/retrievers/web_research.py +++ b/libs/langchain/langchain/retrievers/web_research.py @@ -2,8 +2,6 @@ import logging import re from typing import List, Optional -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForRetrieverRun, CallbackManagerForRetrieverRun, @@ -16,6 +14,7 @@ from langchain.llms import LlamaCpp from langchain.llms.base import BaseLLM from langchain.output_parsers.pydantic import PydanticOutputParser from langchain.prompts import BasePromptTemplate, PromptTemplate +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import BaseRetriever, Document from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.utilities import GoogleSearchAPIWrapper diff --git a/libs/langchain/langchain/retrievers/zep.py b/libs/langchain/langchain/retrievers/zep.py index e8469185b18..5cd0f89799a 100644 --- a/libs/langchain/langchain/retrievers/zep.py +++ b/libs/langchain/langchain/retrievers/zep.py @@ -2,12 +2,11 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any, Dict, List, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForRetrieverRun, CallbackManagerForRetrieverRun, ) +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseRetriever, Document if TYPE_CHECKING: diff --git a/libs/langchain/langchain/retrievers/zilliz.py b/libs/langchain/langchain/retrievers/zilliz.py index 81cdfc5257f..583dbd83731 100644 --- a/libs/langchain/langchain/retrievers/zilliz.py +++ b/libs/langchain/langchain/retrievers/zilliz.py @@ -1,10 +1,9 @@ import warnings from typing import Any, Dict, List, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForRetrieverRun from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseRetriever, Document from langchain.vectorstores.zilliz import Zilliz diff --git a/libs/langchain/langchain/runnables/openai_functions.py b/libs/langchain/langchain/runnables/openai_functions.py index b97c9f213cd..55c9765d20c 100644 --- a/libs/langchain/langchain/runnables/openai_functions.py +++ b/libs/langchain/langchain/runnables/openai_functions.py @@ -38,7 +38,7 @@ class OpenAIFunctionsRouter(RunnableBinding[ChatGeneration, Any]): if functions is not None: assert len(functions) == len(runnables) assert all(func["name"] in runnables for func in functions) - router: Runnable[ChatGeneration, Any] = ( + router = ( JsonOutputFunctionsParser(args_only=False) | {"key": itemgetter("name"), "input": itemgetter("arguments")} | RouterRunnable(runnables) diff --git a/libs/langchain/langchain/schema/document.py b/libs/langchain/langchain/schema/document.py index 518d390f783..feaa1acac0a 100644 --- a/libs/langchain/langchain/schema/document.py +++ b/libs/langchain/langchain/schema/document.py @@ -3,9 +3,8 @@ from __future__ import annotations from abc import ABC, abstractmethod from typing import Any, Sequence -from pydantic_v1 import Field - from langchain.load.serializable import Serializable +from langchain.pydantic_v1 import Field class Document(Serializable): diff --git a/libs/langchain/langchain/schema/messages.py b/libs/langchain/langchain/schema/messages.py index 5f00bf32bbd..0fbef0ba49e 100644 --- a/libs/langchain/langchain/schema/messages.py +++ b/libs/langchain/langchain/schema/messages.py @@ -3,9 +3,8 @@ from __future__ import annotations from abc import abstractmethod from typing import TYPE_CHECKING, Any, Dict, List, Sequence -from pydantic_v1 import Field - from langchain.load.serializable import Serializable +from langchain.pydantic_v1 import Field if TYPE_CHECKING: from langchain.prompts.chat import ChatPromptTemplate diff --git a/libs/langchain/langchain/schema/output.py b/libs/langchain/langchain/schema/output.py index 990af336bf7..589573ee583 100644 --- a/libs/langchain/langchain/schema/output.py +++ b/libs/langchain/langchain/schema/output.py @@ -4,9 +4,8 @@ from copy import deepcopy from typing import Any, Dict, List, Optional from uuid import UUID -from pydantic_v1 import BaseModel, root_validator - from langchain.load.serializable import Serializable +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema.messages import BaseMessage, BaseMessageChunk diff --git a/libs/langchain/langchain/schema/prompt_template.py b/libs/langchain/langchain/schema/prompt_template.py index 3434fd42f85..62c8160c528 100644 --- a/libs/langchain/langchain/schema/prompt_template.py +++ b/libs/langchain/langchain/schema/prompt_template.py @@ -6,9 +6,9 @@ from pathlib import Path from typing import Any, Callable, Dict, List, Mapping, Optional, Union import yaml -from pydantic_v1 import Field, root_validator from langchain.load.serializable import Serializable +from langchain.pydantic_v1 import Field, root_validator from langchain.schema.document import Document from langchain.schema.output_parser import BaseOutputParser from langchain.schema.prompt import PromptValue diff --git a/libs/langchain/langchain/schema/runnable/base.py b/libs/langchain/langchain/schema/runnable/base.py index 2deb87e4def..c9d836cfd8b 100644 --- a/libs/langchain/langchain/schema/runnable/base.py +++ b/libs/langchain/langchain/schema/runnable/base.py @@ -23,11 +23,10 @@ from typing import ( cast, ) -from pydantic_v1 import Field - from langchain.callbacks.base import BaseCallbackManager from langchain.load.dump import dumpd from langchain.load.serializable import Serializable +from langchain.pydantic_v1 import Field from langchain.schema.runnable.config import RunnableConfig from langchain.schema.runnable.utils import ( gather_with_concurrency, diff --git a/libs/langchain/langchain/smith/evaluation/config.py b/libs/langchain/langchain/smith/evaluation/config.py index f369a20769b..9348e2d81cb 100644 --- a/libs/langchain/langchain/smith/evaluation/config.py +++ b/libs/langchain/langchain/smith/evaluation/config.py @@ -3,7 +3,6 @@ from typing import Any, Dict, List, Optional, Union from langsmith import RunEvaluator -from pydantic_v1 import BaseModel, Field from langchain.embeddings.base import Embeddings from langchain.evaluation.criteria.eval_chain import CRITERIA_TYPE @@ -14,6 +13,7 @@ from langchain.evaluation.schema import EvaluatorType, StringEvaluator from langchain.evaluation.string_distance.base import ( StringDistance as StringDistanceEnum, ) +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema.language_model import BaseLanguageModel from langchain.schema.prompt_template import BasePromptTemplate diff --git a/libs/langchain/langchain/tools/amadeus/base.py b/libs/langchain/langchain/tools/amadeus/base.py index 90e0ff35e37..c2db135135a 100644 --- a/libs/langchain/langchain/tools/amadeus/base.py +++ b/libs/langchain/langchain/tools/amadeus/base.py @@ -3,8 +3,7 @@ from __future__ import annotations from typing import TYPE_CHECKING -from pydantic_v1 import Field - +from langchain.pydantic_v1 import Field from langchain.tools.amadeus.utils import authenticate from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/tools/amadeus/closest_airport.py b/libs/langchain/langchain/tools/amadeus/closest_airport.py index 22133b106ac..ff55239e04d 100644 --- a/libs/langchain/langchain/tools/amadeus/closest_airport.py +++ b/libs/langchain/langchain/tools/amadeus/closest_airport.py @@ -1,10 +1,9 @@ from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun from langchain.chains import LLMChain from langchain.chat_models import ChatOpenAI +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.amadeus.base import AmadeusBaseTool diff --git a/libs/langchain/langchain/tools/amadeus/flight_search.py b/libs/langchain/langchain/tools/amadeus/flight_search.py index bd88cd3a078..6a82e9bc2e7 100644 --- a/libs/langchain/langchain/tools/amadeus/flight_search.py +++ b/libs/langchain/langchain/tools/amadeus/flight_search.py @@ -2,9 +2,8 @@ import logging from datetime import datetime as dt from typing import Dict, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.amadeus.base import AmadeusBaseTool logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/tools/arxiv/tool.py b/libs/langchain/langchain/tools/arxiv/tool.py index 224c0432709..f7fb0fdb26c 100644 --- a/libs/langchain/langchain/tools/arxiv/tool.py +++ b/libs/langchain/langchain/tools/arxiv/tool.py @@ -2,9 +2,8 @@ from typing import Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.utilities.arxiv import ArxivAPIWrapper diff --git a/libs/langchain/langchain/tools/azure_cognitive_services/form_recognizer.py b/libs/langchain/langchain/tools/azure_cognitive_services/form_recognizer.py index be5cd20629d..74a0a33253e 100644 --- a/libs/langchain/langchain/tools/azure_cognitive_services/form_recognizer.py +++ b/libs/langchain/langchain/tools/azure_cognitive_services/form_recognizer.py @@ -3,9 +3,8 @@ from __future__ import annotations import logging from typing import Any, Dict, List, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import root_validator from langchain.tools.azure_cognitive_services.utils import detect_file_src_type from langchain.tools.base import BaseTool from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/tools/azure_cognitive_services/image_analysis.py b/libs/langchain/langchain/tools/azure_cognitive_services/image_analysis.py index c39b2190969..1dd2b0192ec 100644 --- a/libs/langchain/langchain/tools/azure_cognitive_services/image_analysis.py +++ b/libs/langchain/langchain/tools/azure_cognitive_services/image_analysis.py @@ -3,9 +3,8 @@ from __future__ import annotations import logging from typing import Any, Dict, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import root_validator from langchain.tools.azure_cognitive_services.utils import detect_file_src_type from langchain.tools.base import BaseTool from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/tools/azure_cognitive_services/speech2text.py b/libs/langchain/langchain/tools/azure_cognitive_services/speech2text.py index f3a9bf46b0c..57283b979b8 100644 --- a/libs/langchain/langchain/tools/azure_cognitive_services/speech2text.py +++ b/libs/langchain/langchain/tools/azure_cognitive_services/speech2text.py @@ -4,9 +4,8 @@ import logging import time from typing import Any, Dict, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import root_validator from langchain.tools.azure_cognitive_services.utils import ( detect_file_src_type, download_audio_from_url, diff --git a/libs/langchain/langchain/tools/azure_cognitive_services/text2speech.py b/libs/langchain/langchain/tools/azure_cognitive_services/text2speech.py index 78250f39b89..2049440d207 100644 --- a/libs/langchain/langchain/tools/azure_cognitive_services/text2speech.py +++ b/libs/langchain/langchain/tools/azure_cognitive_services/text2speech.py @@ -4,9 +4,8 @@ import logging import tempfile from typing import Any, Dict, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import root_validator from langchain.tools.base import BaseTool from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/tools/base.py b/libs/langchain/langchain/tools/base.py index 40b061e5420..2ba99140c6c 100644 --- a/libs/langchain/langchain/tools/base.py +++ b/libs/langchain/langchain/tools/base.py @@ -8,24 +8,6 @@ from functools import partial from inspect import signature from typing import Any, Awaitable, Callable, Dict, List, Optional, Tuple, Type, Union -from pydantic_v1 import ( - BaseModel, - Extra, - Field, - create_model, - root_validator, - validate_arguments, -) - -# The metaclass must be imported directly from the pydantic module rather than -# from the proxy module, otherwise it looks like inconsistent metaclasses are -# used raising an exception. -try: - from pydantic.v1.main import ModelMetaclass -except ImportError: - from pydantic.main import ModelMetaclass - - from langchain.callbacks.base import BaseCallbackManager from langchain.callbacks.manager import ( AsyncCallbackManager, @@ -34,6 +16,14 @@ from langchain.callbacks.manager import ( CallbackManagerForToolRun, Callbacks, ) +from langchain.pydantic_v1 import ( + BaseModel, + Extra, + Field, + create_model, + root_validator, + validate_arguments, +) from langchain.schema.runnable import Runnable, RunnableConfig @@ -41,40 +31,6 @@ class SchemaAnnotationError(TypeError): """Raised when 'args_schema' is missing or has an incorrect type annotation.""" -class ToolMetaclass(ModelMetaclass): - """Metaclass for BaseTool to ensure the provided args_schema - - doesn't silently ignore.""" - - def __new__( - cls: Type[ToolMetaclass], name: str, bases: Tuple[Type, ...], dct: dict - ) -> ToolMetaclass: - """Create the definition of the new tool class.""" - schema_type: Optional[Type[BaseModel]] = dct.get("args_schema") - if schema_type is not None: - schema_annotations = dct.get("__annotations__", {}) - args_schema_type = schema_annotations.get("args_schema", None) - if args_schema_type is None or args_schema_type == BaseModel: - # Throw errors for common mis-annotations. - # TODO: Use get_args / get_origin and fully - # specify valid annotations. - typehint_mandate = """ -class ChildTool(BaseTool): - ... - args_schema: Type[BaseModel] = SchemaClass - ...""" - raise SchemaAnnotationError( - f"Tool definition for {name} must include valid type annotations" - f" for argument 'args_schema' to behave as expected.\n" - f"Expected annotation of 'Type[BaseModel]'" - f" but got '{args_schema_type}'.\n" - f"Expected class looks like:\n" - f"{typehint_mandate}" - ) - # Pass through to Pydantic's metaclass - return super().__new__(cls, name, bases, dct) - - def _create_subset_model( name: str, model: BaseModel, field_names: list ) -> Type[BaseModel]: @@ -140,9 +96,35 @@ class ToolException(Exception): pass -class BaseTool(BaseModel, Runnable[Union[str, Dict], Any], metaclass=ToolMetaclass): +class BaseTool(BaseModel, Runnable[Union[str, Dict], Any]): """Interface LangChain tools must implement.""" + def __init_subclass__(cls, **kwargs: Any) -> None: + """Create the definition of the new tool class.""" + super().__init_subclass__(**kwargs) + + args_schema_type = cls.__annotations__.get("args_schema", None) + + if args_schema_type is not None: + if args_schema_type is None or args_schema_type == BaseModel: + # Throw errors for common mis-annotations. + # TODO: Use get_args / get_origin and fully + # specify valid annotations. + typehint_mandate = """ +class ChildTool(BaseTool): + ... + args_schema: Type[BaseModel] = SchemaClass + ...""" + name = cls.__name__ + raise SchemaAnnotationError( + f"Tool definition for {name} must include valid type annotations" + f" for argument 'args_schema' to behave as expected.\n" + f"Expected annotation of 'Type[BaseModel]'" + f" but got '{args_schema_type}'.\n" + f"Expected class looks like:\n" + f"{typehint_mandate}" + ) + name: str """The unique name of the tool that clearly communicates its purpose.""" description: str diff --git a/libs/langchain/langchain/tools/dataforseo_api_search/tool.py b/libs/langchain/langchain/tools/dataforseo_api_search/tool.py index 9dfc3c306ff..f029da17efc 100644 --- a/libs/langchain/langchain/tools/dataforseo_api_search/tool.py +++ b/libs/langchain/langchain/tools/dataforseo_api_search/tool.py @@ -2,12 +2,11 @@ from typing import Optional -from pydantic_v1.fields import Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.utilities.dataforseo_api_search import DataForSeoAPIWrapper diff --git a/libs/langchain/langchain/tools/ddg_search/tool.py b/libs/langchain/langchain/tools/ddg_search/tool.py index e66aaa2569b..7d55b60119b 100644 --- a/libs/langchain/langchain/tools/ddg_search/tool.py +++ b/libs/langchain/langchain/tools/ddg_search/tool.py @@ -3,9 +3,8 @@ import warnings from typing import Any, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.utilities.duckduckgo_search import DuckDuckGoSearchAPIWrapper diff --git a/libs/langchain/langchain/tools/file_management/copy.py b/libs/langchain/langchain/tools/file_management/copy.py index fabd94d9c60..48fabe3be50 100644 --- a/libs/langchain/langchain/tools/file_management/copy.py +++ b/libs/langchain/langchain/tools/file_management/copy.py @@ -1,9 +1,8 @@ import shutil from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.tools.file_management.utils import ( INVALID_PATH_TEMPLATE, diff --git a/libs/langchain/langchain/tools/file_management/delete.py b/libs/langchain/langchain/tools/file_management/delete.py index 8db201a5fc3..07be6e9e10f 100644 --- a/libs/langchain/langchain/tools/file_management/delete.py +++ b/libs/langchain/langchain/tools/file_management/delete.py @@ -1,9 +1,8 @@ import os from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.tools.file_management.utils import ( INVALID_PATH_TEMPLATE, diff --git a/libs/langchain/langchain/tools/file_management/file_search.py b/libs/langchain/langchain/tools/file_management/file_search.py index f8844c33013..aabdb389534 100644 --- a/libs/langchain/langchain/tools/file_management/file_search.py +++ b/libs/langchain/langchain/tools/file_management/file_search.py @@ -2,9 +2,8 @@ import fnmatch import os from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.tools.file_management.utils import ( INVALID_PATH_TEMPLATE, diff --git a/libs/langchain/langchain/tools/file_management/list_dir.py b/libs/langchain/langchain/tools/file_management/list_dir.py index 54e35b68a96..5399be28dd0 100644 --- a/libs/langchain/langchain/tools/file_management/list_dir.py +++ b/libs/langchain/langchain/tools/file_management/list_dir.py @@ -1,9 +1,8 @@ import os from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.tools.file_management.utils import ( INVALID_PATH_TEMPLATE, diff --git a/libs/langchain/langchain/tools/file_management/move.py b/libs/langchain/langchain/tools/file_management/move.py index 246a2b6bf50..4d348821a86 100644 --- a/libs/langchain/langchain/tools/file_management/move.py +++ b/libs/langchain/langchain/tools/file_management/move.py @@ -1,9 +1,8 @@ import shutil from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.tools.file_management.utils import ( INVALID_PATH_TEMPLATE, diff --git a/libs/langchain/langchain/tools/file_management/read.py b/libs/langchain/langchain/tools/file_management/read.py index 016ed40104a..1d1a6edf4d8 100644 --- a/libs/langchain/langchain/tools/file_management/read.py +++ b/libs/langchain/langchain/tools/file_management/read.py @@ -1,8 +1,7 @@ from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.tools.file_management.utils import ( INVALID_PATH_TEMPLATE, diff --git a/libs/langchain/langchain/tools/file_management/utils.py b/libs/langchain/langchain/tools/file_management/utils.py index 9fccad22044..21b0807e51a 100644 --- a/libs/langchain/langchain/tools/file_management/utils.py +++ b/libs/langchain/langchain/tools/file_management/utils.py @@ -2,7 +2,7 @@ import sys from pathlib import Path from typing import Optional -from pydantic_v1 import BaseModel +from langchain.pydantic_v1 import BaseModel def is_relative_to(path: Path, root: Path) -> bool: diff --git a/libs/langchain/langchain/tools/file_management/write.py b/libs/langchain/langchain/tools/file_management/write.py index 81bbd7ba836..09bac8a3547 100644 --- a/libs/langchain/langchain/tools/file_management/write.py +++ b/libs/langchain/langchain/tools/file_management/write.py @@ -1,8 +1,7 @@ from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.tools.file_management.utils import ( INVALID_PATH_TEMPLATE, diff --git a/libs/langchain/langchain/tools/github/tool.py b/libs/langchain/langchain/tools/github/tool.py index d053689910f..4de7fa1c66f 100644 --- a/libs/langchain/langchain/tools/github/tool.py +++ b/libs/langchain/langchain/tools/github/tool.py @@ -9,9 +9,8 @@ To use this tool, you must first set as environment variables: """ from typing import Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.utilities.github import GitHubAPIWrapper diff --git a/libs/langchain/langchain/tools/gmail/base.py b/libs/langchain/langchain/tools/gmail/base.py index b55d6ac2120..8ce5e8e85b0 100644 --- a/libs/langchain/langchain/tools/gmail/base.py +++ b/libs/langchain/langchain/tools/gmail/base.py @@ -3,8 +3,7 @@ from __future__ import annotations from typing import TYPE_CHECKING -from pydantic_v1 import Field - +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.tools.gmail.utils import build_resource_service diff --git a/libs/langchain/langchain/tools/gmail/create_draft.py b/libs/langchain/langchain/tools/gmail/create_draft.py index d7213f965f9..10d0de57843 100644 --- a/libs/langchain/langchain/tools/gmail/create_draft.py +++ b/libs/langchain/langchain/tools/gmail/create_draft.py @@ -2,9 +2,8 @@ import base64 from email.message import EmailMessage from typing import List, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.gmail.base import GmailBaseTool diff --git a/libs/langchain/langchain/tools/gmail/get_message.py b/libs/langchain/langchain/tools/gmail/get_message.py index 3089839de2e..e1cca7b13eb 100644 --- a/libs/langchain/langchain/tools/gmail/get_message.py +++ b/libs/langchain/langchain/tools/gmail/get_message.py @@ -2,9 +2,8 @@ import base64 import email from typing import Dict, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.gmail.base import GmailBaseTool from langchain.tools.gmail.utils import clean_email_body diff --git a/libs/langchain/langchain/tools/gmail/get_thread.py b/libs/langchain/langchain/tools/gmail/get_thread.py index 83626148acb..61754a43a81 100644 --- a/libs/langchain/langchain/tools/gmail/get_thread.py +++ b/libs/langchain/langchain/tools/gmail/get_thread.py @@ -1,8 +1,7 @@ from typing import Dict, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.gmail.base import GmailBaseTool diff --git a/libs/langchain/langchain/tools/gmail/search.py b/libs/langchain/langchain/tools/gmail/search.py index c10b71a24ad..045834abc15 100644 --- a/libs/langchain/langchain/tools/gmail/search.py +++ b/libs/langchain/langchain/tools/gmail/search.py @@ -3,9 +3,8 @@ import email from enum import Enum from typing import Any, Dict, List, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.gmail.base import GmailBaseTool from langchain.tools.gmail.utils import clean_email_body diff --git a/libs/langchain/langchain/tools/gmail/send_message.py b/libs/langchain/langchain/tools/gmail/send_message.py index 6916f9d8871..7121a83d3c8 100644 --- a/libs/langchain/langchain/tools/gmail/send_message.py +++ b/libs/langchain/langchain/tools/gmail/send_message.py @@ -4,9 +4,8 @@ from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from typing import Any, Dict, List, Optional, Union -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.gmail.base import GmailBaseTool diff --git a/libs/langchain/langchain/tools/google_places/tool.py b/libs/langchain/langchain/tools/google_places/tool.py index 44143325815..c34c5198762 100644 --- a/libs/langchain/langchain/tools/google_places/tool.py +++ b/libs/langchain/langchain/tools/google_places/tool.py @@ -2,9 +2,8 @@ from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.utilities.google_places_api import GooglePlacesAPIWrapper diff --git a/libs/langchain/langchain/tools/google_serper/tool.py b/libs/langchain/langchain/tools/google_serper/tool.py index 7773249d61a..6c6e251bbe3 100644 --- a/libs/langchain/langchain/tools/google_serper/tool.py +++ b/libs/langchain/langchain/tools/google_serper/tool.py @@ -2,12 +2,11 @@ from typing import Optional -from pydantic_v1.fields import Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.utilities.google_serper import GoogleSerperAPIWrapper diff --git a/libs/langchain/langchain/tools/human/tool.py b/libs/langchain/langchain/tools/human/tool.py index d16e62a158f..e8d25340dfa 100644 --- a/libs/langchain/langchain/tools/human/tool.py +++ b/libs/langchain/langchain/tools/human/tool.py @@ -2,9 +2,8 @@ from typing import Callable, Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/tools/jira/tool.py b/libs/langchain/langchain/tools/jira/tool.py index fa493cc23e0..5ff55a340eb 100644 --- a/libs/langchain/langchain/tools/jira/tool.py +++ b/libs/langchain/langchain/tools/jira/tool.py @@ -30,9 +30,8 @@ agent = initialize_agent( """ from typing import Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.utilities.jira import JiraAPIWrapper diff --git a/libs/langchain/langchain/tools/json/tool.py b/libs/langchain/langchain/tools/json/tool.py index e5048167959..9f82ce91ff4 100644 --- a/libs/langchain/langchain/tools/json/tool.py +++ b/libs/langchain/langchain/tools/json/tool.py @@ -7,7 +7,7 @@ import re from pathlib import Path from typing import Dict, List, Optional, Union -from pydantic_v1 import BaseModel +from langchain.pydantic_v1 import BaseModel from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, diff --git a/libs/langchain/langchain/tools/multion/create_session.py b/libs/langchain/langchain/tools/multion/create_session.py index 17717cf5eb3..58a1951b592 100644 --- a/libs/langchain/langchain/tools/multion/create_session.py +++ b/libs/langchain/langchain/tools/multion/create_session.py @@ -1,8 +1,7 @@ from typing import TYPE_CHECKING, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool if TYPE_CHECKING: diff --git a/libs/langchain/langchain/tools/multion/update_session.py b/libs/langchain/langchain/tools/multion/update_session.py index 9382879518a..12e148d19a0 100644 --- a/libs/langchain/langchain/tools/multion/update_session.py +++ b/libs/langchain/langchain/tools/multion/update_session.py @@ -1,8 +1,7 @@ from typing import TYPE_CHECKING, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool if TYPE_CHECKING: diff --git a/libs/langchain/langchain/tools/nuclia/tool.py b/libs/langchain/langchain/tools/nuclia/tool.py index cacb164f890..e4aba0fa72c 100644 --- a/libs/langchain/langchain/tools/nuclia/tool.py +++ b/libs/langchain/langchain/tools/nuclia/tool.py @@ -16,12 +16,12 @@ import os from typing import Any, Dict, Optional, Type, Union import requests -from pydantic_v1 import BaseModel, Field from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/tools/office365/base.py b/libs/langchain/langchain/tools/office365/base.py index 90d2db401f4..35407c663d1 100644 --- a/libs/langchain/langchain/tools/office365/base.py +++ b/libs/langchain/langchain/tools/office365/base.py @@ -3,8 +3,7 @@ from __future__ import annotations from typing import TYPE_CHECKING -from pydantic_v1 import Field - +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.tools.office365.utils import authenticate diff --git a/libs/langchain/langchain/tools/office365/create_draft_message.py b/libs/langchain/langchain/tools/office365/create_draft_message.py index 0d109ffbc2b..c3d69bf9547 100644 --- a/libs/langchain/langchain/tools/office365/create_draft_message.py +++ b/libs/langchain/langchain/tools/office365/create_draft_message.py @@ -1,8 +1,7 @@ from typing import List, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.office365.base import O365BaseTool diff --git a/libs/langchain/langchain/tools/office365/events_search.py b/libs/langchain/langchain/tools/office365/events_search.py index ec3ab19c52d..7e1b1bd1306 100644 --- a/libs/langchain/langchain/tools/office365/events_search.py +++ b/libs/langchain/langchain/tools/office365/events_search.py @@ -7,9 +7,8 @@ https://learn.microsoft.com/en-us/graph/auth/ from datetime import datetime as dt from typing import Any, Dict, List, Optional, Type -from pydantic_v1 import BaseModel, Extra, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Extra, Field from langchain.tools.office365.base import O365BaseTool from langchain.tools.office365.utils import clean_body diff --git a/libs/langchain/langchain/tools/office365/messages_search.py b/libs/langchain/langchain/tools/office365/messages_search.py index 67182664fb7..eca8ed33f6f 100644 --- a/libs/langchain/langchain/tools/office365/messages_search.py +++ b/libs/langchain/langchain/tools/office365/messages_search.py @@ -6,9 +6,8 @@ https://learn.microsoft.com/en-us/graph/auth/ from typing import Any, Dict, List, Optional, Type -from pydantic_v1 import BaseModel, Extra, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Extra, Field from langchain.tools.office365.base import O365BaseTool from langchain.tools.office365.utils import clean_body diff --git a/libs/langchain/langchain/tools/office365/send_event.py b/libs/langchain/langchain/tools/office365/send_event.py index 8d925c28e15..6151dde1439 100644 --- a/libs/langchain/langchain/tools/office365/send_event.py +++ b/libs/langchain/langchain/tools/office365/send_event.py @@ -7,9 +7,8 @@ https://learn.microsoft.com/en-us/graph/auth/ from datetime import datetime as dt from typing import List, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.office365.base import O365BaseTool diff --git a/libs/langchain/langchain/tools/office365/send_message.py b/libs/langchain/langchain/tools/office365/send_message.py index b420ec0f3b2..3590ba406fa 100644 --- a/libs/langchain/langchain/tools/office365/send_message.py +++ b/libs/langchain/langchain/tools/office365/send_message.py @@ -1,8 +1,7 @@ from typing import List, Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.office365.base import O365BaseTool diff --git a/libs/langchain/langchain/tools/openapi/utils/api_models.py b/libs/langchain/langchain/tools/openapi/utils/api_models.py index 8922d0cd59a..5c0b8ba959b 100644 --- a/libs/langchain/langchain/tools/openapi/utils/api_models.py +++ b/libs/langchain/langchain/tools/openapi/utils/api_models.py @@ -3,9 +3,7 @@ import logging from enum import Enum from typing import Any, Dict, List, Optional, Sequence, Tuple, Type, Union -from pydantic_v1 import BaseModel, Field - -from langchain import _PYDANTIC_MAJOR_VERSION +from langchain.pydantic_v1 import _PYDANTIC_MAJOR_VERSION, BaseModel, Field from langchain.tools.openapi.utils.openapi_utils import HTTPVerb, OpenAPISpec logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/tools/openweathermap/tool.py b/libs/langchain/langchain/tools/openweathermap/tool.py index 2d8b9e57779..2aa7ad1ba2f 100644 --- a/libs/langchain/langchain/tools/openweathermap/tool.py +++ b/libs/langchain/langchain/tools/openweathermap/tool.py @@ -2,9 +2,8 @@ from typing import Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.utilities import OpenWeatherMapAPIWrapper diff --git a/libs/langchain/langchain/tools/playwright/base.py b/libs/langchain/langchain/tools/playwright/base.py index 139195994d1..bf9209fff8a 100644 --- a/libs/langchain/langchain/tools/playwright/base.py +++ b/libs/langchain/langchain/tools/playwright/base.py @@ -2,8 +2,7 @@ from __future__ import annotations from typing import TYPE_CHECKING, Optional, Tuple, Type -from pydantic_v1 import root_validator - +from langchain.pydantic_v1 import root_validator from langchain.tools.base import BaseTool if TYPE_CHECKING: diff --git a/libs/langchain/langchain/tools/playwright/click.py b/libs/langchain/langchain/tools/playwright/click.py index b5191733ce5..b93b69ca126 100644 --- a/libs/langchain/langchain/tools/playwright/click.py +++ b/libs/langchain/langchain/tools/playwright/click.py @@ -2,12 +2,11 @@ from __future__ import annotations from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.playwright.base import BaseBrowserTool from langchain.tools.playwright.utils import ( aget_current_page, diff --git a/libs/langchain/langchain/tools/playwright/current_page.py b/libs/langchain/langchain/tools/playwright/current_page.py index 44460905791..b26383f3445 100644 --- a/libs/langchain/langchain/tools/playwright/current_page.py +++ b/libs/langchain/langchain/tools/playwright/current_page.py @@ -2,12 +2,11 @@ from __future__ import annotations from typing import Optional, Type -from pydantic_v1 import BaseModel - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel from langchain.tools.playwright.base import BaseBrowserTool from langchain.tools.playwright.utils import aget_current_page, get_current_page diff --git a/libs/langchain/langchain/tools/playwright/extract_hyperlinks.py b/libs/langchain/langchain/tools/playwright/extract_hyperlinks.py index f1ddca25df5..c1c4292c2f2 100644 --- a/libs/langchain/langchain/tools/playwright/extract_hyperlinks.py +++ b/libs/langchain/langchain/tools/playwright/extract_hyperlinks.py @@ -3,12 +3,11 @@ from __future__ import annotations import json from typing import TYPE_CHECKING, Any, Optional, Type -from pydantic_v1 import BaseModel, Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel, Field, root_validator from langchain.tools.playwright.base import BaseBrowserTool from langchain.tools.playwright.utils import aget_current_page, get_current_page diff --git a/libs/langchain/langchain/tools/playwright/extract_text.py b/libs/langchain/langchain/tools/playwright/extract_text.py index 82cc707f641..86d7a4b556f 100644 --- a/libs/langchain/langchain/tools/playwright/extract_text.py +++ b/libs/langchain/langchain/tools/playwright/extract_text.py @@ -2,12 +2,11 @@ from __future__ import annotations from typing import Optional, Type -from pydantic_v1 import BaseModel, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.tools.playwright.base import BaseBrowserTool from langchain.tools.playwright.utils import aget_current_page, get_current_page diff --git a/libs/langchain/langchain/tools/playwright/get_elements.py b/libs/langchain/langchain/tools/playwright/get_elements.py index 66840554417..f5098c39d66 100644 --- a/libs/langchain/langchain/tools/playwright/get_elements.py +++ b/libs/langchain/langchain/tools/playwright/get_elements.py @@ -3,12 +3,11 @@ from __future__ import annotations import json from typing import TYPE_CHECKING, List, Optional, Sequence, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.playwright.base import BaseBrowserTool from langchain.tools.playwright.utils import aget_current_page, get_current_page diff --git a/libs/langchain/langchain/tools/playwright/navigate.py b/libs/langchain/langchain/tools/playwright/navigate.py index d59f4558a44..ac91f1f2418 100644 --- a/libs/langchain/langchain/tools/playwright/navigate.py +++ b/libs/langchain/langchain/tools/playwright/navigate.py @@ -2,12 +2,11 @@ from __future__ import annotations from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.playwright.base import BaseBrowserTool from langchain.tools.playwright.utils import ( aget_current_page, diff --git a/libs/langchain/langchain/tools/playwright/navigate_back.py b/libs/langchain/langchain/tools/playwright/navigate_back.py index 16c85325138..41f9ee0323c 100644 --- a/libs/langchain/langchain/tools/playwright/navigate_back.py +++ b/libs/langchain/langchain/tools/playwright/navigate_back.py @@ -2,12 +2,11 @@ from __future__ import annotations from typing import Optional, Type -from pydantic_v1 import BaseModel - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel from langchain.tools.playwright.base import BaseBrowserTool from langchain.tools.playwright.utils import ( aget_current_page, diff --git a/libs/langchain/langchain/tools/plugin.py b/libs/langchain/langchain/tools/plugin.py index f54d7dc40e3..a9b8e19c1fc 100644 --- a/libs/langchain/langchain/tools/plugin.py +++ b/libs/langchain/langchain/tools/plugin.py @@ -5,12 +5,12 @@ from typing import Optional, Type import requests import yaml -from pydantic_v1 import BaseModel from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/tools/powerbi/tool.py b/libs/langchain/langchain/tools/powerbi/tool.py index c9f7ee835e9..017e64a20fc 100644 --- a/libs/langchain/langchain/tools/powerbi/tool.py +++ b/libs/langchain/langchain/tools/powerbi/tool.py @@ -3,14 +3,13 @@ import logging from time import perf_counter from typing import Any, Dict, Optional, Tuple -from pydantic_v1 import Field, validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) from langchain.chains.llm import LLMChain from langchain.chat_models.openai import _import_tiktoken +from langchain.pydantic_v1 import Field, validator from langchain.tools.base import BaseTool from langchain.tools.powerbi.prompt import ( BAD_REQUEST_RESPONSE, diff --git a/libs/langchain/langchain/tools/pubmed/tool.py b/libs/langchain/langchain/tools/pubmed/tool.py index 6a82eef66e3..e5907a8269e 100644 --- a/libs/langchain/langchain/tools/pubmed/tool.py +++ b/libs/langchain/langchain/tools/pubmed/tool.py @@ -1,8 +1,7 @@ from typing import Optional -from pydantic_v1 import Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import Field from langchain.tools.base import BaseTool from langchain.utilities.pubmed import PubMedAPIWrapper diff --git a/libs/langchain/langchain/tools/python/tool.py b/libs/langchain/langchain/tools/python/tool.py index 8c8bb11ef79..1a13466fd6f 100644 --- a/libs/langchain/langchain/tools/python/tool.py +++ b/libs/langchain/langchain/tools/python/tool.py @@ -8,12 +8,11 @@ from contextlib import redirect_stdout from io import StringIO from typing import Any, Dict, Optional -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import Field, root_validator from langchain.tools.base import BaseTool from langchain.utilities import PythonREPL diff --git a/libs/langchain/langchain/tools/requests/tool.py b/libs/langchain/langchain/tools/requests/tool.py index db74bc055e9..b47cd98da53 100644 --- a/libs/langchain/langchain/tools/requests/tool.py +++ b/libs/langchain/langchain/tools/requests/tool.py @@ -3,7 +3,7 @@ import json from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel +from langchain.pydantic_v1 import BaseModel from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, diff --git a/libs/langchain/langchain/tools/scenexplain/tool.py b/libs/langchain/langchain/tools/scenexplain/tool.py index 87a09a2e6a9..59d03125b4f 100644 --- a/libs/langchain/langchain/tools/scenexplain/tool.py +++ b/libs/langchain/langchain/tools/scenexplain/tool.py @@ -1,9 +1,8 @@ """Tool for the SceneXplain API.""" from typing import Optional -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool from langchain.utilities.scenexplain import SceneXplainAPIWrapper diff --git a/libs/langchain/langchain/tools/searx_search/tool.py b/libs/langchain/langchain/tools/searx_search/tool.py index 422ef73941b..a6ff60a3f19 100644 --- a/libs/langchain/langchain/tools/searx_search/tool.py +++ b/libs/langchain/langchain/tools/searx_search/tool.py @@ -1,12 +1,11 @@ """Tool for the SearxNG search API.""" from typing import Optional -from pydantic_v1 import Extra - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import Extra from langchain.tools.base import BaseTool, Field from langchain.utilities.searx_search import SearxSearchWrapper diff --git a/libs/langchain/langchain/tools/shell/tool.py b/libs/langchain/langchain/tools/shell/tool.py index 82125e013ad..3ad4c3ed980 100644 --- a/libs/langchain/langchain/tools/shell/tool.py +++ b/libs/langchain/langchain/tools/shell/tool.py @@ -3,12 +3,11 @@ import platform import warnings from typing import List, Optional, Type, Union -from pydantic_v1 import BaseModel, Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel, Field, root_validator from langchain.tools.base import BaseTool from langchain.utilities.bash import BashProcess diff --git a/libs/langchain/langchain/tools/sleep/tool.py b/libs/langchain/langchain/tools/sleep/tool.py index ef7bcfe8e45..91906c9f088 100644 --- a/libs/langchain/langchain/tools/sleep/tool.py +++ b/libs/langchain/langchain/tools/sleep/tool.py @@ -3,12 +3,11 @@ from asyncio import sleep as asleep from time import sleep from typing import Optional, Type -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel, Field from langchain.tools.base import BaseTool diff --git a/libs/langchain/langchain/tools/spark_sql/tool.py b/libs/langchain/langchain/tools/spark_sql/tool.py index d3a1a383e72..4a650f7d518 100644 --- a/libs/langchain/langchain/tools/spark_sql/tool.py +++ b/libs/langchain/langchain/tools/spark_sql/tool.py @@ -2,7 +2,7 @@ """Tools for interacting with Spark SQL.""" from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Extra, Field, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.schema.language_model import BaseLanguageModel from langchain.callbacks.manager import ( diff --git a/libs/langchain/langchain/tools/sql_database/tool.py b/libs/langchain/langchain/tools/sql_database/tool.py index 3041400d919..f60275bcafb 100644 --- a/libs/langchain/langchain/tools/sql_database/tool.py +++ b/libs/langchain/langchain/tools/sql_database/tool.py @@ -2,7 +2,7 @@ """Tools for interacting with a SQL database.""" from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Extra, Field, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.schema.language_model import BaseLanguageModel from langchain.callbacks.manager import ( diff --git a/libs/langchain/langchain/tools/steamship_image_generation/tool.py b/libs/langchain/langchain/tools/steamship_image_generation/tool.py index 91845060883..e6c47892001 100644 --- a/libs/langchain/langchain/tools/steamship_image_generation/tool.py +++ b/libs/langchain/langchain/tools/steamship_image_generation/tool.py @@ -16,9 +16,8 @@ from __future__ import annotations from enum import Enum from typing import TYPE_CHECKING, Dict, Optional -from pydantic_v1 import root_validator - from langchain.callbacks.manager import CallbackManagerForToolRun +from langchain.pydantic_v1 import root_validator from langchain.tools import BaseTool from langchain.tools.steamship_image_generation.utils import make_image_public from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/tools/vectorstore/tool.py b/libs/langchain/langchain/tools/vectorstore/tool.py index 9fa0e0e4207..59c4be604a0 100644 --- a/libs/langchain/langchain/tools/vectorstore/tool.py +++ b/libs/langchain/langchain/tools/vectorstore/tool.py @@ -3,11 +3,10 @@ import json from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Field - from langchain.callbacks.manager import CallbackManagerForToolRun from langchain.chains import RetrievalQA, RetrievalQAWithSourcesChain from langchain.llms.openai import OpenAI +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema.language_model import BaseLanguageModel from langchain.tools.base import BaseTool from langchain.vectorstores.base import VectorStore diff --git a/libs/langchain/langchain/tools/zapier/tool.py b/libs/langchain/langchain/tools/zapier/tool.py index ec611836e0a..37f8d581639 100644 --- a/libs/langchain/langchain/tools/zapier/tool.py +++ b/libs/langchain/langchain/tools/zapier/tool.py @@ -79,12 +79,11 @@ agent.run(("Summarize the last email I received regarding Silicon Valley Bank. " """ from typing import Any, Dict, Optional -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import Field, root_validator from langchain.tools.base import BaseTool from langchain.tools.zapier.prompt import BASE_ZAPIER_TOOL_PROMPT from langchain.utilities.zapier import ZapierNLAWrapper diff --git a/libs/langchain/langchain/utilities/alpha_vantage.py b/libs/langchain/langchain/utilities/alpha_vantage.py index 638174f0e9e..4a1c6381a7c 100644 --- a/libs/langchain/langchain/utilities/alpha_vantage.py +++ b/libs/langchain/langchain/utilities/alpha_vantage.py @@ -2,8 +2,8 @@ from typing import Any, Dict, List, Optional import requests -from pydantic_v1 import BaseModel, Extra, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/arxiv.py b/libs/langchain/langchain/utilities/arxiv.py index ff89badfe4d..3a048908508 100644 --- a/libs/langchain/langchain/utilities/arxiv.py +++ b/libs/langchain/langchain/utilities/arxiv.py @@ -3,8 +3,7 @@ import logging import os from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, root_validator - +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import Document logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/utilities/awslambda.py b/libs/langchain/langchain/utilities/awslambda.py index 7bbb619b828..f75cf3eec28 100644 --- a/libs/langchain/langchain/utilities/awslambda.py +++ b/libs/langchain/langchain/utilities/awslambda.py @@ -2,7 +2,7 @@ import json from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Extra, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, root_validator class LambdaWrapper(BaseModel): diff --git a/libs/langchain/langchain/utilities/bibtex.py b/libs/langchain/langchain/utilities/bibtex.py index 84e749eb199..8dcbda88518 100644 --- a/libs/langchain/langchain/utilities/bibtex.py +++ b/libs/langchain/langchain/utilities/bibtex.py @@ -2,7 +2,7 @@ import logging from typing import Any, Dict, List, Mapping -from pydantic_v1 import BaseModel, Extra, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, root_validator logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/utilities/bing_search.py b/libs/langchain/langchain/utilities/bing_search.py index eb6d99dad14..75dd964dbb2 100644 --- a/libs/langchain/langchain/utilities/bing_search.py +++ b/libs/langchain/langchain/utilities/bing_search.py @@ -6,8 +6,8 @@ https://levelup.gitconnected.com/api-tutorial-how-to-use-bing-web-search-api-in- from typing import Dict, List import requests -from pydantic_v1 import BaseModel, Extra, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/brave_search.py b/libs/langchain/langchain/utilities/brave_search.py index 0eff1cbffc5..b3d8b40fe76 100644 --- a/libs/langchain/langchain/utilities/brave_search.py +++ b/libs/langchain/langchain/utilities/brave_search.py @@ -2,8 +2,8 @@ import json from typing import List import requests -from pydantic_v1 import BaseModel, Field +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import Document diff --git a/libs/langchain/langchain/utilities/dalle_image_generator.py b/libs/langchain/langchain/utilities/dalle_image_generator.py index 29286aaac22..dc25c44b735 100644 --- a/libs/langchain/langchain/utilities/dalle_image_generator.py +++ b/libs/langchain/langchain/utilities/dalle_image_generator.py @@ -1,8 +1,7 @@ """Utility that calls OpenAI's Dall-E Image Generator.""" from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/dataforseo_api_search.py b/libs/langchain/langchain/utilities/dataforseo_api_search.py index 4f46faf86b1..e774ff7c935 100644 --- a/libs/langchain/langchain/utilities/dataforseo_api_search.py +++ b/libs/langchain/langchain/utilities/dataforseo_api_search.py @@ -4,8 +4,8 @@ from urllib.parse import quote import aiohttp import requests -from pydantic_v1 import BaseModel, Extra, Field, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/duckduckgo_search.py b/libs/langchain/langchain/utilities/duckduckgo_search.py index 78073ffa4d7..404c76baf3a 100644 --- a/libs/langchain/langchain/utilities/duckduckgo_search.py +++ b/libs/langchain/langchain/utilities/duckduckgo_search.py @@ -5,8 +5,7 @@ https://pypi.org/project/duckduckgo-search/ """ from typing import Dict, List, Optional -from pydantic_v1 import BaseModel, Extra -from pydantic_v1.class_validators import root_validator +from langchain.pydantic_v1 import BaseModel, Extra, root_validator class DuckDuckGoSearchAPIWrapper(BaseModel): diff --git a/libs/langchain/langchain/utilities/github.py b/libs/langchain/langchain/utilities/github.py index ae16aa671dd..7ef1c2e4b78 100644 --- a/libs/langchain/langchain/utilities/github.py +++ b/libs/langchain/langchain/utilities/github.py @@ -4,8 +4,7 @@ from __future__ import annotations import json from typing import TYPE_CHECKING, Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env if TYPE_CHECKING: diff --git a/libs/langchain/langchain/utilities/golden_query.py b/libs/langchain/langchain/utilities/golden_query.py index 5a68430050e..e94b49c1c0b 100644 --- a/libs/langchain/langchain/utilities/golden_query.py +++ b/libs/langchain/langchain/utilities/golden_query.py @@ -3,8 +3,8 @@ import json from typing import Dict, Optional import requests -from pydantic_v1 import BaseModel, Extra, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env GOLDEN_BASE_URL = "https://golden.com" diff --git a/libs/langchain/langchain/utilities/google_places_api.py b/libs/langchain/langchain/utilities/google_places_api.py index 9b8e4f9fa8c..22d4d0e6267 100644 --- a/libs/langchain/langchain/utilities/google_places_api.py +++ b/libs/langchain/langchain/utilities/google_places_api.py @@ -4,8 +4,7 @@ import logging from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/google_search.py b/libs/langchain/langchain/utilities/google_search.py index bdbf71e4959..8095de8c6fa 100644 --- a/libs/langchain/langchain/utilities/google_search.py +++ b/libs/langchain/langchain/utilities/google_search.py @@ -1,8 +1,7 @@ """Util that calls Google Search.""" from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/google_serper.py b/libs/langchain/langchain/utilities/google_serper.py index 6c1f31fa783..951c00b8fac 100644 --- a/libs/langchain/langchain/utilities/google_serper.py +++ b/libs/langchain/langchain/utilities/google_serper.py @@ -3,10 +3,9 @@ from typing import Any, Dict, List, Optional import aiohttp import requests -from pydantic_v1.class_validators import root_validator -from pydantic_v1.main import BaseModel from typing_extensions import Literal +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/graphql.py b/libs/langchain/langchain/utilities/graphql.py index 6b2dd309b34..5bc548e881b 100644 --- a/libs/langchain/langchain/utilities/graphql.py +++ b/libs/langchain/langchain/utilities/graphql.py @@ -1,7 +1,7 @@ import json from typing import Any, Callable, Dict, Optional -from pydantic_v1 import BaseModel, Extra, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, root_validator class GraphQLAPIWrapper(BaseModel): diff --git a/libs/langchain/langchain/utilities/jira.py b/libs/langchain/langchain/utilities/jira.py index d246a12dc6f..ccfd4dc7b9f 100644 --- a/libs/langchain/langchain/utilities/jira.py +++ b/libs/langchain/langchain/utilities/jira.py @@ -1,8 +1,7 @@ """Util that calls Jira.""" from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/metaphor_search.py b/libs/langchain/langchain/utilities/metaphor_search.py index b05844bb0e6..6dea326934a 100644 --- a/libs/langchain/langchain/utilities/metaphor_search.py +++ b/libs/langchain/langchain/utilities/metaphor_search.py @@ -7,8 +7,8 @@ from typing import Dict, List, Optional import aiohttp import requests -from pydantic_v1 import BaseModel, Extra, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env METAPHOR_API_URL = "https://api.metaphor.systems" diff --git a/libs/langchain/langchain/utilities/openapi.py b/libs/langchain/langchain/utilities/openapi.py index 2262186d441..852879e11ac 100644 --- a/libs/langchain/langchain/utilities/openapi.py +++ b/libs/langchain/langchain/utilities/openapi.py @@ -11,9 +11,8 @@ from typing import Dict, List, Optional, Union import requests import yaml -from pydantic_v1 import ValidationError -from langchain import _PYDANTIC_MAJOR_VERSION +from langchain.pydantic_v1 import _PYDANTIC_MAJOR_VERSION, ValidationError logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/utilities/openweathermap.py b/libs/langchain/langchain/utilities/openweathermap.py index b6703427e88..8b64a7dff64 100644 --- a/libs/langchain/langchain/utilities/openweathermap.py +++ b/libs/langchain/langchain/utilities/openweathermap.py @@ -1,8 +1,7 @@ """Util that calls OpenWeatherMap using PyOWM.""" from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/powerbi.py b/libs/langchain/langchain/utilities/powerbi.py index 07e117a1da7..f201bc49850 100644 --- a/libs/langchain/langchain/utilities/powerbi.py +++ b/libs/langchain/langchain/utilities/powerbi.py @@ -9,9 +9,10 @@ from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Union import aiohttp import requests from aiohttp import ServerTimeoutError -from pydantic_v1 import BaseModel, Field, root_validator, validator from requests.exceptions import Timeout +from langchain.pydantic_v1 import BaseModel, Field, root_validator, validator + logger = logging.getLogger(__name__) BASE_URL = os.getenv("POWERBI_BASE_URL", "https://api.powerbi.com/v1.0/myorg") diff --git a/libs/langchain/langchain/utilities/pubmed.py b/libs/langchain/langchain/utilities/pubmed.py index 5b4cf7db8b6..2bb26b7a417 100644 --- a/libs/langchain/langchain/utilities/pubmed.py +++ b/libs/langchain/langchain/utilities/pubmed.py @@ -5,9 +5,7 @@ import urllib.error import urllib.request from typing import Any, Dict, Iterator, List -from pydantic_v1 import BaseModel -from pydantic_v1.class_validators import root_validator - +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import Document logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/utilities/python.py b/libs/langchain/langchain/utilities/python.py index 441233da7fb..d2f5d2fb72a 100644 --- a/libs/langchain/langchain/utilities/python.py +++ b/libs/langchain/langchain/utilities/python.py @@ -5,7 +5,7 @@ import sys from io import StringIO from typing import Dict, Optional -from pydantic_v1 import BaseModel, Field +from langchain.pydantic_v1 import BaseModel, Field logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/utilities/requests.py b/libs/langchain/langchain/utilities/requests.py index ac46cf307db..21f988a02c8 100644 --- a/libs/langchain/langchain/utilities/requests.py +++ b/libs/langchain/langchain/utilities/requests.py @@ -4,7 +4,8 @@ from typing import Any, AsyncGenerator, Dict, Optional import aiohttp import requests -from pydantic_v1 import BaseModel, Extra + +from langchain.pydantic_v1 import BaseModel, Extra class Requests(BaseModel): diff --git a/libs/langchain/langchain/utilities/scenexplain.py b/libs/langchain/langchain/utilities/scenexplain.py index 0b769b95aaa..c43348ec8b8 100644 --- a/libs/langchain/langchain/utilities/scenexplain.py +++ b/libs/langchain/langchain/utilities/scenexplain.py @@ -8,8 +8,8 @@ You can obtain a key by following the steps below. from typing import Dict import requests -from pydantic_v1 import BaseModel, BaseSettings, Field, root_validator +from langchain.pydantic_v1 import BaseModel, BaseSettings, Field, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/searx_search.py b/libs/langchain/langchain/utilities/searx_search.py index 8dba5942ca3..5c0b6fddc67 100644 --- a/libs/langchain/langchain/utilities/searx_search.py +++ b/libs/langchain/langchain/utilities/searx_search.py @@ -132,8 +132,15 @@ from typing import Any, Dict, List, Optional import aiohttp import requests -from pydantic_v1 import BaseModel, Extra, Field, PrivateAttr, root_validator, validator +from langchain.pydantic_v1 import ( + BaseModel, + Extra, + Field, + PrivateAttr, + root_validator, + validator, +) from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/serpapi.py b/libs/langchain/langchain/utilities/serpapi.py index 05a410381a3..ab132b53afb 100644 --- a/libs/langchain/langchain/utilities/serpapi.py +++ b/libs/langchain/langchain/utilities/serpapi.py @@ -7,8 +7,8 @@ import sys from typing import Any, Dict, Optional, Tuple import aiohttp -from pydantic_v1 import BaseModel, Extra, Field, root_validator +from langchain.pydantic_v1 import BaseModel, Extra, Field, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/tensorflow_datasets.py b/libs/langchain/langchain/utilities/tensorflow_datasets.py index fb17112a7a7..680fe51d871 100644 --- a/libs/langchain/langchain/utilities/tensorflow_datasets.py +++ b/libs/langchain/langchain/utilities/tensorflow_datasets.py @@ -1,8 +1,7 @@ import logging from typing import Any, Callable, Dict, Iterator, List, Optional -from pydantic_v1 import BaseModel, root_validator - +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import Document logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/utilities/twilio.py b/libs/langchain/langchain/utilities/twilio.py index a0081f5b275..07f937357c4 100644 --- a/libs/langchain/langchain/utilities/twilio.py +++ b/libs/langchain/langchain/utilities/twilio.py @@ -1,8 +1,7 @@ """Util that calls Twilio.""" from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/wikipedia.py b/libs/langchain/langchain/utilities/wikipedia.py index 4476603eba5..dd38408e627 100644 --- a/libs/langchain/langchain/utilities/wikipedia.py +++ b/libs/langchain/langchain/utilities/wikipedia.py @@ -2,8 +2,7 @@ import logging from typing import Any, Dict, List, Optional -from pydantic_v1 import BaseModel, root_validator - +from langchain.pydantic_v1 import BaseModel, root_validator from langchain.schema import Document logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/utilities/wolfram_alpha.py b/libs/langchain/langchain/utilities/wolfram_alpha.py index aadadad3d33..1af50eaf4f3 100644 --- a/libs/langchain/langchain/utilities/wolfram_alpha.py +++ b/libs/langchain/langchain/utilities/wolfram_alpha.py @@ -1,8 +1,7 @@ """Util that calls WolframAlpha.""" from typing import Any, Dict, Optional -from pydantic_v1 import BaseModel, Extra, root_validator - +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/utilities/zapier.py b/libs/langchain/langchain/utilities/zapier.py index 613647d1ebc..72321d27bb1 100644 --- a/libs/langchain/langchain/utilities/zapier.py +++ b/libs/langchain/langchain/utilities/zapier.py @@ -16,9 +16,9 @@ from typing import Any, Dict, List, Optional import aiohttp import requests -from pydantic_v1 import BaseModel, Extra, root_validator from requests import Request, Session +from langchain.pydantic_v1 import BaseModel, Extra, root_validator from langchain.utils import get_from_dict_or_env diff --git a/libs/langchain/langchain/vectorstores/azuresearch.py b/libs/langchain/langchain/vectorstores/azuresearch.py index f15ef3aa2a1..5f2a45e9361 100644 --- a/libs/langchain/langchain/vectorstores/azuresearch.py +++ b/libs/langchain/langchain/vectorstores/azuresearch.py @@ -18,7 +18,6 @@ from typing import ( ) import numpy as np -from pydantic_v1 import root_validator from langchain.callbacks.manager import ( AsyncCallbackManagerForRetrieverRun, @@ -26,6 +25,7 @@ from langchain.callbacks.manager import ( ) from langchain.docstore.document import Document from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import root_validator from langchain.schema import BaseRetriever from langchain.utils import get_from_env from langchain.vectorstores.base import VectorStore diff --git a/libs/langchain/langchain/vectorstores/base.py b/libs/langchain/langchain/vectorstores/base.py index 8544c98936f..5bc624add4d 100644 --- a/libs/langchain/langchain/vectorstores/base.py +++ b/libs/langchain/langchain/vectorstores/base.py @@ -22,14 +22,13 @@ from typing import ( TypeVar, ) -from pydantic_v1 import Field, root_validator - from langchain.callbacks.manager import ( AsyncCallbackManagerForRetrieverRun, CallbackManagerForRetrieverRun, ) from langchain.docstore.document import Document from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import Field, root_validator from langchain.schema import BaseRetriever logger = logging.getLogger(__name__) diff --git a/libs/langchain/langchain/vectorstores/clickhouse.py b/libs/langchain/langchain/vectorstores/clickhouse.py index 9e0955e1366..c0916ec446b 100644 --- a/libs/langchain/langchain/vectorstores/clickhouse.py +++ b/libs/langchain/langchain/vectorstores/clickhouse.py @@ -8,10 +8,9 @@ from hashlib import sha1 from threading import Thread from typing import Any, Dict, Iterable, List, Optional, Tuple, Union -from pydantic_v1 import BaseSettings - from langchain.docstore.document import Document from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseSettings from langchain.vectorstores.base import VectorStore logger = logging.getLogger() diff --git a/libs/langchain/langchain/vectorstores/docarray/base.py b/libs/langchain/langchain/vectorstores/docarray/base.py index d82a7feac6c..2e693bcde14 100644 --- a/libs/langchain/langchain/vectorstores/docarray/base.py +++ b/libs/langchain/langchain/vectorstores/docarray/base.py @@ -2,9 +2,9 @@ from abc import ABC from typing import TYPE_CHECKING, Any, Iterable, List, Optional, Tuple, Type import numpy as np -from pydantic_v1 import Field from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import Field from langchain.schema import Document from langchain.vectorstores import VectorStore from langchain.vectorstores.utils import maximal_marginal_relevance diff --git a/libs/langchain/langchain/vectorstores/myscale.py b/libs/langchain/langchain/vectorstores/myscale.py index c056c5e09db..7bbb20dcfb9 100644 --- a/libs/langchain/langchain/vectorstores/myscale.py +++ b/libs/langchain/langchain/vectorstores/myscale.py @@ -7,10 +7,9 @@ from hashlib import sha1 from threading import Thread from typing import Any, Dict, Iterable, List, Optional, Tuple -from pydantic_v1 import BaseSettings - from langchain.docstore.document import Document from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseSettings from langchain.vectorstores.base import VectorStore logger = logging.getLogger() diff --git a/libs/langchain/langchain/vectorstores/redis.py b/libs/langchain/langchain/vectorstores/redis.py index 2105b1c09f0..198e5d706a3 100644 --- a/libs/langchain/langchain/vectorstores/redis.py +++ b/libs/langchain/langchain/vectorstores/redis.py @@ -20,7 +20,6 @@ from typing import ( ) import numpy as np -from pydantic_v1 import root_validator from langchain.callbacks.manager import ( AsyncCallbackManagerForRetrieverRun, @@ -28,6 +27,7 @@ from langchain.callbacks.manager import ( ) from langchain.docstore.document import Document from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import root_validator from langchain.utilities.redis import get_client from langchain.utils import get_from_dict_or_env from langchain.vectorstores.base import VectorStore, VectorStoreRetriever diff --git a/libs/langchain/langchain/vectorstores/starrocks.py b/libs/langchain/langchain/vectorstores/starrocks.py index 639b41ea4d1..d6abc40af88 100644 --- a/libs/langchain/langchain/vectorstores/starrocks.py +++ b/libs/langchain/langchain/vectorstores/starrocks.py @@ -8,10 +8,9 @@ from hashlib import sha1 from threading import Thread from typing import Any, Dict, Iterable, List, Optional, Tuple -from pydantic_v1 import BaseSettings - from langchain.docstore.document import Document from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import BaseSettings from langchain.vectorstores.base import VectorStore logger = logging.getLogger() diff --git a/libs/langchain/langchain/vectorstores/vectara.py b/libs/langchain/langchain/vectorstores/vectara.py index 29a5bcf1d95..f263ebeac84 100644 --- a/libs/langchain/langchain/vectorstores/vectara.py +++ b/libs/langchain/langchain/vectorstores/vectara.py @@ -8,9 +8,9 @@ from hashlib import md5 from typing import Any, Iterable, List, Optional, Tuple, Type import requests -from pydantic_v1 import Field from langchain.embeddings.base import Embeddings +from langchain.pydantic_v1 import Field from langchain.schema import Document from langchain.vectorstores.base import VectorStore, VectorStoreRetriever diff --git a/libs/langchain/tests/integration_tests/document_loaders/test_tensorflow_datasets.py b/libs/langchain/tests/integration_tests/document_loaders/test_tensorflow_datasets.py index e6984991182..d36e91a2169 100644 --- a/libs/langchain/tests/integration_tests/document_loaders/test_tensorflow_datasets.py +++ b/libs/langchain/tests/integration_tests/document_loaders/test_tensorflow_datasets.py @@ -4,9 +4,9 @@ from __future__ import annotations from typing import TYPE_CHECKING import pytest -from pydantic_v1.error_wrappers import ValidationError from langchain.document_loaders.tensorflow_datasets import TensorflowDatasetLoader +from langchain.pydantic_v1 import ValidationError from langchain.schema.document import Document if TYPE_CHECKING: diff --git a/libs/langchain/tests/integration_tests/retrievers/docarray/fixtures.py b/libs/langchain/tests/integration_tests/retrievers/docarray/fixtures.py index 22fec47a060..951a38a6657 100644 --- a/libs/langchain/tests/integration_tests/retrievers/docarray/fixtures.py +++ b/libs/langchain/tests/integration_tests/retrievers/docarray/fixtures.py @@ -5,7 +5,8 @@ from typing import TYPE_CHECKING, Any, Dict, Generator, Tuple import numpy as np import pytest -from pydantic_v1 import Field + +from langchain.pydantic_v1 import Field if TYPE_CHECKING: from docarray.index import ( diff --git a/libs/langchain/tests/integration_tests/utilities/test_tensorflow_datasets.py b/libs/langchain/tests/integration_tests/utilities/test_tensorflow_datasets.py index 48eca0c74dd..811fec0611e 100644 --- a/libs/langchain/tests/integration_tests/utilities/test_tensorflow_datasets.py +++ b/libs/langchain/tests/integration_tests/utilities/test_tensorflow_datasets.py @@ -4,8 +4,8 @@ from __future__ import annotations from typing import TYPE_CHECKING import pytest -from pydantic_v1.error_wrappers import ValidationError +from langchain.pydantic_v1 import ValidationError from langchain.schema.document import Document from langchain.utilities.tensorflow_datasets import TensorflowDatasets diff --git a/libs/langchain/tests/mock_servers/robot/server.py b/libs/langchain/tests/mock_servers/robot/server.py index 8e28ae583cd..40a6aa609cc 100644 --- a/libs/langchain/tests/mock_servers/robot/server.py +++ b/libs/langchain/tests/mock_servers/robot/server.py @@ -7,7 +7,8 @@ import uvicorn from fastapi import FastAPI, HTTPException, Query from fastapi.middleware.cors import CORSMiddleware from fastapi.openapi.utils import get_openapi -from pydantic_v1 import BaseModel, Field + +from langchain.pydantic_v1 import BaseModel, Field PORT = 7289 diff --git a/libs/langchain/tests/unit_tests/_api/test_deprecation.py b/libs/langchain/tests/unit_tests/_api/test_deprecation.py index 430eaaecd4f..7b6b359cbf4 100644 --- a/libs/langchain/tests/unit_tests/_api/test_deprecation.py +++ b/libs/langchain/tests/unit_tests/_api/test_deprecation.py @@ -2,9 +2,9 @@ import warnings from typing import Any, Dict import pytest -from pydantic_v1 import BaseModel from langchain._api.deprecation import _warn_deprecated, deprecated +from langchain.pydantic_v1 import BaseModel @pytest.mark.parametrize( diff --git a/libs/langchain/tests/unit_tests/callbacks/fake_callback_handler.py b/libs/langchain/tests/unit_tests/callbacks/fake_callback_handler.py index e7720fa06f3..91f0c09bd18 100644 --- a/libs/langchain/tests/unit_tests/callbacks/fake_callback_handler.py +++ b/libs/langchain/tests/unit_tests/callbacks/fake_callback_handler.py @@ -3,9 +3,8 @@ from itertools import chain from typing import Any, Dict, List, Optional, Union from uuid import UUID -from pydantic_v1 import BaseModel - from langchain.callbacks.base import AsyncCallbackHandler, BaseCallbackHandler +from langchain.pydantic_v1 import BaseModel from langchain.schema.messages import BaseMessage diff --git a/libs/langchain/tests/unit_tests/evaluation/agents/test_eval_chain.py b/libs/langchain/tests/unit_tests/evaluation/agents/test_eval_chain.py index b18c94875e0..6a625821eb2 100644 --- a/libs/langchain/tests/unit_tests/evaluation/agents/test_eval_chain.py +++ b/libs/langchain/tests/unit_tests/evaluation/agents/test_eval_chain.py @@ -3,7 +3,6 @@ from typing import Any, Dict, List, Optional, Tuple import pytest -from pydantic_v1 import Field from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.evaluation.agents.trajectory_eval_chain import ( @@ -11,6 +10,7 @@ from langchain.evaluation.agents.trajectory_eval_chain import ( TrajectoryEvalChain, TrajectoryOutputParser, ) +from langchain.pydantic_v1 import Field from langchain.schema import AgentAction, BaseMessage, OutputParserException from langchain.tools.base import tool from tests.unit_tests.llms.fake_chat_model import FakeChatModel diff --git a/libs/langchain/tests/unit_tests/llms/fake_llm.py b/libs/langchain/tests/unit_tests/llms/fake_llm.py index f04d428515d..c92df7bf1c4 100644 --- a/libs/langchain/tests/unit_tests/llms/fake_llm.py +++ b/libs/langchain/tests/unit_tests/llms/fake_llm.py @@ -1,10 +1,9 @@ """Fake LLM wrapper for testing purposes.""" from typing import Any, Dict, List, Mapping, Optional, cast -from pydantic_v1 import validator - from langchain.callbacks.manager import CallbackManagerForLLMRun from langchain.llms.base import LLM +from langchain.pydantic_v1 import validator class FakeLLM(LLM): diff --git a/libs/langchain/tests/unit_tests/output_parsers/test_pydantic_parser.py b/libs/langchain/tests/unit_tests/output_parsers/test_pydantic_parser.py index 070b9102df1..2e75860f19b 100644 --- a/libs/langchain/tests/unit_tests/output_parsers/test_pydantic_parser.py +++ b/libs/langchain/tests/unit_tests/output_parsers/test_pydantic_parser.py @@ -2,9 +2,8 @@ from enum import Enum from typing import Optional -from pydantic_v1 import BaseModel, Field - from langchain.output_parsers.pydantic import PydanticOutputParser +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import OutputParserException diff --git a/libs/langchain/tests/unit_tests/tools/openapi/test_api_models.py b/libs/langchain/tests/unit_tests/tools/openapi/test_api_models.py index 6da34e6224c..2e7ce57abc4 100644 --- a/libs/langchain/tests/unit_tests/tools/openapi/test_api_models.py +++ b/libs/langchain/tests/unit_tests/tools/openapi/test_api_models.py @@ -8,7 +8,7 @@ import pytest # Keep at top of file to ensure that pydantic test can be skipped before # pydantic v1 related imports are attempted by openapi_schema_pydantic. -from langchain import _PYDANTIC_MAJOR_VERSION +from langchain.pydantic_v1 import _PYDANTIC_MAJOR_VERSION if _PYDANTIC_MAJOR_VERSION != 1: pytest.skip( diff --git a/libs/langchain/tests/unit_tests/tools/test_base.py b/libs/langchain/tests/unit_tests/tools/test_base.py index 2ffaff0cbe5..2cbdca2edad 100644 --- a/libs/langchain/tests/unit_tests/tools/test_base.py +++ b/libs/langchain/tests/unit_tests/tools/test_base.py @@ -6,13 +6,13 @@ from functools import partial from typing import Any, List, Optional, Type, Union import pytest -from pydantic_v1 import BaseModel from langchain.agents.tools import Tool, tool from langchain.callbacks.manager import ( AsyncCallbackManagerForToolRun, CallbackManagerForToolRun, ) +from langchain.pydantic_v1 import BaseModel from langchain.tools.base import ( BaseTool, SchemaAnnotationError, @@ -64,25 +64,6 @@ def test_structured_args() -> None: assert structured_api.run(args) == expected_result -def test_unannotated_base_tool_raises_error() -> None: - """Test that a BaseTool without type hints raises an exception.""" "" - with pytest.raises(SchemaAnnotationError): - - class _UnAnnotatedTool(BaseTool): - name = "structured_api" - # This would silently be ignored without the custom metaclass - args_schema = _MockSchema - description = "A Structured Tool" - - def _run(self, arg1: int, arg2: bool, arg3: Optional[dict] = None) -> str: - return f"{arg1} {arg2} {arg3}" - - async def _arun( - self, arg1: int, arg2: bool, arg3: Optional[dict] = None - ) -> str: - raise NotImplementedError - - def test_misannotated_base_tool_raises_error() -> None: """Test that a BaseTool with the incorrect typehint raises an exception.""" "" with pytest.raises(SchemaAnnotationError):