forked from langchain-ai/langchain
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add functions agent (langchain-ai#6113)
- Loading branch information
1 parent
e01f475
commit 4b3e194
Showing
7 changed files
with
426 additions
and
2 deletions.
There are no files selected for viewing
165 changes: 165 additions & 0 deletions
165
docs/modules/agents/agents/examples/openai_functions_agent.ipynb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"id": "9502d5b0", | ||
"metadata": {}, | ||
"source": [ | ||
"# OpenAI Functions Agent\n", | ||
"\n", | ||
"This notebook showcases using an agent that uses the OpenAI functions ability" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"id": "c0a83623", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"from langchain import LLMMathChain, OpenAI, SerpAPIWrapper, SQLDatabase, SQLDatabaseChain\n", | ||
"from langchain.agents import initialize_agent, Tool\n", | ||
"from langchain.agents import AgentType\n", | ||
"from langchain.chat_models import ChatOpenAI" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 2, | ||
"id": "6fefaba2", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"llm = ChatOpenAI(temperature=0, model=\"gpt-3.5-turbo-0613\")\n", | ||
"search = SerpAPIWrapper()\n", | ||
"llm_math_chain = LLMMathChain.from_llm(llm=llm, verbose=True)\n", | ||
"db = SQLDatabase.from_uri(\"sqlite:///../../../../../notebooks/Chinook.db\")\n", | ||
"db_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)\n", | ||
"tools = [\n", | ||
" Tool(\n", | ||
" name = \"Search\",\n", | ||
" func=search.run,\n", | ||
" description=\"useful for when you need to answer questions about current events. You should ask targeted questions\"\n", | ||
" ),\n", | ||
" Tool(\n", | ||
" name=\"Calculator\",\n", | ||
" func=llm_math_chain.run,\n", | ||
" description=\"useful for when you need to answer questions about math\"\n", | ||
" ),\n", | ||
" Tool(\n", | ||
" name=\"FooBar-DB\",\n", | ||
" func=db_chain.run,\n", | ||
" description=\"useful for when you need to answer questions about FooBar. Input should be in the form of a question containing full context\"\n", | ||
" )\n", | ||
"]" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 3, | ||
"id": "9ff6cee9", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"mrkl = initialize_agent(tools, llm, agent=AgentType.OPENAI_FUNCTIONS, verbose=True)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 4, | ||
"id": "ba8e4cbe", | ||
"metadata": { | ||
"scrolled": false | ||
}, | ||
"outputs": [ | ||
{ | ||
"name": "stderr", | ||
"output_type": "stream", | ||
"text": [ | ||
"Error in on_chain_start callback: 'name'\n" | ||
] | ||
}, | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"\u001b[32;1m\u001b[1;3m\n", | ||
"Invoking: `Search` with `{'query': 'Leo DiCaprio girlfriend'}`\n", | ||
"\n", | ||
"\n", | ||
"\u001b[0m\u001b[36;1m\u001b[1;3mAmidst his casual romance with Gigi, Leo allegedly entered a relationship with 19-year old model, Eden Polani, in February 2023.\u001b[0m" | ||
] | ||
}, | ||
{ | ||
"name": "stderr", | ||
"output_type": "stream", | ||
"text": [ | ||
"Error in on_chain_start callback: 'name'\n" | ||
] | ||
}, | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"\u001b[32;1m\u001b[1;3m\n", | ||
"Invoking: `Calculator` with `{'expression': '19^0.43'}`\n", | ||
"\n", | ||
"\n", | ||
"\u001b[0m19^0.43\u001b[32;1m\u001b[1;3m```text\n", | ||
"19**0.43\n", | ||
"```\n", | ||
"...numexpr.evaluate(\"19**0.43\")...\n", | ||
"\u001b[0m\n", | ||
"Answer: \u001b[33;1m\u001b[1;3m3.547023357958959\u001b[0m\n", | ||
"\u001b[1m> Finished chain.\u001b[0m\n", | ||
"\u001b[33;1m\u001b[1;3mAnswer: 3.547023357958959\u001b[0m\u001b[32;1m\u001b[1;3mLeo DiCaprio's girlfriend is reportedly Eden Polani. Her current age raised to the power of 0.43 is approximately 3.55.\u001b[0m\n", | ||
"\n", | ||
"\u001b[1m> Finished chain.\u001b[0m\n" | ||
] | ||
}, | ||
{ | ||
"data": { | ||
"text/plain": [ | ||
"\"Leo DiCaprio's girlfriend is reportedly Eden Polani. Her current age raised to the power of 0.43 is approximately 3.55.\"" | ||
] | ||
}, | ||
"execution_count": 4, | ||
"metadata": {}, | ||
"output_type": "execute_result" | ||
} | ||
], | ||
"source": [ | ||
"mrkl.run(\"Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?\")" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"id": "9f5f6743", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3 (ipykernel)", | ||
"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.9.1" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Oops, something went wrong.