Create pydantic v1 namespace in langchain (#9254)

Create pydantic v1 namespace in langchain experimental
pull/9358/head
Eugene Yurtsev 11 months ago committed by GitHub
parent 4c2de2a7f2
commit 2673b3a314
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,24 @@
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

@ -13,7 +13,7 @@ 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 import ValidationError
from pydantic_v1 import ValidationError
from langchain_experimental.autonomous_agents.autogpt.output_parser import (
AutoGPTOutputParser,

@ -2,7 +2,7 @@ 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 import Field
from pydantic_v1 import Field
class AutoGPTMemory(BaseChatMemory):

@ -7,7 +7,7 @@ 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 import BaseModel
from pydantic_v1 import BaseModel
from langchain_experimental.autonomous_agents.autogpt.prompt_generator import get_prompt

@ -6,7 +6,7 @@ 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 import BaseModel, Field
from pydantic_v1 import BaseModel, Field
from langchain_experimental.autonomous_agents.baby_agi.task_creation import (
TaskCreationChain,

@ -13,7 +13,7 @@ from langchain.prompts.chat import (
SystemMessagePromptTemplate,
)
from langchain.tools.base import BaseTool
from pydantic import BaseModel
from pydantic_v1 import BaseModel
DEMONSTRATIONS = [
{

@ -6,7 +6,7 @@ from typing import Any, Optional, Union
import duckdb
import pandas as pd
from langchain.graphs.networkx_graph import NetworkxEntityGraph
from pydantic import BaseModel, Field, PrivateAttr, root_validator, validator
from pydantic_v1 import BaseModel, Field, PrivateAttr, root_validator, validator
from langchain_experimental.cpal.constants import Constant

@ -5,7 +5,7 @@ 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 import BaseModel, Field
from pydantic_v1 import BaseModel, Field
from langchain_experimental.generative_agents.memory import GenerativeAgentMemory

@ -19,7 +19,7 @@ from langchain.schema.messages import (
BaseMessage,
SystemMessage,
)
from pydantic import root_validator
from pydantic_v1 import root_validator
prompt = """In addition to responding, you can use tools. \
You have access to the following tools.

@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Any, List, Optional, cast
from langchain.callbacks.manager import CallbackManagerForLLMRun
from langchain.llms.huggingface_pipeline import HuggingFacePipeline
from pydantic import Field, root_validator
from pydantic_v1 import Field, root_validator
if TYPE_CHECKING:
import jsonformer

@ -6,7 +6,7 @@ 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 import Field, root_validator
from pydantic_v1 import Field, root_validator
if TYPE_CHECKING:
import rellm

@ -15,7 +15,7 @@ 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 import Extra, Field
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

@ -5,7 +5,7 @@ from langchain.callbacks.manager import (
CallbackManagerForChainRun,
)
from langchain.chains.base import Chain
from pydantic import Field
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

@ -3,7 +3,7 @@ from typing import Any
from langchain.callbacks.manager import Callbacks
from langchain.chains.base import Chain
from pydantic import BaseModel
from pydantic_v1 import BaseModel
from langchain_experimental.plan_and_execute.schema import StepResponse

@ -3,7 +3,7 @@ from typing import Any, List, Optional
from langchain.callbacks.manager import Callbacks
from langchain.chains.llm import LLMChain
from pydantic import BaseModel
from pydantic_v1 import BaseModel
from langchain_experimental.plan_and_execute.schema import Plan, PlanOutputParser

@ -2,7 +2,7 @@ from abc import abstractmethod
from typing import List, Tuple
from langchain.schema import BaseOutputParser
from pydantic import BaseModel, Field
from pydantic_v1 import BaseModel, Field
class Step(BaseModel):

@ -13,7 +13,7 @@ from langchain.prompts.chat import (
HumanMessagePromptTemplate,
)
from langchain.schema import LLMResult, PromptValue
from pydantic import Extra, root_validator
from pydantic_v1 import Extra, root_validator
class SmartLLMChain(Chain):

@ -13,7 +13,7 @@ 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 import Extra, Field, root_validator
from pydantic_v1 import Extra, Field, root_validator
INTERMEDIATE_STEPS_KEY = "intermediate_steps"

@ -20,7 +20,7 @@ from langchain.callbacks.manager import (
CallbackManagerForChainRun,
)
from langchain.chains.base import Chain
from pydantic import Extra
from pydantic_v1 import Extra
from langchain_experimental.tot.checker import ToTChecker
from langchain_experimental.tot.controller import ToTController

@ -3,7 +3,7 @@ from __future__ import annotations
from enum import Enum
from typing import Set
from pydantic import BaseModel, Field
from pydantic_v1 import BaseModel, Field
class ThoughtValidity(Enum):

@ -11,7 +11,7 @@ from typing import Any, Dict, List, Tuple
from langchain.chains.llm import LLMChain
from langchain.prompts.base import BasePromptTemplate
from pydantic import Field
from pydantic_v1 import Field
from langchain_experimental.tot.prompts import COT_PROMPT, PROPOSE_PROMPT

Loading…
Cancel
Save