mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-10 13:27:36 +00:00
Create pydantic v1 namespace in langchain (#9254)
Create pydantic v1 namespace in langchain experimental
This commit is contained in:
parent
4c2de2a7f2
commit
2673b3a314
@ -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…
Reference in New Issue
Block a user