# Langchain-Cohere
This package contains the LangChain integrations for [Cohere](https://cohere.com/).
[Cohere](https://cohere.com/) empowers every developer and enterprise to build amazing products and capture true business value with language AI.
## Installation
- Install the `langchain-cohere` package:
```bash
pip install langchain-cohere
```
- Get a [Cohere API key](https://cohere.com/) and set it as an environment variable (`COHERE_API_KEY`)
## Migration from langchain-community
Cohere's integrations used to be part of the `langchain-community` package, but since version 0.0.30 the integration in `langchain-community` has been deprecated in favour `langchain-cohere`.
The two steps to migrate are:
1) Import from langchain_cohere instead of langchain_community, for example:
* `from langchain_community.chat_models import ChatCohere` -> `from langchain_cohere import ChatCohere`
* `from langchain_community.retrievers import CohereRagRetriever` -> `from langchain_cohere import CohereRagRetriever`
* `from langchain.embeddings import CohereEmbeddings` -> `from langchain_cohere import CohereEmbeddings`
* `from langchain.retrievers.document_compressors import CohereRerank` -> `from langchain_cohere import CohereRerank`
2) The Cohere Python SDK version is now managed by this package and only v5+ is supported.
* There's no longer a need to specify cohere as a dependency in requirements.txt/pyproject.toml (etc.)
## Supported LangChain Integrations
| API | description | Endpoint docs | Import | Example usage |
|------------------|-----------------------------------------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|
| Chat | Build chat bots | [chat](https://docs.cohere.com/reference/chat) | `from langchain_cohere import ChatCohere` | [notebook](https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/chat/cohere.ipynb) |
| RAG Retriever | Connect to external data sources | [chat + rag](https://docs.cohere.com/reference/chat) | `from langchain_cohere import CohereRagRetriever` | [notebook](https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/retrievers/cohere.ipynb) |
| Text Embedding | Embed strings to vectors | [embed](https://docs.cohere.com/reference/embed) | `from langchain_cohere import CohereEmbeddings` | [notebook](https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/text_embedding/cohere.ipynb) |
| Rerank Retriever | Rank strings based on relevance | [rerank](https://docs.cohere.com/reference/rerank) | `from langchain_cohere import CohereRerank` | [notebook](https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/retrievers/cohere-reranker.ipynb) |
| ReAct Agent | Let the model choose a sequence of actions to take | [chat + rag](https://docs.cohere.com/reference/chat) | `from langchain_cohere.react_multi_hop.agent import create_cohere_react_agent` | [notebook](https://github.com/cohere-ai/notebooks/blob/main/notebooks/Vanilla_Multi_Step_Tool_Use.ipynb) |
## Usage Examples
### Chat
```python
from langchain_cohere import ChatCohere
from langchain_core.messages import HumanMessage
llm = ChatCohere()
messages = [HumanMessage(content="Hello, can you introduce yourself?")]
print(llm.invoke(messages))
```
### ReAct Agent
```python
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_cohere import ChatCohere, create_cohere_react_agent
from langchain.prompts import ChatPromptTemplate
from langchain.agents import AgentExecutor
llm = ChatCohere()
internet_search = TavilySearchResults(max_results=4)
internet_search.name = "internet_search"
internet_search.description = "Route a user query to the internet"
prompt = ChatPromptTemplate.from_template("{input}")
agent = create_cohere_react_agent(
llm,
[internet_search],
prompt
)
agent_executor = AgentExecutor(agent=agent, tools=[internet_search], verbose=True)
agent_executor.invoke({
"input": "In what year was the company that was founded as Sound of Music added to the S&P 500?",
})
```
### RAG Retriever
```python
from langchain_cohere import ChatCohere, CohereRagRetriever
rag = CohereRagRetriever(llm=ChatCohere())
print(rag.get_relevant_documents("Who are Cohere?"))
```
### Text Embedding
```python
from langchain_cohere import CohereEmbeddings
embeddings = CohereEmbeddings(model="embed-english-light-v3.0")
print(embeddings.embed_documents(["This is a test document."]))
```
## Contributing
Contributions to this project are welcomed and appreciated.
The [LangChain contribution guide](https://python.langchain.com/docs/contributing/code/) has instructions on how to setup a local environment and contribute pull requests.
Raw data
{
"_id": null,
"home_page": "https://github.com/langchain-ai/langchain-cohere",
"name": "langchain-cohere",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8.1",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/1a/37/bc394f758ecc12db58b7440e7b664b4ea9e15500e44d3543c3995202c6ca/langchain_cohere-0.1.7.tar.gz",
"platform": null,
"description": "# Langchain-Cohere\n\nThis package contains the LangChain integrations for [Cohere](https://cohere.com/).\n\n[Cohere](https://cohere.com/) empowers every developer and enterprise to build amazing products and capture true business value with language AI.\n\n## Installation\n- Install the `langchain-cohere` package:\n```bash\npip install langchain-cohere\n```\n\n- Get a [Cohere API key](https://cohere.com/) and set it as an environment variable (`COHERE_API_KEY`)\n\n## Migration from langchain-community\n\nCohere's integrations used to be part of the `langchain-community` package, but since version 0.0.30 the integration in `langchain-community` has been deprecated in favour `langchain-cohere`.\n\nThe two steps to migrate are:\n\n1) Import from langchain_cohere instead of langchain_community, for example:\n * `from langchain_community.chat_models import ChatCohere` -> `from langchain_cohere import ChatCohere`\n * `from langchain_community.retrievers import CohereRagRetriever` -> `from langchain_cohere import CohereRagRetriever`\n * `from langchain.embeddings import CohereEmbeddings` -> `from langchain_cohere import CohereEmbeddings`\n * `from langchain.retrievers.document_compressors import CohereRerank` -> `from langchain_cohere import CohereRerank`\n\n2) The Cohere Python SDK version is now managed by this package and only v5+ is supported.\n * There's no longer a need to specify cohere as a dependency in requirements.txt/pyproject.toml (etc.) \n\n## Supported LangChain Integrations\n\n| API | description | Endpoint docs | Import | Example usage |\n|------------------|-----------------------------------------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| Chat | Build chat bots | [chat](https://docs.cohere.com/reference/chat) | `from langchain_cohere import ChatCohere` | [notebook](https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/chat/cohere.ipynb) |\n| RAG Retriever | Connect to external data sources | [chat + rag](https://docs.cohere.com/reference/chat) | `from langchain_cohere import CohereRagRetriever` | [notebook](https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/retrievers/cohere.ipynb) |\n| Text Embedding | Embed strings to vectors | [embed](https://docs.cohere.com/reference/embed) | `from langchain_cohere import CohereEmbeddings` | [notebook](https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/text_embedding/cohere.ipynb) |\n| Rerank Retriever | Rank strings based on relevance | [rerank](https://docs.cohere.com/reference/rerank) | `from langchain_cohere import CohereRerank` | [notebook](https://github.com/langchain-ai/langchain/blob/master/docs/docs/integrations/retrievers/cohere-reranker.ipynb) |\n| ReAct Agent | Let the model choose a sequence of actions to take | [chat + rag](https://docs.cohere.com/reference/chat) | `from langchain_cohere.react_multi_hop.agent import create_cohere_react_agent` | [notebook](https://github.com/cohere-ai/notebooks/blob/main/notebooks/Vanilla_Multi_Step_Tool_Use.ipynb) |\n\n\n## Usage Examples\n\n### Chat\n\n```python\nfrom langchain_cohere import ChatCohere\nfrom langchain_core.messages import HumanMessage\n\nllm = ChatCohere()\n\nmessages = [HumanMessage(content=\"Hello, can you introduce yourself?\")]\nprint(llm.invoke(messages))\n```\n\n### ReAct Agent\n\n```python\nfrom langchain_community.tools.tavily_search import TavilySearchResults\nfrom langchain_cohere import ChatCohere, create_cohere_react_agent\nfrom langchain.prompts import ChatPromptTemplate\nfrom langchain.agents import AgentExecutor\n\nllm = ChatCohere()\n\ninternet_search = TavilySearchResults(max_results=4)\ninternet_search.name = \"internet_search\"\ninternet_search.description = \"Route a user query to the internet\"\n\nprompt = ChatPromptTemplate.from_template(\"{input}\")\n\nagent = create_cohere_react_agent(\n llm,\n [internet_search],\n prompt\n)\n\nagent_executor = AgentExecutor(agent=agent, tools=[internet_search], verbose=True)\n\nagent_executor.invoke({\n \"input\": \"In what year was the company that was founded as Sound of Music added to the S&P 500?\",\n})\n```\n\n### RAG Retriever\n\n```python\nfrom langchain_cohere import ChatCohere, CohereRagRetriever\n\nrag = CohereRagRetriever(llm=ChatCohere())\nprint(rag.get_relevant_documents(\"Who are Cohere?\"))\n```\n\n### Text Embedding\n\n```python\nfrom langchain_cohere import CohereEmbeddings\n\nembeddings = CohereEmbeddings(model=\"embed-english-light-v3.0\")\nprint(embeddings.embed_documents([\"This is a test document.\"]))\n```\n\n## Contributing\n\nContributions to this project are welcomed and appreciated.\nThe [LangChain contribution guide](https://python.langchain.com/docs/contributing/code/) has instructions on how to setup a local environment and contribute pull requests.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "An integration package connecting Cohere and LangChain",
"version": "0.1.7",
"project_urls": {
"Homepage": "https://github.com/langchain-ai/langchain-cohere",
"Repository": "https://github.com/langchain-ai/langchain-cohere",
"Source Code": "https://github.com/langchain-ai/langchain-cohere/tree/main/libs/cohere"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3291d89fbfe3aae96189df7cc8ae897197acb9306fe5c24f6455e8a4bfaa2591",
"md5": "b93eb679b27db6513390f7062cbf9036",
"sha256": "ffb6654098c7374eb0b51b446d0f5da91ccd87fc7103ea43df8b48abf95be6a2"
},
"downloads": -1,
"filename": "langchain_cohere-0.1.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b93eb679b27db6513390f7062cbf9036",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8.1",
"size": 31516,
"upload_time": "2024-06-11T08:48:33",
"upload_time_iso_8601": "2024-06-11T08:48:33.744019Z",
"url": "https://files.pythonhosted.org/packages/32/91/d89fbfe3aae96189df7cc8ae897197acb9306fe5c24f6455e8a4bfaa2591/langchain_cohere-0.1.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1a37bc394f758ecc12db58b7440e7b664b4ea9e15500e44d3543c3995202c6ca",
"md5": "bdba3bf23bc4b9d9985fb57eacf62482",
"sha256": "5ff2c354977c4a4ac4360ce3fe7ee0687f51ab59b533d1b8a7f6a9835cf50f1e"
},
"downloads": -1,
"filename": "langchain_cohere-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "bdba3bf23bc4b9d9985fb57eacf62482",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8.1",
"size": 26910,
"upload_time": "2024-06-11T08:48:43",
"upload_time_iso_8601": "2024-06-11T08:48:43.731781Z",
"url": "https://files.pythonhosted.org/packages/1a/37/bc394f758ecc12db58b7440e7b664b4ea9e15500e44d3543c3995202c6ca/langchain_cohere-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-11 08:48:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "langchain-ai",
"github_project": "langchain-cohere",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "langchain-cohere"
}