From 4da3d4b18e1c58ee0873aae69a26f2a68f124f83 Mon Sep 17 00:00:00 2001 From: Anirudh31415926535 Date: Thu, 1 Aug 2024 01:16:26 +0800 Subject: [PATCH] docs: Minor corrections and updates to Cohere docs (#22726) - **Description:** Update the Cohere's provider and RagRetriever documentations with latest updates. - **Twitter handle:** Anirudh1810 --- docs/docs/integrations/chat/cohere.ipynb | 349 +++++++++++------- docs/docs/integrations/llms/cohere.ipynb | 2 +- docs/docs/integrations/providers/cohere.mdx | 50 +++ .../docs/integrations/retrievers/cohere.ipynb | 13 +- docs/src/theme/ChatModelTabs.js | 2 +- .../langchain_community/chat_models/cohere.py | 2 +- 6 files changed, 281 insertions(+), 137 deletions(-) diff --git a/docs/docs/integrations/chat/cohere.ipynb b/docs/docs/integrations/chat/cohere.ipynb index 875413b0fb2..4437fd243d7 100644 --- a/docs/docs/integrations/chat/cohere.ipynb +++ b/docs/docs/integrations/chat/cohere.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "raw", - "id": "afaf8039", + "id": "53fbf15f", "metadata": {}, "source": [ "---\n", @@ -12,129 +12,103 @@ }, { "cell_type": "markdown", - "id": "e49f1e0d", + "id": "bf733a38-db84-4363-89e2-de6735c37230", "metadata": {}, "source": [ - "# ChatCohere\n", + "# Cohere\n", "\n", - "This doc will help you get started with Cohere [chat models](/docs/concepts/#chat-models). For detailed documentation of all ChatCohere features and configurations head to the [API reference](https://api.python.langchain.com/en/latest/chat_models/langchain_cohere.chat_models.ChatCohere.html).\n", - "\n", - "For an overview of all Cohere models head to the [Cohere docs](https://docs.cohere.com/docs/models).\n", - "\n", - "## Overview\n", - "### Integration details\n", - "\n", - "| Class | Package | Local | Serializable | [JS support](https://js.langchain.com/v0.2/docs/integrations/chat/cohere) | Package downloads | Package latest |\n", - "| :--- | :--- | :---: | :---: | :---: | :---: | :---: |\n", - "| [ChatCohere](https://api.python.langchain.com/en/latest/chat_models/langchain_cohere.chat_models.ChatCohere.html) | [langchain-cohere](https://api.python.langchain.com/en/latest/cohere_api_reference.html) | ❌ | beta | ✅ | ![PyPI - Downloads](https://img.shields.io/pypi/dm/langchain-cohere?style=flat-square&label=%20) | ![PyPI - Version](https://img.shields.io/pypi/v/langchain-cohere?style=flat-square&label=%20) |\n", - "\n", - "### Model features\n", - "| [Tool calling](/docs/how_to/tool_calling) | [Structured output](/docs/how_to/structured_output/) | JSON mode | [Image input](/docs/how_to/multimodal_inputs/) | Audio input | Video input | [Token-level streaming](/docs/how_to/chat_streaming/) | Native async | [Token usage](/docs/how_to/chat_token_usage_tracking/) | [Logprobs](/docs/how_to/logprobs/) |\n", - "| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n", - "| ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | \n", + "This notebook covers how to get started with [Cohere chat models](https://cohere.com/chat).\n", "\n", + "Head to the [API reference](https://api.python.langchain.com/en/latest/chat_models/langchain_community.chat_models.cohere.ChatCohere.html) for detailed documentation of all attributes and methods." + ] + }, + { + "cell_type": "markdown", + "id": "3607d67e-e56c-4102-bbba-df2edc0e109e", + "metadata": {}, + "source": [ "## Setup\n", "\n", - "To access Cohere models you'll need to create a Cohere account, get an API key, and install the `langchain-cohere` integration package.\n", + "The integration lives in the `langchain-cohere` package. We can install these with:\n", "\n", - "### Credentials\n", + "```bash\n", + "pip install -U langchain-cohere\n", + "```\n", "\n", - "Head to https://dashboard.cohere.com/welcome/login to sign up to Cohere and generate an API key. Once you've done this set the COHERE_API_KEY environment variable:" + "We'll also need to get a [Cohere API key](https://cohere.com/) and set the `COHERE_API_KEY` environment variable:" ] }, { "cell_type": "code", - "execution_count": null, - "id": "433e8d2b-9519-4b49-b2c4-7ab65b046c94", + "execution_count": 11, + "id": "2108b517-1e8d-473d-92fa-4f930e8072a7", "metadata": {}, "outputs": [], "source": [ "import getpass\n", "import os\n", "\n", - "os.environ[\"COHERE_API_KEY\"] = getpass.getpass(\"Enter your Cohere API key: \")" + "os.environ[\"COHERE_API_KEY\"] = getpass.getpass()" ] }, { "cell_type": "markdown", - "id": "72ee0c4b-9764-423a-9dbf-95129e185210", + "id": "cf690fbb", "metadata": {}, "source": [ - "If you want to get automated tracing of your model calls you can also set your [LangSmith](https://docs.smith.langchain.com/) API key by uncommenting below:" + "It's also helpful (but not needed) to set up [LangSmith](https://smith.langchain.com/) for best-in-class observability" ] }, { "cell_type": "code", - "execution_count": null, - "id": "a15d341e-3e26-4ca3-830b-5aab30ed66de", + "execution_count": 12, + "id": "7f11de02", "metadata": {}, "outputs": [], "source": [ - "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")\n", - "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"" + "# os.environ[\"LANGCHAIN_TRACING_V2\"] = \"true\"\n", + "# os.environ[\"LANGCHAIN_API_KEY\"] = getpass.getpass()" ] }, { "cell_type": "markdown", - "id": "0730d6a1-c893-4840-9817-5e5251676d5d", + "id": "4c26754b-b3c9-4d93-8f36-43049bd943bf", "metadata": {}, "source": [ - "### Installation\n", + "## Usage\n", "\n", - "The LangChain Cohere integration lives in the `langchain-cohere` package:" + "ChatCohere supports all [ChatModel](/docs/how_to#chat-models) functionality:" ] }, { "cell_type": "code", - "execution_count": null, - "id": "652d6238-1f87-422a-b135-f5abbb8652fc", - "metadata": {}, - "outputs": [], - "source": [ - "%pip install -qU langchain-cohere" - ] - }, - { - "cell_type": "markdown", - "id": "a38cde65-254d-4219-a441-068766c0d4b5", - "metadata": {}, - "source": [ - "## Instantiation\n", - "\n", - "Now we can instantiate our model object and generate chat completions:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "cb09c344-1836-4e0c-acf8-11d13ac1dbae", - "metadata": {}, + "execution_count": 5, + "id": "d4a7c55d-b235-4ca4-a579-c90cc9570da9", + "metadata": { + "tags": [] + }, "outputs": [], "source": [ "from langchain_cohere import ChatCohere\n", - "\n", - "llm = ChatCohere(\n", - " model=\"command-r-plus\",\n", - " temperature=0,\n", - " max_tokens=None,\n", - " timeout=None,\n", - " max_retries=2,\n", - " # other params...\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "2b4f3e15", - "metadata": {}, - "source": [ - "## Invocation" + "from langchain_core.messages import HumanMessage" ] }, { "cell_type": "code", - "execution_count": 2, - "id": "62e0dbc3", + "execution_count": 13, + "id": "70cf04e8-423a-4ff6-8b09-f11fb711c817", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "chat = ChatCohere()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "8199ef8f-eb8b-4253-9ea0-6c24a013ca4c", "metadata": { "tags": [] }, @@ -142,110 +116,223 @@ { "data": { "text/plain": [ - "AIMessage(content=\"J'adore programmer.\", additional_kwargs={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': 'd84f80f3-4611-46e6-aed0-9d8665a20a11', 'token_count': {'input_tokens': 89, 'output_tokens': 5}}, response_metadata={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': 'd84f80f3-4611-46e6-aed0-9d8665a20a11', 'token_count': {'input_tokens': 89, 'output_tokens': 5}}, id='run-514ab516-ed7e-48ac-b132-2598fb80ebef-0')" + "AIMessage(content='4 && 5 \\n6 || 7 \\n\\nWould you like to play a game of odds and evens?', additional_kwargs={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '2076b614-52b3-4082-a259-cc92cd3d9fea', 'token_count': {'prompt_tokens': 68, 'response_tokens': 23, 'total_tokens': 91, 'billed_tokens': 77}}, response_metadata={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '2076b614-52b3-4082-a259-cc92cd3d9fea', 'token_count': {'prompt_tokens': 68, 'response_tokens': 23, 'total_tokens': 91, 'billed_tokens': 77}}, id='run-3475e0c8-c89b-4937-9300-e07d652455e1-0')" ] }, - "execution_count": 2, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "messages = [\n", - " (\n", - " \"system\",\n", - " \"You are a helpful assistant that translates English to French. Translate the user sentence.\",\n", - " ),\n", - " (\"human\", \"I love programming.\"),\n", - "]\n", - "ai_msg = llm.invoke(messages)\n", - "ai_msg" + "messages = [HumanMessage(content=\"1\"), HumanMessage(content=\"2 3\")]\n", + "chat.invoke(messages)" ] }, { "cell_type": "code", - "execution_count": 3, - "id": "d86145b3-bfef-46e8-b227-4dda5c9c2705", - "metadata": {}, + "execution_count": 16, + "id": "c5fac0e9-05a4-4fc1-a3b3-e5bbb24b971b", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content='4 && 5', additional_kwargs={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': 'f0708a92-f874-46ee-9b93-334d616ad92e', 'token_count': {'prompt_tokens': 68, 'response_tokens': 3, 'total_tokens': 71, 'billed_tokens': 57}}, response_metadata={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': 'f0708a92-f874-46ee-9b93-334d616ad92e', 'token_count': {'prompt_tokens': 68, 'response_tokens': 3, 'total_tokens': 71, 'billed_tokens': 57}}, id='run-1635e63e-2994-4e7f-986e-152ddfc95777-0')" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "await chat.ainvoke(messages)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "025be980-e50d-4a68-93dc-c9c7b500ce34", + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "J'adore programmer.\n" + "4 && 5" ] } ], "source": [ - "print(ai_msg.content)" - ] - }, - { - "cell_type": "markdown", - "id": "18e2bfc0-7e78-4528-a73f-499ac150dca8", - "metadata": {}, - "source": [ - "## Chaining\n", - "\n", - "We can [chain](/docs/how_to/sequence/) our model with a prompt template like so:" + "for chunk in chat.stream(messages):\n", + " print(chunk.content, end=\"\", flush=True)" ] }, { "cell_type": "code", - "execution_count": 4, - "id": "e197d1d7-a070-4c96-9f8a-a0e86d046e0b", + "execution_count": 18, + "id": "064288e4-f184-4496-9427-bcf148fa055e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "AIMessage(content='Ich liebe Programmierung.', additional_kwargs={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '053bebde-4e1d-4d06-8ee6-3446e7afa25e', 'token_count': {'input_tokens': 84, 'output_tokens': 6}}, response_metadata={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '053bebde-4e1d-4d06-8ee6-3446e7afa25e', 'token_count': {'input_tokens': 84, 'output_tokens': 6}}, id='run-53700708-b7fb-417b-af36-1a6fcde38e7d-0')" + "[AIMessage(content='4 && 5', additional_kwargs={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '6770ca86-f6c3-4ba3-a285-c4772160612f', 'token_count': {'prompt_tokens': 68, 'response_tokens': 3, 'total_tokens': 71, 'billed_tokens': 57}}, response_metadata={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '6770ca86-f6c3-4ba3-a285-c4772160612f', 'token_count': {'prompt_tokens': 68, 'response_tokens': 3, 'total_tokens': 71, 'billed_tokens': 57}}, id='run-8d6fade2-1b39-4e31-ab23-4be622dd0027-0')]" ] }, - "execution_count": 4, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "from langchain_core.prompts import ChatPromptTemplate\n", - "\n", - "prompt = ChatPromptTemplate.from_messages(\n", - " [\n", - " (\n", - " \"system\",\n", - " \"You are a helpful assistant that translates {input_language} to {output_language}.\",\n", - " ),\n", - " (\"human\", \"{input}\"),\n", - " ]\n", - ")\n", - "\n", - "chain = prompt | llm\n", - "chain.invoke(\n", - " {\n", - " \"input_language\": \"English\",\n", - " \"output_language\": \"German\",\n", - " \"input\": \"I love programming.\",\n", - " }\n", - ")" + "chat.batch([messages])" ] }, { "cell_type": "markdown", - "id": "3a5bb5ca-c3ae-4a58-be67-2cd18574b9a3", + "id": "f1c56460", "metadata": {}, "source": [ - "## API reference\n", + "## Chaining\n", "\n", - "For detailed documentation of all ChatCohere features and configurations head to the API reference: https://api.python.langchain.com/en/latest/chat_models/langchain_cohere.chat_models.ChatCohere.html" + "You can also easily combine with a prompt template for easy structuring of user input. We can do this using [LCEL](/docs/concepts#langchain-expression-language-lcel)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "0851b103", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_core.prompts import ChatPromptTemplate\n", + "\n", + "prompt = ChatPromptTemplate.from_template(\"Tell me a joke about {topic}\")\n", + "chain = prompt | chat" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "ae950c0f-1691-47f1-b609-273033cae707", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content='What color socks do bears wear?\\n\\nThey don’t wear socks, they have bear feet. \\n\\nHope you laughed! If not, maybe this will help: laughter is the best medicine, and a good sense of humor is infectious!', additional_kwargs={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '6edccf44-9bc8-4139-b30e-13b368f3563c', 'token_count': {'prompt_tokens': 68, 'response_tokens': 51, 'total_tokens': 119, 'billed_tokens': 108}}, response_metadata={'documents': None, 'citations': None, 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '6edccf44-9bc8-4139-b30e-13b368f3563c', 'token_count': {'prompt_tokens': 68, 'response_tokens': 51, 'total_tokens': 119, 'billed_tokens': 108}}, id='run-ef7f9789-0d4d-43bf-a4f7-f2a0e27a5320-0')" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "chain.invoke({\"topic\": \"bears\"})" + ] + }, + { + "cell_type": "markdown", + "id": "12db8d69", + "metadata": {}, + "source": [ + "## Tool calling\n", + "\n", + "Cohere supports tool calling functionalities!" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "337e24af", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_core.messages import (\n", + " HumanMessage,\n", + " ToolMessage,\n", + ")\n", + "from langchain_core.tools import tool" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "74d292e7", + "metadata": {}, + "outputs": [], + "source": [ + "@tool\n", + "def magic_function(number: int) -> int:\n", + " \"\"\"Applies a magic operation to an integer\n", + " Args:\n", + " number: Number to have magic operation performed on\n", + " \"\"\"\n", + " return number + 10\n", + "\n", + "\n", + "def invoke_tools(tool_calls, messages):\n", + " for tool_call in tool_calls:\n", + " selected_tool = {\"magic_function\": magic_function}[tool_call[\"name\"].lower()]\n", + " tool_output = selected_tool.invoke(tool_call[\"args\"])\n", + " messages.append(ToolMessage(tool_output, tool_call_id=tool_call[\"id\"]))\n", + " return messages\n", + "\n", + "\n", + "tools = [magic_function]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "ecafcbc6", + "metadata": {}, + "outputs": [], + "source": [ + "llm_with_tools = chat.bind_tools(tools=tools)\n", + "messages = [HumanMessage(content=\"What is the value of magic_function(2)?\")]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "aa34fc39", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content='The value of magic_function(2) is 12.', additional_kwargs={'documents': [{'id': 'magic_function:0:2:0', 'output': '12', 'tool_name': 'magic_function'}], 'citations': [ChatCitation(start=34, end=36, text='12', document_ids=['magic_function:0:2:0'])], 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '96a55791-0c58-4e2e-bc2a-8550e137c46d', 'token_count': {'input_tokens': 998, 'output_tokens': 59}}, response_metadata={'documents': [{'id': 'magic_function:0:2:0', 'output': '12', 'tool_name': 'magic_function'}], 'citations': [ChatCitation(start=34, end=36, text='12', document_ids=['magic_function:0:2:0'])], 'search_results': None, 'search_queries': None, 'is_search_required': None, 'generation_id': '96a55791-0c58-4e2e-bc2a-8550e137c46d', 'token_count': {'input_tokens': 998, 'output_tokens': 59}}, id='run-f318a9cf-55c8-44f4-91d1-27cf46c6a465-0')" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res = llm_with_tools.invoke(messages)\n", + "while res.tool_calls:\n", + " messages.append(res)\n", + " messages = invoke_tools(res.tool_calls, messages)\n", + " res = llm_with_tools.invoke(messages)\n", + "\n", + "res" ] } ], "metadata": { "kernelspec": { - "display_name": "poetry-venv-2", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "poetry-venv-2" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -257,7 +344,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.9.6" } }, "nbformat": 4, diff --git a/docs/docs/integrations/llms/cohere.ipynb b/docs/docs/integrations/llms/cohere.ipynb index 2199ac99519..bfd83a92ac6 100644 --- a/docs/docs/integrations/llms/cohere.ipynb +++ b/docs/docs/integrations/llms/cohere.ipynb @@ -108,7 +108,7 @@ "metadata": {}, "outputs": [], "source": [ - "model = Cohere(model=\"command\", max_tokens=256, temperature=0.75)" + "model = Cohere(max_tokens=256, temperature=0.75)" ] }, { diff --git a/docs/docs/integrations/providers/cohere.mdx b/docs/docs/integrations/providers/cohere.mdx index b51b5919040..0bd8417317d 100644 --- a/docs/docs/integrations/providers/cohere.mdx +++ b/docs/docs/integrations/providers/cohere.mdx @@ -46,6 +46,55 @@ print(llm.invoke("Come up with a pet name")) ``` Usage of the Cohere (legacy) [LLM model](/docs/integrations/llms/cohere) + +### Tool calling +```python +from langchain_cohere import ChatCohere +from langchain_core.messages import ( + HumanMessage, + ToolMessage, +) +from langchain_core.tools import tool + +@tool +def magic_function(number: int) -> int: + """Applies a magic operation to an integer + + Args: + number: Number to have magic operation performed on + """ + return number + 10 + +def invoke_tools(tool_calls, messages): + for tool_call in tool_calls: + selected_tool = {"magic_function":magic_function}[ + tool_call["name"].lower() + ] + tool_output = selected_tool.invoke(tool_call["args"]) + messages.append(ToolMessage(tool_output, tool_call_id=tool_call["id"])) + return messages + +tools = [magic_function] + +llm = ChatCohere() +llm_with_tools = llm.bind_tools(tools=tools) +messages = [ + HumanMessage( + content="What is the value of magic_function(2)?" + ) +] + +res = llm_with_tools.invoke(messages) +while res.tool_calls: + messages.append(res) + messages = invoke_tools(res.tool_calls, messages) + res = llm_with_tools.invoke(messages) + +print(res.content) +``` +Tool calling with Cohere LLM can be done by binding the necessary tools to the llm as seen above. +An alternative, is to support multi hop tool calling with the ReAct agent as seen below. + ### ReAct Agent The agent is based on the paper @@ -77,6 +126,7 @@ agent_executor.invoke({ "input": "In what year was the company that was founded as Sound of Music added to the S&P 500?", }) ``` +The ReAct agent can be used to call multiple tools in sequence. ### RAG Retriever diff --git a/docs/docs/integrations/retrievers/cohere.ipynb b/docs/docs/integrations/retrievers/cohere.ipynb index e14e738d0cc..9003e928b5f 100644 --- a/docs/docs/integrations/retrievers/cohere.ipynb +++ b/docs/docs/integrations/retrievers/cohere.ipynb @@ -34,8 +34,7 @@ }, "outputs": [], "source": [ - "from langchain_cohere import ChatCohere\n", - "from langchain_community.retrievers import CohereRagRetriever\n", + "from langchain_cohere import ChatCohere, CohereRagRetriever\n", "from langchain_core.documents import Document" ] }, @@ -200,7 +199,7 @@ "source": [ "docs = rag.invoke(\n", " \"Does langchain support cohere RAG?\",\n", - " source_documents=[\n", + " documents=[\n", " Document(page_content=\"Langchain supports cohere RAG!\"),\n", " Document(page_content=\"The sky is blue!\"),\n", " ],\n", @@ -208,6 +207,14 @@ "_pretty_print(docs)" ] }, + { + "cell_type": "markdown", + "id": "45a9470f", + "metadata": {}, + "source": [ + "Please note that connectors and documents cannot be used simultaneously. If you choose to provide documents in the `invoke` method, they will take precedence, and connectors will not be utilized for that particular request, as shown in the snippet above!" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/docs/src/theme/ChatModelTabs.js b/docs/src/theme/ChatModelTabs.js index 2945c18f97d..d2381790cb5 100644 --- a/docs/src/theme/ChatModelTabs.js +++ b/docs/src/theme/ChatModelTabs.js @@ -8,7 +8,7 @@ import CodeBlock from "@theme-original/CodeBlock"; * @typedef {Object} ChatModelTabsProps - Component props. * @property {string} [openaiParams] - Parameters for OpenAI chat model. Defaults to `model="gpt-3.5-turbo-0125"` * @property {string} [anthropicParams] - Parameters for Anthropic chat model. Defaults to `model="claude-3-sonnet-20240229"` - * @property {string} [cohereParams] - Parameters for Cohere chat model. Defaults to `model="command-r"` + * @property {string} [cohereParams] - Parameters for Cohere chat model. Defaults to `model="command-r-plus"` * @property {string} [fireworksParams] - Parameters for Fireworks chat model. Defaults to `model="accounts/fireworks/models/mixtral-8x7b-instruct"` * @property {string} [groqParams] - Parameters for Groq chat model. Defaults to `model="llama3-8b-8192"` * @property {string} [mistralParams] - Parameters for Mistral chat model. Defaults to `model="mistral-large-latest"` diff --git a/libs/community/langchain_community/chat_models/cohere.py b/libs/community/langchain_community/chat_models/cohere.py index 8d6b6665ad0..19d354f900f 100644 --- a/libs/community/langchain_community/chat_models/cohere.py +++ b/libs/community/langchain_community/chat_models/cohere.py @@ -111,7 +111,7 @@ class ChatCohere(BaseChatModel, BaseCohere): from langchain_community.chat_models import ChatCohere from langchain_core.messages import HumanMessage - chat = ChatCohere(model="command", max_tokens=256, temperature=0.75) + chat = ChatCohere(max_tokens=256, temperature=0.75) messages = [HumanMessage(content="knock knock")] chat.invoke(messages)