-
Notifications
You must be signed in to change notification settings - Fork 14.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[docs]: merge tool/toolkit duplicates (#25197)
- Loading branch information
Showing
5 changed files
with
611 additions
and
546 deletions.
There are no files selected for viewing
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 |
---|---|---|
|
@@ -4,12 +4,9 @@ | |
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# Connery Action Tool\n", | ||
"# Connery Toolkit and Tools\n", | ||
"\n", | ||
"Using this tool, you can integrate individual Connery Action into your LangChain agent.\n", | ||
"\n", | ||
"If you want to use more than one Connery Action in your agent,\n", | ||
"check out the [Connery Toolkit](/docs/integrations/tools/connery_toolkit) documentation.\n", | ||
"Using the Connery toolkit and tools, you can integrate Connery Actions into your LangChain agent.\n", | ||
"\n", | ||
"## What is Connery?\n", | ||
"\n", | ||
|
@@ -25,33 +22,136 @@ | |
"- GitHub: https://github.com/connery-io/connery\n", | ||
"- Documentation: https://docs.connery.io\n", | ||
"\n", | ||
"## Prerequisites\n", | ||
"## Setup\n", | ||
"\n", | ||
"### Installation\n", | ||
"\n", | ||
"You need to install the `langchain_community` package to use the Connery tools." | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"%pip install -qU langchain-community" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"### Credentials\n", | ||
"\n", | ||
"To use Connery Actions in your LangChain agent, you need to do some preparation:\n", | ||
"\n", | ||
"1. Set up the Connery runner using the [Quickstart](https://docs.connery.io/docs/runner/quick-start/) guide.\n", | ||
"2. Install all the plugins with the actions you want to use in your agent.\n", | ||
"3. Set environment variables `CONNERY_RUNNER_URL` and `CONNERY_RUNNER_API_KEY` so the toolkit can communicate with the Connery Runner.\n", | ||
"3. Set environment variables `CONNERY_RUNNER_URL` and `CONNERY_RUNNER_API_KEY` so the toolkit can communicate with the Connery Runner." | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"import getpass\n", | ||
"import os\n", | ||
"\n", | ||
"for key in [\"CONNERY_RUNNER_URL\", \"CONNERY_RUNNER_API_KEY\"]:\n", | ||
" if key not in os.environ:\n", | ||
" os.environ[key] = getpass.getpass(f\"Please enter the value for {key}: \")" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Toolkit\n", | ||
"\n", | ||
"## Example of using Connery Action Tool\n", | ||
"In the example below, we create an agent that uses two Connery Actions to summarize a public webpage and send the summary by email:\n", | ||
"\n", | ||
"In the example below, we fetch action by its ID from the Connery Runner and then call it with the specified parameters.\n", | ||
"1. **Summarize public webpage** action from the [Summarization](https://github.com/connery-io/summarization-plugin) plugin.\n", | ||
"2. **Send email** action from the [Gmail](https://github.com/connery-io/gmail) plugin.\n", | ||
"\n", | ||
"Here, we use the ID of the **Send email** action from the [Gmail](https://github.com/connery-io/gmail) plugin." | ||
"You can see a LangSmith trace of this example [here](https://smith.langchain.com/public/4af5385a-afe9-46f6-8a53-57fe2d63c5bc/r)." | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"execution_count": 1, | ||
"metadata": {}, | ||
"outputs": [], | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"\n", | ||
"\n", | ||
"\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n", | ||
"\u001b[32;1m\u001b[1;3m\n", | ||
"Invoking: `CA72DFB0AB4DF6C830B43E14B0782F70` with `{'publicWebpageUrl': 'http://www.paulgraham.com/vb.html'}`\n", | ||
"\n", | ||
"\n", | ||
"\u001b[0m\u001b[33;1m\u001b[1;3m{'summary': 'The author reflects on the concept of life being short and how having children made them realize the true brevity of life. They discuss how time can be converted into discrete quantities and how limited certain experiences are. The author emphasizes the importance of prioritizing and eliminating unnecessary things in life, as well as actively pursuing meaningful experiences. They also discuss the negative impact of getting caught up in online arguments and the need to be aware of how time is being spent. The author suggests pruning unnecessary activities, not waiting to do things that matter, and savoring the time one has.'}\u001b[0m\u001b[32;1m\u001b[1;3m\n", | ||
"Invoking: `CABC80BB79C15067CA983495324AE709` with `{'recipient': '[email protected]', 'subject': 'Summary of the webpage', 'body': 'Here is a short summary of the webpage http://www.paulgraham.com/vb.html:\\n\\nThe author reflects on the concept of life being short and how having children made them realize the true brevity of life. They discuss how time can be converted into discrete quantities and how limited certain experiences are. The author emphasizes the importance of prioritizing and eliminating unnecessary things in life, as well as actively pursuing meaningful experiences. They also discuss the negative impact of getting caught up in online arguments and the need to be aware of how time is being spent. The author suggests pruning unnecessary activities, not waiting to do things that matter, and savoring the time one has.\\n\\nYou can find the full webpage [here](http://www.paulgraham.com/vb.html).'}`\n", | ||
"\n", | ||
"\n", | ||
"\u001b[0m\u001b[33;1m\u001b[1;3m{'messageId': '<[email protected]>'}\u001b[0m\u001b[32;1m\u001b[1;3mI have sent the email with the summary of the webpage to [email protected]. Please check your inbox.\u001b[0m\n", | ||
"\n", | ||
"\u001b[1m> Finished chain.\u001b[0m\n", | ||
"I have sent the email with the summary of the webpage to [email protected]. Please check your inbox.\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"%pip install -upgrade --quiet langchain-community" | ||
"import os\n", | ||
"\n", | ||
"from langchain.agents import AgentType, initialize_agent\n", | ||
"from langchain_community.agent_toolkits.connery import ConneryToolkit\n", | ||
"from langchain_community.tools.connery import ConneryService\n", | ||
"from langchain_openai import ChatOpenAI\n", | ||
"\n", | ||
"# Specify your Connery Runner credentials.\n", | ||
"os.environ[\"CONNERY_RUNNER_URL\"] = \"\"\n", | ||
"os.environ[\"CONNERY_RUNNER_API_KEY\"] = \"\"\n", | ||
"\n", | ||
"# Specify OpenAI API key.\n", | ||
"os.environ[\"OPENAI_API_KEY\"] = \"\"\n", | ||
"\n", | ||
"# Specify your email address to receive the email with the summary from example below.\n", | ||
"recepient_email = \"[email protected]\"\n", | ||
"\n", | ||
"# Create a Connery Toolkit with all the available actions from the Connery Runner.\n", | ||
"connery_service = ConneryService()\n", | ||
"connery_toolkit = ConneryToolkit.create_instance(connery_service)\n", | ||
"\n", | ||
"# Use OpenAI Functions agent to execute the prompt using actions from the Connery Toolkit.\n", | ||
"llm = ChatOpenAI(temperature=0)\n", | ||
"agent = initialize_agent(\n", | ||
" connery_toolkit.get_tools(), llm, AgentType.OPENAI_FUNCTIONS, verbose=True\n", | ||
")\n", | ||
"result = agent.run(\n", | ||
" f\"\"\"Make a short summary of the webpage http://www.paulgraham.com/vb.html in three sentences\n", | ||
"and send it to {recepient_email}. Include the link to the webpage into the body of the email.\"\"\"\n", | ||
")\n", | ||
"print(result)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"NOTE: Connery Action is a structured tool, so you can only use it in the agents supporting structured tools.\n", | ||
"\n", | ||
"## Tool" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 11, | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
|
@@ -110,7 +210,7 @@ | |
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 15, | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
|
@@ -148,6 +248,18 @@ | |
"source": [ | ||
"NOTE: Connery Action is a structured tool, so you can only use it in the agents supporting structured tools." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## API reference\n", | ||
"\n", | ||
"For detailed documentation of all Connery features and configurations head to the API reference:\n", | ||
"\n", | ||
"- Toolkit: https://api.python.langchain.com/en/latest/agent_toolkits/langchain_community.agent_toolkits.connery.toolkit.ConneryToolkit.html\n", | ||
"- Tool: https://api.python.langchain.com/en/latest/tools/langchain_community.tools.connery.service.ConneryService.html" | ||
] | ||
} | ||
], | ||
"metadata": { | ||
|
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.