From 4b51c274613a69d60b6e98498098401e9ce192da Mon Sep 17 00:00:00 2001 From: Lance Martin <122662504+rlancemartin@users.noreply.github.com> Date: Fri, 26 Jul 2024 08:08:22 -0700 Subject: [PATCH] Add llama3.1 tool calling (#1148) --- examples/tutorials/rag-agent-testing.ipynb | 105 ++++++++++-------- .../tutorials/tool-calling-agent-local.ipynb | 70 ++++++++---- 2 files changed, 111 insertions(+), 64 deletions(-) diff --git a/examples/tutorials/rag-agent-testing.ipynb b/examples/tutorials/rag-agent-testing.ipynb index bfbd5fd5a..a1d9ffbef 100644 --- a/examples/tutorials/rag-agent-testing.ipynb +++ b/examples/tutorials/rag-agent-testing.ipynb @@ -123,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "8d0866a9-70d4-4c43-b538-80ddb50e0e32", "metadata": {}, "outputs": [], @@ -145,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 25, "id": "b7dc9931-f037-40b2-a9e9-da22aee2fe62", "metadata": {}, "outputs": [], @@ -153,10 +153,32 @@ "from langchain_fireworks import ChatFireworks\n", "\n", "model_tested = \"firefunction-v2\"\n", - "metadata = \"CRAG, firefunction-v\"\n", + "metadata = \"CRAG, firefunction-v2\"\n", "llm = ChatFireworks(model=\"accounts/fireworks/models/firefunction-v2\", temperature=0)" ] }, + { + "cell_type": "markdown", + "id": "f3e646bb-0f9b-40dc-b382-8e4338df2cfe", + "metadata": {}, + "source": [ + "We can test [Mistal-Lage-v2](https://mistral.ai/news/mistral-large-2407/)." + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "9a454a8f-80a7-417a-819d-37a3e52e0412", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_mistralai.chat_models import ChatMistralAI\n", + "\n", + "model_tested = \"mistral-large-2407\"\n", + "metadata = \"CRAG, mistral-large-2407\"\n", + "llm = ChatMistralAI(model=model_tested, temperature=0)" + ] + }, { "attachments": { "599c43c4-9da4-4875-b644-f3ed2b34a179.png": { @@ -196,10 +218,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "d3560759-9e2d-4362-a06f-3a257d0a3088", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "USER_AGENT environment variable not set, consider setting it to identify your requests.\n" + ] + } + ], "source": [ "from langchain.text_splitter import RecursiveCharacterTextSplitter\n", "from langchain_community.document_loaders import WebBaseLoader\n", @@ -254,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "id": "a8cd1080-f8da-41b8-8e52-9a75d9ce1258", "metadata": {}, "outputs": [], @@ -276,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 43, "id": "3a4f8620-d072-49d8-bbeb-76fbf9ee4097", "metadata": {}, "outputs": [], @@ -308,7 +338,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 45, "id": "f3411e9a-53ef-45d3-9c95-0f64b7218c25", "metadata": {}, "outputs": [], @@ -339,7 +369,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 46, "id": "e9b474e9-cebd-4452-a694-4e4cc622fd52", "metadata": {}, "outputs": [], @@ -363,7 +393,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 47, "id": "c3856ef6-e5db-4fa6-97e2-c9495f159d77", "metadata": {}, "outputs": [], @@ -383,7 +413,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 48, "id": "13f4be82-ef3b-4d3a-901d-82eb28abb594", "metadata": {}, "outputs": [], @@ -472,7 +502,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 49, "id": "a0c66d91-8804-4fd7-a29c-2852faa31d19", "metadata": {}, "outputs": [], @@ -528,13 +558,13 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 50, "id": "3e13495c-dfe2-4eea-8786-7d3b8f8138e9", "metadata": {}, "outputs": [ { "data": { - "image/jpeg": "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", + "image/jpeg": "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", "text/plain": [ "" ] @@ -584,7 +614,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 51, "id": "71301681-ddc5-46a9-8092-96693dcdef1b", "metadata": {}, "outputs": [], @@ -606,7 +636,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 52, "id": "87c2aea6-49d9-4d32-9da6-7851fda021ea", "metadata": {}, "outputs": [ @@ -616,7 +646,7 @@ "['retrieve_documents', 'grade_document_retrieval', 'generate_answer']" ] }, - "execution_count": 12, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -676,7 +706,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 53, "id": "9520cb91-5ba2-4915-8aa3-ce0e86d4381b", "metadata": {}, "outputs": [], @@ -712,7 +742,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 54, "id": "c949a92e-9f76-41a0-8008-728b9e51dc1f", "metadata": {}, "outputs": [], @@ -770,13 +800,13 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 58, "id": "769ade7f-e19f-467c-b359-ca7e5ded45c2", "metadata": {}, "outputs": [ { "data": { - "image/jpeg": "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", + "image/jpeg": "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", "text/plain": [ "" ] @@ -955,25 +985,12 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "3dbbfde9-37cc-427f-abee-64cc3366c3b7", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'response': 'The types of agent memory are short-term memory and long-term memory. Short-term memory involves in-context learning and temporary information processing. Long-term memory allows the agent to retain and recall information over extended periods, often using an external vector store for fast retrieval.',\n", - " 'steps': ['retrieve_documents',\n", - " 'grade_document_retrieval',\n", - " 'web_search',\n", - " 'generate_answer']}" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "scrolled": true + }, + "outputs": [], "source": [ "def predict_custom_agent_answer(example: dict):\n", " config = {\"configurable\": {\"thread_id\": str(uuid.uuid4())}}\n", @@ -1018,7 +1035,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "id": "2ef03dad-d161-4002-abb4-857dc034d2fb", "metadata": {}, "outputs": [], @@ -1072,7 +1089,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "id": "88a78e4e-c1d4-456a-9f4c-a207e3255086", "metadata": {}, "outputs": [], @@ -1124,7 +1141,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "id": "a6d07b7c-a6ab-4b71-9e31-fdb61348b7cb", "metadata": {}, "outputs": [], @@ -1199,7 +1216,7 @@ " data=dataset_name,\n", " evaluators=[answer_evaluator, check_trajectory_react],\n", " experiment_prefix=experiment_prefix + \"-answer-and-tool-use\",\n", - " num_repetitions=3,\n", + " num_repetitions=5,\n", " metadata={\"version\": metadata},\n", ")\n", "\n", @@ -1209,7 +1226,7 @@ " data=dataset_name,\n", " evaluators=[answer_evaluator, check_trajectory_custom],\n", " experiment_prefix=experiment_prefix + \"-answer-and-tool-use\",\n", - " num_repetitions=3,\n", + " num_repetitions=5,\n", " metadata={\"version\": metadata},\n", ")" ] diff --git a/examples/tutorials/tool-calling-agent-local.ipynb b/examples/tutorials/tool-calling-agent-local.ipynb index 4ccde6444..03659debe 100644 --- a/examples/tutorials/tool-calling-agent-local.ipynb +++ b/examples/tutorials/tool-calling-agent-local.ipynb @@ -15,6 +15,7 @@ "\n", "```\n", "ollama pull llama3-groq-tool-use\n", + "ollama pull llama3.1\n", "```\n", "\n", "And also, we'll use the Ollama partner package.\n", @@ -39,35 +40,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "120c1da8-e45e-4ffa-9ac1-a536026c7e1c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.0\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.1.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install -qU langchain-ollama" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 8, "id": "32c0504b-007a-4af6-9976-c7294ed26b73", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "USER_AGENT environment variable not set, consider setting it to identify your requests.\n" - ] - } - ], + "outputs": [], "source": [ "# /// LLM ///\n", "\n", "from langchain_ollama import ChatOllama\n", "\n", "llm = ChatOllama(\n", - " model=\"llama3-groq-tool-use\",\n", + " # model=\"llama3-groq-tool-use\",\n", + " model=\"llama3.1\",\n", " temperature=0,\n", ")\n", "\n", @@ -129,14 +134,13 @@ " for d in web_results\n", " ]\n", "\n", - "\n", "# Tool list\n", "tools = [retrieve_documents, web_search]" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 9, "id": "30052f47-2b5d-46f5-9873-eb716145cda1", "metadata": {}, "outputs": [], @@ -148,11 +152,9 @@ "from langgraph.graph.message import AnyMessage, add_messages\n", "from typing_extensions import TypedDict\n", "\n", - "\n", "class State(TypedDict):\n", " messages: Annotated[list[AnyMessage], add_messages]\n", "\n", - "\n", "class Assistant:\n", " def __init__(self, runnable: Runnable):\n", " \"\"\"\n", @@ -209,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 10, "id": "40504a0b-8a99-4420-a6bf-561c62e893d1", "metadata": {}, "outputs": [ @@ -282,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 11, "id": "43c633d5-e7a7-4b7c-8dc7-760a3b032e95", "metadata": {}, "outputs": [], @@ -301,9 +303,19 @@ "response = predict_react_agent_answer(example)" ] }, + { + "cell_type": "markdown", + "id": "bf82fa52-9e6c-4f37-94ae-91450dac602e", + "metadata": {}, + "source": [ + "See trace with llama3.1 here:\n", + "\n", + "https://smith.langchain.com/public/44d0c7dd-a756-47ad-8025-ee7ae6469ecb/r" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "cd74a0b3-be40-46cd-97bf-ef9676878289", "metadata": {}, "outputs": [], @@ -311,6 +323,24 @@ "example = {\"input\": \"Get me information about the current weather in SF.\"}\n", "response = predict_react_agent_answer(example)" ] + }, + { + "cell_type": "markdown", + "id": "8cac91bf-c975-44a2-a9fd-99706fee5735", + "metadata": {}, + "source": [ + "See trace with llama3.1 here:\n", + "\n", + "https://smith.langchain.com/public/7a4938e3-f94f-4e04-a162-bf592fba4643/r" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "74b813cb-18ed-42d8-b313-6ee56ded4bcc", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": {