diff --git a/docs/examples/memory/agent_with_memory.ipynb b/docs/examples/memory/agent_with_memory.ipynb index 7527907c154..9922d6e893c 100644 --- a/docs/examples/memory/agent_with_memory.ipynb +++ b/docs/examples/memory/agent_with_memory.ipynb @@ -22,12 +22,12 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 6, "id": "8db95912", "metadata": {}, "outputs": [], "source": [ - "from langchain.agents import ZeroShotAgent, Tool\n", + "from langchain.agents import ZeroShotAgent, Tool, AgentExecutor\n", "from langchain.chains.conversation.memory import ConversationBufferMemory\n", "from langchain import OpenAI, SerpAPIWrapper, LLMChain" ] @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 8, "id": "e3439cd6", "metadata": {}, "outputs": [], @@ -68,13 +68,14 @@ "suffix = \"\"\"Begin!\"\n", "\n", "{chat_history}\n", - "Question: {input}\"\"\"\n", + "Question: {input}\n", + "{agent_scratchpad}\"\"\"\n", "\n", "prompt = ZeroShotAgent.create_prompt(\n", " tools, \n", " prefix=prefix, \n", " suffix=suffix, \n", - " input_variables=[\"input\", \"chat_history\"]\n", + " input_variables=[\"input\", \"chat_history\", \"agent_scratchpad\"]\n", ")\n", "memory = ConversationBufferMemory(memory_key=\"chat_history\")" ] @@ -89,18 +90,19 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 16, "id": "c56a0e73", "metadata": {}, "outputs": [], "source": [ - "llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=prompt, memory=memory)\n", - "agent = ZeroShotAgent(llm_chain=llm_chain, tools=tools, verbose=True)" + "llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=prompt)\n", + "agent = ZeroShotAgent(llm_chain=llm_chain, tools=tools, verbose=True)\n", + "agent_chain = AgentExecutor.from_agent_and_tools(agent=agent, tools=tools, verbose=True, memory=memory)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 17, "id": "ca4bc1fb", "metadata": {}, "outputs": [ @@ -110,30 +112,29 @@ "text": [ "\n", "\n", - "\u001b[1m> Entering new chain...\u001b[0m\n", - "How many people live in canada?\n", - "Thought:\u001b[32;1m\u001b[1;3m I should look up how many people live in canada\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mThought: I need to find out the population of Canada\n", "Action: Search\n", - "Action Input: \"How many people live in canada?\"\u001b[0m\n", - "Observation: \u001b[36;1m\u001b[1;3mThe current population of Canada is 38,533,678 as of Friday, November 25, 2022, based on Worldometer elaboration of the latest United Nations data. · Canada 2020 ...\u001b[0m\n", + "Action Input: Population of Canada\u001b[0m\n", + "Observation: \u001b[36;1m\u001b[1;3mThe current population of Canada is 38,555,354 as of Monday, December 19, 2022, based on Worldometer elaboration of the latest United Nations data. · Canada 2020 ...\u001b[0m\n", "Thought:\u001b[32;1m\u001b[1;3m I now know the final answer\n", - "Final Answer: The current population of Canada is 38,533,678 as of Friday, November 25, 2022, based on Worldometer elaboration of the latest United Nations data.\u001b[0m\n", - "\u001b[1m> Finished chain.\u001b[0m\n" + "Final Answer: The current population of Canada is 38,555,354.\u001b[0m\n", + "\u001b[1m> Finished AgentExecutor chain.\u001b[0m\n" ] }, { "data": { "text/plain": [ - "'The current population of Canada is 38,533,678 as of Friday, November 25, 2022, based on Worldometer elaboration of the latest United Nations data.'" + "'The current population of Canada is 38,555,354.'" ] }, - "execution_count": 5, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "agent.run(\"How many people live in canada?\")" + "agent_chain.run(input=\"How many people live in canada?\")" ] }, { @@ -146,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 20, "id": "eecc0462", "metadata": {}, "outputs": [ @@ -156,32 +157,29 @@ "text": [ "\n", "\n", - "\u001b[1m> Entering new chain...\u001b[0m\n", - "what is their national anthem called?\n", - "Thought:\u001b[32;1m\u001b[1;3m\n", - "AI: I should look up the name of Canada's national anthem\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mThought: I need to find out what the national anthem of Canada is called.\n", "Action: Search\n", - "Action Input: \"What is the name of Canada's national anthem?\"\u001b[0m\n", + "Action Input: National anthem of Canada\u001b[0m\n", "Observation: \u001b[36;1m\u001b[1;3mAfter 100 years of tradition, O Canada was proclaimed Canada's national anthem in 1980. The music for O Canada was composed in 1880 by Calixa ...\u001b[0m\n", - "Thought:\u001b[32;1m\u001b[1;3m\n", - "AI: I now know the final answer\n", - "Final Answer: After 100 years of tradition, O Canada was proclaimed Canada's national anthem in 1980. The music for O Canada was composed in 1880 by Calixa Lavallée.\u001b[0m\n", - "\u001b[1m> Finished chain.\u001b[0m\n" + "Thought:\u001b[32;1m\u001b[1;3m I now know the final answer\n", + "Final Answer: O Canada is the national anthem of Canada.\u001b[0m\n", + "\u001b[1m> Finished AgentExecutor chain.\u001b[0m\n" ] }, { "data": { "text/plain": [ - "\"After 100 years of tradition, O Canada was proclaimed Canada's national anthem in 1980. The music for O Canada was composed in 1880 by Calixa Lavallée.\"" + "'O Canada is the national anthem of Canada.'" ] }, - "execution_count": 6, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "agent.run(\"what is their national anthem called?\")" + "agent_chain.run(input=\"what is their national anthem called?\")" ] }, { @@ -196,7 +194,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 23, "id": "3359d043", "metadata": {}, "outputs": [], @@ -204,21 +202,23 @@ "prefix = \"\"\"Have a conversation with a human, answering the following questions as best you can. You have access to the following tools:\"\"\"\n", "suffix = \"\"\"Begin!\"\n", "\n", - "Question: {input}\"\"\"\n", + "Question: {input}\n", + "{agent_scratchpad}\"\"\"\n", "\n", "prompt = ZeroShotAgent.create_prompt(\n", " tools, \n", " prefix=prefix, \n", " suffix=suffix, \n", - " input_variables=[\"input\"]\n", + " input_variables=[\"input\", \"agent_scratchpad\"]\n", ")\n", "llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=prompt)\n", - "agent_without_memory = ZeroShotAgent(llm_chain=llm_chain, tools=tools, verbose=True)" + "agent = ZeroShotAgent(llm_chain=llm_chain, tools=tools, verbose=True)\n", + "agent_without_memory = AgentExecutor.from_agent_and_tools(agent=agent, tools=tools, verbose=True)" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 24, "id": "970d23df", "metadata": {}, "outputs": [ @@ -228,24 +228,23 @@ "text": [ "\n", "\n", - "\u001b[1m> Entering new chain...\u001b[0m\n", - "How many people live in canada?\n", - "Thought:\u001b[32;1m\u001b[1;3m I should look up how many people live in canada\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mThought: I should look up the answer\n", "Action: Search\n", - "Action Input: \"How many people live in canada?\"\u001b[0m\n", - "Observation: \u001b[36;1m\u001b[1;3mThe current population of Canada is 38,533,678 as of Friday, November 25, 2022, based on Worldometer elaboration of the latest United Nations data. · Canada 2020 ...\u001b[0m\n", + "Action Input: population of Canada\u001b[0m\n", + "Observation: \u001b[36;1m\u001b[1;3mThe current population of Canada is 38,555,354 as of Monday, December 19, 2022, based on Worldometer elaboration of the latest United Nations data. · Canada 2020 ...\u001b[0m\n", "Thought:\u001b[32;1m\u001b[1;3m I now know the final answer\n", - "Final Answer: The current population of Canada is 38,533,678\u001b[0m\n", - "\u001b[1m> Finished chain.\u001b[0m\n" + "Final Answer: The current population of Canada is 38,555,354.\u001b[0m\n", + "\u001b[1m> Finished AgentExecutor chain.\u001b[0m\n" ] }, { "data": { "text/plain": [ - "'The current population of Canada is 38,533,678'" + "'The current population of Canada is 38,555,354.'" ] }, - "execution_count": 10, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -256,7 +255,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 25, "id": "d9ea82f0", "metadata": {}, "outputs": [ @@ -266,24 +265,23 @@ "text": [ "\n", "\n", - "\u001b[1m> Entering new chain...\u001b[0m\n", - "what is their national anthem called?\n", - "Thought:\u001b[32;1m\u001b[1;3m I should probably look this up\n", + "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", + "\u001b[32;1m\u001b[1;3mThought: I should look up the answer\n", "Action: Search\n", - "Action Input: \"What is the national anthem of [country]\"\u001b[0m\n", - "Observation: \u001b[36;1m\u001b[1;3mMost nation states have an anthem, defined as \"a song, as of praise, devotion, or patriotism\"; most anthems are either marches or hymns in style.\u001b[0m\n", + "Action Input: national anthem of [country]\u001b[0m\n", + "Observation: \u001b[36;1m\u001b[1;3m\"Himno Nacional\" (\"National Anthem\") · \"Pátria\" (\"Fatherland\") · \"Salve, Oh Patria\" (\"We Salute You, Our Homeland\") · \"Bilady, Bilady, Bilady\" (\"My Country, My ...\u001b[0m\n", "Thought:\u001b[32;1m\u001b[1;3m I now know the final answer\n", - "Final Answer: The national anthem is called \"the national anthem.\"\u001b[0m\n", - "\u001b[1m> Finished chain.\u001b[0m\n" + "Final Answer: The national anthem of [country] is called \"Himno Nacional\", \"Pátria\", \"Salve, Oh Patria\", and \"Bilady, Bilady, Bilady\".\u001b[0m\n", + "\u001b[1m> Finished AgentExecutor chain.\u001b[0m\n" ] }, { "data": { "text/plain": [ - "'The national anthem is called \"the national anthem.\"'" + "'The national anthem of [country] is called \"Himno Nacional\", \"Pátria\", \"Salve, Oh Patria\", and \"Bilady, Bilady, Bilady\".'" ] }, - "execution_count": 11, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -317,7 +315,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.10.8" } }, "nbformat": 4,