{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Import things that are needed generically\n", "from langchain import LLMMathChain, SerpAPIWrapper\n", "from langchain.agents import AgentType, initialize_agent\n", "from langchain.chat_models import ChatOpenAI\n", "from langchain.tools import BaseTool, StructuredTool, Tool, tool" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "llm = ChatOpenAI(temperature=0)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Load the tool configs that are needed.\n", "search = SerpAPIWrapper()\n", "llm_math_chain = LLMMathChain(llm=llm, verbose=True)\n", "tools = [\n", " Tool.from_function(\n", " func=search.run,\n", " name=\"Search\",\n", " description=\"useful for when you need to answer questions about current events\"\n", " # coroutine= ... <- you can specify an async method if desired as well\n", " ),\n", "]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pydantic import BaseModel, Field\n", "\n", "\n", "class CalculatorInput(BaseModel):\n", " question: str = Field()\n", "\n", "\n", "tools.append(\n", " Tool.from_function(\n", " func=llm_math_chain.run,\n", " name=\"Calculator\",\n", " description=\"useful for when you need to answer questions about math\",\n", " args_schema=CalculatorInput\n", " # coroutine= ... <- you can specify an async method if desired as well\n", " )\n", ")\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }