From d65375517a7d37f6e568d8d3a2d5693ade823e5e Mon Sep 17 00:00:00 2001 From: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com> Date: Fri, 1 Mar 2024 00:47:17 -0800 Subject: [PATCH] Add readme link --- README.md | 4 ++++ examples/storm/storm.ipynb | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e5f7f2164..23ca5ac8b 100644 --- a/README.md +++ b/README.md @@ -497,6 +497,10 @@ When output quality is a major concern, it's common to incorporate some combinat - [Multi-agent with supervisor](https://github.com/langchain-ai/langgraph/blob/main/examples/multi_agent/agent_supervisor.ipynb): how to orchestrate individual agents by using an LLM as a "supervisor" to distribute work - [Hierarchical agent teams](https://github.com/langchain-ai/langgraph/blob/main/examples/multi_agent/hierarchical_agent_teams.ipynb): how to orchestrate "teams" of agents as nested graphs that can collaborate to solve a problem +### Web Research + +- [STORM](./examples/storm/storm.ipynb): writing system that generates Wikipedia-style articles on any topic, applying outline generation (planning) + multi-perspective question-answering for added breadth and reliability. Based on [STORM](https://arxiv.org/abs/2402.14207) by [Shao](https://twitter.com/EchoShao8899), et. al. + ### Chatbot Evaluation via Simulation It can often be tough to evaluation chat bots in multi-turn situations. One way to do this is with simulations. diff --git a/examples/storm/storm.ipynb b/examples/storm/storm.ipynb index d56ca5f98..6a9d7b0cf 100644 --- a/examples/storm/storm.ipynb +++ b/examples/storm/storm.ipynb @@ -62,22 +62,24 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "import os\n", "import getpass\n", "\n", + "\n", "def _set_env(var: str):\n", " if os.environ.get(var):\n", " return\n", " os.environ[var] = getpass.getpass(var + \":\")\n", "\n", + "\n", "# Set for tracing\n", - "os.environ[\"LANGCHAIN_TRACING_V2\"[ = \"true\"\n", + "os.environ[\"LANGCHAIN_TRACING_V2\"] = \"true\"\n", "os.environ[\"LANGCHAIN_PROJECT\"] = \"STORM\"\n", - "_set_env(\"LANGCHAIN_API_KEY\") \n", + "_set_env(\"LANGCHAIN_API_KEY\")\n", "_set_env(\"OPENAI_API_KEY\")" ] }, @@ -99,7 +101,7 @@ "from langchain_openai import ChatOpenAI\n", "from langchain_fireworks import ChatFireworks\n", "\n", - "fast_llm = ChatOpenAI(model=\"gpt-3.5-turbo\") \n", + "fast_llm = ChatOpenAI(model=\"gpt-3.5-turbo\")\n", "# Uncomment for a Fireworks model\n", "# fast_llm = ChatFireworks(model=\"accounts/fireworks/models/firefunction-v1\", max_tokens=32_000)\n", "long_context_llm = ChatOpenAI(model=\"gpt-4-turbo-preview\")" @@ -693,6 +695,7 @@ "# Tavily is typically a better search engine, but your free queries are limited\n", "# search_engine = TavilySearchResults(max_results=4)\n", "\n", + "\n", "@tool\n", "async def search_engine(query: str):\n", " \"\"\"Search engine to the internet.\"\"\"\n",