Portkey provides a robust and secure gateway to facilitate the integration of various Large Language Models (LLMs) into your applications, including Cohere’s generation, embedding, and other endpoints.

With Portkey, you can take advantage of features like fast AI gateway access, observability, prompt management, and more, all while ensuring the secure management of your LLM API keys through a virtual key system.

Provider Slug. cohere

Portkey SDK Integration with Cohere

Portkey provides a consistent API to interact with models from Cohere. To integrate Cohere with Portkey:

1. Install the Portkey SDK

Add the Portkey SDK to your application to interact with Cohere’s models through Portkey’s gateway.

npm install --save portkey-ai

2. Initialize Portkey with the Virtual Key

To use Cohere with Portkey, get your API key from here, then add it to Portkey to create the virtual key.

import Portkey from 'portkey-ai'

const portkey = new Portkey({
    apiKey: "PORTKEY_API_KEY", // defaults to process.env["PORTKEY_API_KEY"]
    virtualKey: "VIRTUAL_KEY" // Your Cohere Virtual Key
})

3. Invoke Chat Completions with Cohere

Use the Portkey instance to send requests to Cohere’s models. You can also override the virtual key directly in the API call if needed.

const chatCompletion = await portkey.chat.completions.create({
    messages: [{ role: 'user', content: 'Say this is a test' }],
    model: 'command',
});

console.log(chatCompletion.choices);

Managing Cohere Prompts

You can manage all prompts to Cohere in the Prompt Library. All the current models of Cohere are supported and you can easily start testing different prompts.

Once you’re ready with your prompt, you can use the portkey.prompts.completions.create interface to use the prompt in your application.

Other Cohere Endpoints

Embeddings

Embedding endpoints are natively supported within Portkey like this:

const embedding = await portkey.embeddings.create({
    input: 'Name the tallest buildings in Hawaii'
});

console.log(embedding);

Re-ranking

You can use cohere reranking the portkey.post method with the body expected by Cohere’s reranking API.

const response = await portkey.post(
  "/rerank",
  {
    "return_documents": false,
    "max_chunks_per_doc": 10,
    "model": "rerank-english-v2.0",
    "query": "What is the capital of the United States?",
    "documents": [
      "Carson City is the capital city of the American state of Nevada.",
      "The Commonwealth of the Northern Mariana Islands is a group of islands in the Pacific Ocean. Its capital is Saipan.",
      "Washington, D.C. (also known as simply Washington or D.C., and officially as the District of Columbia) is the capital of the United States. It is a federal district.",
      "Capital punishment (the death penalty) has existed in the United States since beforethe United States was a country. As of 2017, capital punishment is legal in 30 of the 50 states."
    ]
  }
)

Next Steps

The complete list of features supported in the SDK are available on the link below.

SDK

You’ll find more information in the relevant sections:

  1. Add metadata to your requests
  2. Add gateway configs to your Cohere requests
  3. Tracing Cohere requests
  4. Setup a fallback from OpenAI to Cohere APIs