From ba74341eeebc60cb13bab3dfc8cf574519f608a4 Mon Sep 17 00:00:00 2001 From: ccurme Date: Thu, 18 Jul 2024 11:53:48 -0400 Subject: [PATCH] docs: update tool calling how-to to pass functions to bind_tools (#24402) --- docs/docs/how_to/tool_calling.ipynb | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/docs/docs/how_to/tool_calling.ipynb b/docs/docs/how_to/tool_calling.ipynb index d9e35bbd51a..c26e70ade32 100644 --- a/docs/docs/how_to/tool_calling.ipynb +++ b/docs/docs/how_to/tool_calling.ipynb @@ -82,30 +82,24 @@ "## Passing tools to chat models\n", "\n", "Chat models that support tool calling features implement a `.bind_tools` method, which \n", - "receives a list of LangChain [tool objects](https://api.python.langchain.com/en/latest/tools/langchain_core.tools.BaseTool.html#langchain_core.tools.BaseTool) \n", + "receives a list of functions, Pydantic models, or LangChain [tool objects](https://api.python.langchain.com/en/latest/tools/langchain_core.tools.BaseTool.html#langchain_core.tools.BaseTool) \n", "and binds them to the chat model in its expected format. Subsequent invocations of the \n", "chat model will include tool schemas in its calls to the LLM.\n", "\n", - "For example, we can define the schema for custom tools using the `@tool` decorator \n", - "on Python functions:" + "For example, below we implement simple tools for arithmetic:" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "from langchain_core.tools import tool\n", - "\n", - "\n", - "@tool\n", "def add(a: int, b: int) -> int:\n", " \"\"\"Adds a and b.\"\"\"\n", " return a + b\n", "\n", "\n", - "@tool\n", "def multiply(a: int, b: int) -> int:\n", " \"\"\"Multiplies a and b.\"\"\"\n", " return a * b\n", @@ -118,12 +112,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Or below, we define the schema using [Pydantic](https://docs.pydantic.dev):" + "LangChain also implements a `@tool` decorator that allows for further control of the tool schema, such as tool names and argument descriptions. See the how-to guide [here](/docs/how_to/custom_tools/#creating-tools-from-functions) for detail.\n", + "\n", + "We can also define the schema using [Pydantic](https://docs.pydantic.dev):" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -343,7 +339,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.10.4" } }, "nbformat": 4,