mirror of
https://github.com/hwchase17/langchain
synced 2024-10-29 17:07:25 +00:00
66828ad231
[OpenWeatherMapAPIWrapper](f70e18a5b3/docs/modules/agents/tools/examples/openweathermap.ipynb
) works wonderfully, but the _tool_ itself can't be used in master branch. - added OpenWeatherMap **tool** to the public api, to be loadable with `load_tools` by using "openweathermap-api" tool name (that name is used in the existing [docs](aff33d52c5/docs/modules/agents/tools/getting_started.md
), at the bottom of the page) - updated OpenWeatherMap tool's **description** to make the input format match what the API expects (e.g. `London,GB` instead of `'London,GB'`) - added [ecosystem documentation page for OpenWeatherMap](f9c41594fe/docs/ecosystem/openweathermap.md
) - added tool usage example to [OpenWeatherMap's notebook](f9c41594fe/docs/modules/agents/tools/examples/openweathermap.ipynb
) Let me know if there's something I missed or something needs to be updated! Or feel free to make edits yourself if that makes it easier for you 🙂
174 lines
4.6 KiB
Plaintext
174 lines
4.6 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "245a954a",
|
|
"metadata": {},
|
|
"source": [
|
|
"# OpenWeatherMap API\n",
|
|
"\n",
|
|
"This notebook goes over how to use the OpenWeatherMap component to fetch weather information.\n",
|
|
"\n",
|
|
"First, you need to sign up for an OpenWeatherMap API key:\n",
|
|
"\n",
|
|
"1. Go to OpenWeatherMap and sign up for an API key [here](https://openweathermap.org/api/)\n",
|
|
"2. pip install pyowm\n",
|
|
"\n",
|
|
"Then we will need to set some environment variables:\n",
|
|
"1. Save your API KEY into OPENWEATHERMAP_API_KEY env variable\n",
|
|
"\n",
|
|
"## Use the wrapper"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "34bb5968",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from langchain.utilities import OpenWeatherMapAPIWrapper\n",
|
|
"import os\n",
|
|
"\n",
|
|
"os.environ[\"OPENWEATHERMAP_API_KEY\"] = \"\"\n",
|
|
"\n",
|
|
"weather = OpenWeatherMapAPIWrapper()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "ac4910f8",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"In London,GB, the current weather is as follows:\n",
|
|
"Detailed status: broken clouds\n",
|
|
"Wind speed: 2.57 m/s, direction: 240°\n",
|
|
"Humidity: 55%\n",
|
|
"Temperature: \n",
|
|
" - Current: 20.12°C\n",
|
|
" - High: 21.75°C\n",
|
|
" - Low: 18.68°C\n",
|
|
" - Feels like: 19.62°C\n",
|
|
"Rain: {}\n",
|
|
"Heat index: None\n",
|
|
"Cloud cover: 75%\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"weather_data = weather.run(\"London,GB\")\n",
|
|
"print(weather_data)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "e73cfa56",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Use the tool"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "b3367417",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from langchain.llms import OpenAI\n",
|
|
"from langchain.agents import load_tools, initialize_agent, AgentType\n",
|
|
"import os\n",
|
|
"\n",
|
|
"os.environ[\"OPENAI_API_KEY\"] = \"\"\n",
|
|
"os.environ[\"OPENWEATHERMAP_API_KEY\"] = \"\"\n",
|
|
"\n",
|
|
"llm = OpenAI(temperature=0)\n",
|
|
"\n",
|
|
"tools = load_tools([\"openweathermap-api\"], llm)\n",
|
|
"\n",
|
|
"agent_chain = initialize_agent(\n",
|
|
" tools=tools,\n",
|
|
" llm=llm,\n",
|
|
" agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,\n",
|
|
" verbose=True\n",
|
|
")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"id": "bf4f6854",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n",
|
|
"\n",
|
|
"\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n",
|
|
"\u001b[32;1m\u001b[1;3m I need to find out the current weather in London.\n",
|
|
"Action: OpenWeatherMap\n",
|
|
"Action Input: London,GB\u001b[0m\n",
|
|
"Observation: \u001b[36;1m\u001b[1;3mIn London,GB, the current weather is as follows:\n",
|
|
"Detailed status: broken clouds\n",
|
|
"Wind speed: 2.57 m/s, direction: 240°\n",
|
|
"Humidity: 56%\n",
|
|
"Temperature: \n",
|
|
" - Current: 20.11°C\n",
|
|
" - High: 21.75°C\n",
|
|
" - Low: 18.68°C\n",
|
|
" - Feels like: 19.64°C\n",
|
|
"Rain: {}\n",
|
|
"Heat index: None\n",
|
|
"Cloud cover: 75%\u001b[0m\n",
|
|
"Thought:\u001b[32;1m\u001b[1;3m I now know the current weather in London.\n",
|
|
"Final Answer: The current weather in London is broken clouds, with a wind speed of 2.57 m/s, direction 240°, humidity of 56%, temperature of 20.11°C, high of 21.75°C, low of 18.68°C, and a heat index of None.\u001b[0m\n",
|
|
"\n",
|
|
"\u001b[1m> Finished chain.\u001b[0m\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'The current weather in London is broken clouds, with a wind speed of 2.57 m/s, direction 240°, humidity of 56%, temperature of 20.11°C, high of 21.75°C, low of 18.68°C, and a heat index of None.'"
|
|
]
|
|
},
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"agent_chain.run(\"What's the weather like in London?\")"
|
|
]
|
|
}
|
|
],
|
|
"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.8.16"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|