docs: migrate pydantic imports (#26266)

This commit is contained in:
Bagatur
2024-09-10 13:06:58 -07:00
committed by GitHub
parent 374bb40852
commit c62772885a
45 changed files with 91 additions and 84 deletions

View File

@@ -945,7 +945,7 @@ Here's an example:
```python ```python
from typing import Optional from typing import Optional
from langchain_core.pydantic_v1 import BaseModel, Field from pydantic import BaseModel, Field
class Joke(BaseModel): class Joke(BaseModel):
@@ -1062,7 +1062,7 @@ a `tool_calls` field containing `args` that match the desired shape.
There are several acceptable formats you can use to bind tools to a model in LangChain. Here's one example: There are several acceptable formats you can use to bind tools to a model in LangChain. Here's one example:
```python ```python
from langchain_core.pydantic_v1 import BaseModel, Field from pydantic import BaseModel, Field
from langchain_openai import ChatOpenAI from langchain_openai import ChatOpenAI
class ResponseFormatter(BaseModel): class ResponseFormatter(BaseModel):

View File

@@ -144,7 +144,7 @@
"\n", "\n",
"from langchain_core.output_parsers import BaseOutputParser\n", "from langchain_core.output_parsers import BaseOutputParser\n",
"from langchain_core.prompts import PromptTemplate\n", "from langchain_core.prompts import PromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"# Output parser will split the LLM result into a list of queries\n", "# Output parser will split the LLM result into a list of queries\n",

View File

@@ -263,7 +263,7 @@
} }
], ],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class GetWeather(BaseModel):\n", "class GetWeather(BaseModel):\n",

View File

@@ -289,7 +289,7 @@
} }
], ],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Joke(BaseModel):\n", "class Joke(BaseModel):\n",

View File

@@ -190,7 +190,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class GSchema(BaseModel):\n", "class GSchema(BaseModel):\n",

View File

@@ -13,7 +13,7 @@
"|---------------|---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n", "|---------------|---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n",
"| name | str | Must be unique within a set of tools provided to an LLM or agent. |\n", "| name | str | Must be unique within a set of tools provided to an LLM or agent. |\n",
"| description | str | Describes what the tool does. Used as context by the LLM or agent. |\n", "| description | str | Describes what the tool does. Used as context by the LLM or agent. |\n",
"| args_schema | langchain.pydantic_v1.BaseModel | Optional but recommended, and required if using callback handlers. It can be used to provide more information (e.g., few-shot examples) or validation for expected parameters. |\n", "| args_schema | pydantic.BaseModel | Optional but recommended, and required if using callback handlers. It can be used to provide more information (e.g., few-shot examples) or validation for expected parameters. |\n",
"| return_direct | boolean | Only relevant for agents. When True, after invoking the given tool, the agent will stop and return the result direcly to the user. |\n", "| return_direct | boolean | Only relevant for agents. When True, after invoking the given tool, the agent will stop and return the result direcly to the user. |\n",
"\n", "\n",
"LangChain supports the creation of tools from:\n", "LangChain supports the creation of tools from:\n",
@@ -177,7 +177,7 @@
} }
], ],
"source": [ "source": [
"from langchain.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class CalculatorInput(BaseModel):\n", "class CalculatorInput(BaseModel):\n",
@@ -435,12 +435,12 @@
"source": [ "source": [
"from typing import Optional, Type\n", "from typing import Optional, Type\n",
"\n", "\n",
"from langchain.pydantic_v1 import BaseModel\n",
"from langchain_core.callbacks import (\n", "from langchain_core.callbacks import (\n",
" AsyncCallbackManagerForToolRun,\n", " AsyncCallbackManagerForToolRun,\n",
" CallbackManagerForToolRun,\n", " CallbackManagerForToolRun,\n",
")\n", ")\n",
"from langchain_core.tools import BaseTool\n", "from langchain_core.tools import BaseTool\n",
"from pydantic import BaseModel\n",
"\n", "\n",
"\n", "\n",
"class CalculatorInput(BaseModel):\n", "class CalculatorInput(BaseModel):\n",

View File

@@ -111,8 +111,8 @@
"source": [ "source": [
"from typing import List, Optional\n", "from typing import List, Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_openai import ChatOpenAI\n", "from langchain_openai import ChatOpenAI\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Person(BaseModel):\n", "class Person(BaseModel):\n",
@@ -177,7 +177,7 @@
" SystemMessage,\n", " SystemMessage,\n",
" ToolMessage,\n", " ToolMessage,\n",
")\n", ")\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Example(TypedDict):\n", "class Example(TypedDict):\n",

View File

@@ -93,7 +93,7 @@
"from typing import List, Optional\n", "from typing import List, Optional\n",
"\n", "\n",
"from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder\n", "from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class KeyDevelopment(BaseModel):\n", "class KeyDevelopment(BaseModel):\n",

View File

@@ -71,7 +71,7 @@
"\n", "\n",
"from langchain_core.output_parsers import PydanticOutputParser\n", "from langchain_core.output_parsers import PydanticOutputParser\n",
"from langchain_core.prompts import ChatPromptTemplate\n", "from langchain_core.prompts import ChatPromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field, validator\n", "from pydantic import BaseModel, Field, validator\n",
"\n", "\n",
"\n", "\n",
"class Person(BaseModel):\n", "class Person(BaseModel):\n",
@@ -221,7 +221,7 @@
"from langchain_anthropic.chat_models import ChatAnthropic\n", "from langchain_anthropic.chat_models import ChatAnthropic\n",
"from langchain_core.messages import AIMessage\n", "from langchain_core.messages import AIMessage\n",
"from langchain_core.prompts import ChatPromptTemplate\n", "from langchain_core.prompts import ChatPromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field, validator\n", "from pydantic import BaseModel, Field, validator\n",
"\n", "\n",
"\n", "\n",
"class Person(BaseModel):\n", "class Person(BaseModel):\n",

View File

@@ -136,7 +136,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"# Note that the docstrings here are crucial, as they will be passed along\n", "# Note that the docstrings here are crucial, as they will be passed along\n",

View File

@@ -163,8 +163,8 @@
"from typing import List, Optional\n", "from typing import List, Optional\n",
"\n", "\n",
"from langchain_core.prompts import ChatPromptTemplate\n", "from langchain_core.prompts import ChatPromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_openai import ChatOpenAI\n", "from langchain_openai import ChatOpenAI\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"llm = ChatOpenAI(model=\"gpt-3.5-turbo\", temperature=0)\n", "llm = ChatOpenAI(model=\"gpt-3.5-turbo\", temperature=0)\n",
"\n", "\n",

View File

@@ -177,14 +177,15 @@
"source": [ "source": [
"from typing import Optional, Type\n", "from typing import Optional, Type\n",
"\n", "\n",
"# Import things that are needed generically\n",
"from langchain.pydantic_v1 import BaseModel, Field\n",
"from langchain_core.callbacks import (\n", "from langchain_core.callbacks import (\n",
" AsyncCallbackManagerForToolRun,\n", " AsyncCallbackManagerForToolRun,\n",
" CallbackManagerForToolRun,\n", " CallbackManagerForToolRun,\n",
")\n", ")\n",
"from langchain_core.tools import BaseTool\n", "from langchain_core.tools import BaseTool\n",
"\n", "\n",
"# Import things that are needed generically\n",
"from pydantic import BaseModel, Field\n",
"\n",
"description_query = \"\"\"\n", "description_query = \"\"\"\n",
"MATCH (m:Movie|Person)\n", "MATCH (m:Movie|Person)\n",
"WHERE m.title CONTAINS $candidate OR m.name CONTAINS $candidate\n", "WHERE m.title CONTAINS $candidate OR m.name CONTAINS $candidate\n",
@@ -226,14 +227,15 @@
"source": [ "source": [
"from typing import Optional, Type\n", "from typing import Optional, Type\n",
"\n", "\n",
"# Import things that are needed generically\n",
"from langchain.pydantic_v1 import BaseModel, Field\n",
"from langchain_core.callbacks import (\n", "from langchain_core.callbacks import (\n",
" AsyncCallbackManagerForToolRun,\n", " AsyncCallbackManagerForToolRun,\n",
" CallbackManagerForToolRun,\n", " CallbackManagerForToolRun,\n",
")\n", ")\n",
"from langchain_core.tools import BaseTool\n", "from langchain_core.tools import BaseTool\n",
"\n", "\n",
"# Import things that are needed generically\n",
"from pydantic import BaseModel, Field\n",
"\n",
"\n", "\n",
"class InformationInput(BaseModel):\n", "class InformationInput(BaseModel):\n",
" entity: str = Field(description=\"movie or a person mentioned in the question\")\n", " entity: str = Field(description=\"movie or a person mentioned in the question\")\n",

View File

@@ -440,7 +440,7 @@
"source": [ "source": [
"from typing import List\n", "from typing import List\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class HypotheticalQuestions(BaseModel):\n", "class HypotheticalQuestions(BaseModel):\n",

View File

@@ -24,8 +24,8 @@
"from typing import List\n", "from typing import List\n",
"\n", "\n",
"from langchain_core.output_parsers import PydanticOutputParser\n", "from langchain_core.output_parsers import PydanticOutputParser\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from langchain_openai import ChatOpenAI\n",
"from langchain_openai import ChatOpenAI" "from pydantic import BaseModel, Field"
] ]
}, },
{ {

View File

@@ -71,8 +71,8 @@
"source": [ "source": [
"from langchain_core.output_parsers import JsonOutputParser\n", "from langchain_core.output_parsers import JsonOutputParser\n",
"from langchain_core.prompts import PromptTemplate\n", "from langchain_core.prompts import PromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_openai import ChatOpenAI\n", "from langchain_openai import ChatOpenAI\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"model = ChatOpenAI(temperature=0)\n", "model = ChatOpenAI(temperature=0)\n",
"\n", "\n",

View File

@@ -20,8 +20,8 @@
"from langchain.output_parsers import OutputFixingParser\n", "from langchain.output_parsers import OutputFixingParser\n",
"from langchain_core.output_parsers import PydanticOutputParser\n", "from langchain_core.output_parsers import PydanticOutputParser\n",
"from langchain_core.prompts import PromptTemplate\n", "from langchain_core.prompts import PromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from langchain_openai import ChatOpenAI, OpenAI\n",
"from langchain_openai import ChatOpenAI, OpenAI" "from pydantic import BaseModel, Field"
] ]
}, },
{ {

View File

@@ -35,17 +35,17 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 6, "execution_count": 1,
"id": "1594b2bf-2a6f-47bb-9a81-38930f8e606b", "id": "1594b2bf-2a6f-47bb-9a81-38930f8e606b",
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"data": { "data": {
"text/plain": [ "text/plain": [
"Joke(setup='Why did the chicken cross the road?', punchline='To get to the other side!')" "Joke(setup='Why did the tomato turn red?', punchline='Because it saw the salad dressing!')"
] ]
}, },
"execution_count": 6, "execution_count": 1,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
@@ -53,8 +53,8 @@
"source": [ "source": [
"from langchain_core.output_parsers import PydanticOutputParser\n", "from langchain_core.output_parsers import PydanticOutputParser\n",
"from langchain_core.prompts import PromptTemplate\n", "from langchain_core.prompts import PromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field, validator\n",
"from langchain_openai import OpenAI\n", "from langchain_openai import OpenAI\n",
"from pydantic import BaseModel, Field, model_validator\n",
"\n", "\n",
"model = OpenAI(model_name=\"gpt-3.5-turbo-instruct\", temperature=0.0)\n", "model = OpenAI(model_name=\"gpt-3.5-turbo-instruct\", temperature=0.0)\n",
"\n", "\n",
@@ -65,11 +65,13 @@
" punchline: str = Field(description=\"answer to resolve the joke\")\n", " punchline: str = Field(description=\"answer to resolve the joke\")\n",
"\n", "\n",
" # You can add custom validation logic easily with Pydantic.\n", " # You can add custom validation logic easily with Pydantic.\n",
" @validator(\"setup\")\n", " @model_validator(mode=\"before\")\n",
" def question_ends_with_question_mark(cls, field):\n", " @classmethod\n",
" if field[-1] != \"?\":\n", " def question_ends_with_question_mark(cls, values: dict) -> dict:\n",
" setup = values[\"setup\"]\n",
" if setup[-1] != \"?\":\n",
" raise ValueError(\"Badly formed question!\")\n", " raise ValueError(\"Badly formed question!\")\n",
" return field\n", " return values\n",
"\n", "\n",
"\n", "\n",
"# Set up a parser + inject instructions into the prompt template.\n", "# Set up a parser + inject instructions into the prompt template.\n",
@@ -239,9 +241,9 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3 (ipykernel)", "display_name": "poetry-venv-311",
"language": "python", "language": "python",
"name": "python3" "name": "poetry-venv-311"
}, },
"language_info": { "language_info": {
"codemirror_mode": { "codemirror_mode": {
@@ -253,7 +255,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.10.1" "version": "3.11.9"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@@ -70,8 +70,8 @@
"source": [ "source": [
"from langchain.output_parsers import YamlOutputParser\n", "from langchain.output_parsers import YamlOutputParser\n",
"from langchain_core.prompts import PromptTemplate\n", "from langchain_core.prompts import PromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_openai import ChatOpenAI\n", "from langchain_openai import ChatOpenAI\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"# Define your desired data structure.\n", "# Define your desired data structure.\n",

View File

@@ -269,7 +269,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class CitedAnswer(BaseModel):\n", "class CitedAnswer(BaseModel):\n",

View File

@@ -40,7 +40,7 @@
")\n", ")\n",
"from langchain_community.query_constructors.chroma import ChromaTranslator\n", "from langchain_community.query_constructors.chroma import ChromaTranslator\n",
"from langchain_community.query_constructors.elasticsearch import ElasticsearchTranslator\n", "from langchain_community.query_constructors.elasticsearch import ElasticsearchTranslator\n",
"from langchain_core.pydantic_v1 import BaseModel" "from pydantic import BaseModel"
] ]
}, },
{ {

View File

@@ -87,7 +87,7 @@
"source": [ "source": [
"from typing import List, Optional\n", "from typing import List, Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"sub_queries_description = \"\"\"\\\n", "sub_queries_description = \"\"\"\\\n",
"If the original question contains multiple distinct sub-questions, \\\n", "If the original question contains multiple distinct sub-questions, \\\n",

View File

@@ -154,12 +154,12 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 4, "execution_count": 2,
"id": "0ae69afc", "id": "0ae69afc",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field" "from pydantic import BaseModel, Field, model_validator"
] ]
}, },
{ {
@@ -492,21 +492,24 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 47, "execution_count": 3,
"id": "a2e8b434", "id": "a2e8b434",
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import validator\n",
"\n",
"\n",
"class Search(BaseModel):\n", "class Search(BaseModel):\n",
" query: str\n", " query: str\n",
" author: str\n", " author: str\n",
"\n", "\n",
" @validator(\"author\")\n", " @model_validator(mode=\"before\")\n",
" def double(cls, v: str) -> str:\n", " @classmethod\n",
" return vectorstore.similarity_search(v, k=1)[0].page_content" " def double(cls, values: dict) -> dict:\n",
" author = values[\"author\"]\n",
" closest_valid_author = vectorstore.similarity_search(author, k=1)[\n",
" 0\n",
" ].page_content\n",
" values[\"author\"] = closest_valid_author\n",
" return values"
] ]
}, },
{ {
@@ -563,9 +566,9 @@
], ],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3 (ipykernel)", "display_name": "poetry-venv-311",
"language": "python", "language": "python",
"name": "python3" "name": "poetry-venv-311"
}, },
"language_info": { "language_info": {
"codemirror_mode": { "codemirror_mode": {
@@ -577,7 +580,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.10.1" "version": "3.11.9"
} }
}, },
"nbformat": 4, "nbformat": 4,

View File

@@ -115,7 +115,7 @@
"source": [ "source": [
"from typing import List, Optional\n", "from typing import List, Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Search(BaseModel):\n", "class Search(BaseModel):\n",

View File

@@ -117,7 +117,7 @@
"source": [ "source": [
"from typing import List, Optional\n", "from typing import List, Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Search(BaseModel):\n", "class Search(BaseModel):\n",

View File

@@ -117,7 +117,7 @@
"source": [ "source": [
"from typing import Optional\n", "from typing import Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Search(BaseModel):\n", "class Search(BaseModel):\n",

View File

@@ -136,7 +136,7 @@
"source": [ "source": [
"from langchain_core.output_parsers.openai_tools import PydanticToolsParser\n", "from langchain_core.output_parsers.openai_tools import PydanticToolsParser\n",
"from langchain_core.prompts import ChatPromptTemplate\n", "from langchain_core.prompts import ChatPromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Table(BaseModel):\n", "class Table(BaseModel):\n",

View File

@@ -101,7 +101,7 @@
"source": [ "source": [
"from typing import Optional\n", "from typing import Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"# Pydantic\n", "# Pydantic\n",
@@ -667,7 +667,7 @@
"\n", "\n",
"from langchain_core.output_parsers import PydanticOutputParser\n", "from langchain_core.output_parsers import PydanticOutputParser\n",
"from langchain_core.prompts import ChatPromptTemplate\n", "from langchain_core.prompts import ChatPromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Person(BaseModel):\n", "class Person(BaseModel):\n",
@@ -794,7 +794,7 @@
"\n", "\n",
"from langchain_core.messages import AIMessage\n", "from langchain_core.messages import AIMessage\n",
"from langchain_core.prompts import ChatPromptTemplate\n", "from langchain_core.prompts import ChatPromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Person(BaseModel):\n", "class Person(BaseModel):\n",

View File

@@ -112,7 +112,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class add(BaseModel):\n", "class add(BaseModel):\n",
@@ -321,7 +321,7 @@
], ],
"source": [ "source": [
"from langchain_core.output_parsers import PydanticToolsParser\n", "from langchain_core.output_parsers import PydanticToolsParser\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class add(BaseModel):\n", "class add(BaseModel):\n",

View File

@@ -418,8 +418,8 @@
} }
], ],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_core.tools import BaseTool\n", "from langchain_core.tools import BaseTool\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class UpdateFavoritePetsSchema(BaseModel):\n", "class UpdateFavoritePetsSchema(BaseModel):\n",

View File

@@ -140,7 +140,7 @@
"source": [ "source": [
"from langchain_community.tools import WikipediaQueryRun\n", "from langchain_community.tools import WikipediaQueryRun\n",
"from langchain_community.utilities import WikipediaAPIWrapper\n", "from langchain_community.utilities import WikipediaAPIWrapper\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class WikiInputs(BaseModel):\n", "class WikiInputs(BaseModel):\n",

View File

@@ -274,7 +274,7 @@
} }
], ],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class GetWeather(BaseModel):\n", "class GetWeather(BaseModel):\n",

View File

@@ -69,7 +69,7 @@
} }
], ],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel\n", "from pydantic import BaseModel\n",
"\n", "\n",
"\n", "\n",
"class Person(BaseModel):\n", "class Person(BaseModel):\n",

View File

@@ -123,8 +123,8 @@
"from dotenv import find_dotenv, load_dotenv\n", "from dotenv import find_dotenv, load_dotenv\n",
"from langchain_community.chat_models import ChatDeepInfra\n", "from langchain_community.chat_models import ChatDeepInfra\n",
"from langchain_core.messages import HumanMessage\n", "from langchain_core.messages import HumanMessage\n",
"from langchain_core.pydantic_v1 import BaseModel\n",
"from langchain_core.tools import tool\n", "from langchain_core.tools import tool\n",
"from pydantic import BaseModel\n",
"\n", "\n",
"model_name = \"meta-llama/Meta-Llama-3-70B-Instruct\"\n", "model_name = \"meta-llama/Meta-Llama-3-70B-Instruct\"\n",
"\n", "\n",

View File

@@ -264,7 +264,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"llm = ChatEdenAI(provider=\"openai\", temperature=0.2, max_tokens=500)\n", "llm = ChatEdenAI(provider=\"openai\", temperature=0.2, max_tokens=500)\n",
"\n", "\n",

View File

@@ -483,7 +483,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class GetWeather(BaseModel):\n", "class GetWeather(BaseModel):\n",

View File

@@ -226,8 +226,8 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_core.tools import tool\n", "from langchain_core.tools import tool\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class WeatherInput(BaseModel):\n", "class WeatherInput(BaseModel):\n",
@@ -343,8 +343,8 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel\n",
"from langchain_core.utils.function_calling import convert_to_openai_tool\n", "from langchain_core.utils.function_calling import convert_to_openai_tool\n",
"from pydantic import BaseModel\n",
"\n", "\n",
"\n", "\n",
"class Joke(BaseModel):\n", "class Joke(BaseModel):\n",

View File

@@ -658,8 +658,8 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import Field\n",
"from langchain_core.tools import tool\n", "from langchain_core.tools import tool\n",
"from pydantic import Field\n",
"\n", "\n",
"\n", "\n",
"@tool\n", "@tool\n",

View File

@@ -426,8 +426,8 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_core.tools import tool\n", "from langchain_core.tools import tool\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"# Define the schema for function arguments\n", "# Define the schema for function arguments\n",

View File

@@ -72,7 +72,7 @@
"source": [ "source": [
"from enum import Enum\n", "from enum import Enum\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Operation(Enum):\n", "class Operation(Enum):\n",
@@ -135,8 +135,8 @@
"source": [ "source": [
"from pprint import pprint\n", "from pprint import pprint\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel\n",
"from langchain_core.utils.function_calling import convert_pydantic_to_openai_function\n", "from langchain_core.utils.function_calling import convert_pydantic_to_openai_function\n",
"from pydantic import BaseModel\n",
"\n", "\n",
"openai_function_def = convert_pydantic_to_openai_function(Calculator)\n", "openai_function_def = convert_pydantic_to_openai_function(Calculator)\n",
"pprint(openai_function_def)" "pprint(openai_function_def)"

View File

@@ -286,7 +286,7 @@ In order to pass tools and let the LLM choose the tool it needs to call, we need
```python ```python
from langchain_core.tools import tool from langchain_core.tools import tool
from langchain_core.pydantic_v1 import BaseModel, Field from pydantic import BaseModel, Field
# Define the schema for function arguments # Define the schema for function arguments
class OperationInput(BaseModel): class OperationInput(BaseModel):

View File

@@ -106,9 +106,9 @@
"from langchain import hub\n", "from langchain import hub\n",
"from langchain.agents import AgentExecutor, create_openai_functions_agent\n", "from langchain.agents import AgentExecutor, create_openai_functions_agent\n",
"from langchain_community.utilities.infobip import InfobipAPIWrapper\n", "from langchain_community.utilities.infobip import InfobipAPIWrapper\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_core.tools import StructuredTool\n", "from langchain_core.tools import StructuredTool\n",
"from langchain_openai import ChatOpenAI\n", "from langchain_openai import ChatOpenAI\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"instructions = \"You are a coding teacher. You are teaching a student how to code. The student asks you a question. You answer the question.\"\n", "instructions = \"You are a coding teacher. You are teaching a student how to code. The student asks you a question. You answer the question.\"\n",
"base_prompt = hub.pull(\"langchain-ai/openai-functions-template\")\n", "base_prompt = hub.pull(\"langchain-ai/openai-functions-template\")\n",

View File

@@ -72,8 +72,8 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from langchain_core.prompts import ChatPromptTemplate\n", "from langchain_core.prompts import ChatPromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n",
"from langchain_openai import ChatOpenAI\n", "from langchain_openai import ChatOpenAI\n",
"from pydantic import BaseModel, Field\n",
"\n", "\n",
"tagging_prompt = ChatPromptTemplate.from_template(\n", "tagging_prompt = ChatPromptTemplate.from_template(\n",
" \"\"\"\n", " \"\"\"\n",

View File

@@ -62,7 +62,6 @@
"# dotenv.load_dotenv()\n", "# dotenv.load_dotenv()\n",
"\n", "\n",
"from langchain.prompts import FewShotPromptTemplate, PromptTemplate\n", "from langchain.prompts import FewShotPromptTemplate, PromptTemplate\n",
"from langchain_core.pydantic_v1 import BaseModel\n",
"from langchain_experimental.tabular_synthetic_data.openai import (\n", "from langchain_experimental.tabular_synthetic_data.openai import (\n",
" OPENAI_TEMPLATE,\n", " OPENAI_TEMPLATE,\n",
" create_openai_data_generator,\n", " create_openai_data_generator,\n",
@@ -71,7 +70,8 @@
" SYNTHETIC_FEW_SHOT_PREFIX,\n", " SYNTHETIC_FEW_SHOT_PREFIX,\n",
" SYNTHETIC_FEW_SHOT_SUFFIX,\n", " SYNTHETIC_FEW_SHOT_SUFFIX,\n",
")\n", ")\n",
"from langchain_openai import ChatOpenAI" "from langchain_openai import ChatOpenAI\n",
"from pydantic import BaseModel"
] ]
}, },
{ {

View File

@@ -115,7 +115,7 @@
"source": [ "source": [
"from typing import Optional\n", "from typing import Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Person(BaseModel):\n", "class Person(BaseModel):\n",
@@ -167,7 +167,7 @@
"from typing import Optional\n", "from typing import Optional\n",
"\n", "\n",
"from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder\n", "from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"# Define a custom prompt to provide instructions and any additional context.\n", "# Define a custom prompt to provide instructions and any additional context.\n",
"# 1) You can add examples into the prompt template to improve extraction quality\n", "# 1) You can add examples into the prompt template to improve extraction quality\n",
@@ -290,7 +290,7 @@
"source": [ "source": [
"from typing import List, Optional\n", "from typing import List, Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Person(BaseModel):\n", "class Person(BaseModel):\n",

View File

@@ -376,7 +376,7 @@
"source": [ "source": [
"from typing import Optional\n", "from typing import Optional\n",
"\n", "\n",
"from langchain_core.pydantic_v1 import BaseModel, Field\n", "from pydantic import BaseModel, Field\n",
"\n", "\n",
"\n", "\n",
"class Search(BaseModel):\n", "class Search(BaseModel):\n",