Portkey provides a robust and secure gateway to facilitate the integration of various Large Language Models (LLMs) into your applications, including Perplexity AI APIs.

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. perplexity-ai

Portkey SDK Integration with Perplexity AI Models

Portkey provides a consistent API to interact with models from various providers. To integrate Perplexity AI with Portkey:

1. Install the Portkey SDK

Add the Portkey SDK to your application to interact with Perplexity AI’s API through Portkey’s gateway.

npm install --save portkey-ai

2. Initialize Portkey with the Virtual Key

To use Perplexity AI 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 Perplexity AI Virtual Key
})

3. Invoke Chat Completions with Perplexity AI

Use the Portkey instance to send requests to Perplexity AI. 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: 'pplx-70b-chat',
});

console.log(chatCompletion.choices);

Fetching citations

If you need to obtain citations in the response, you can disable strict open ai compliance

Perplexity-Specific Features

Perplexity AI offers several unique features that can be accessed through additional parameters in your requests:

Search Domain Filter (Beta)

You can limit citations to specific domains using the search_domain_filter parameter. This feature is currently in closed beta and limited to 3 domains for whitelisting or blacklisting.

completion = portkey.chat.completions.create(
    messages=[{"role": "user", "content": "Tell me about electric cars"}],
    model="pplx-70b-chat",
    search_domain_filter=["tesla.com", "ford.com", "-competitors.com"]  # Use '-' prefix for blacklisting
)

Image Results (Beta)

Enable image results in responses from online models using the return_images parameter:

completion = portkey.chat.completions.create(
    messages=[{"role": "user", "content": "Show me pictures of electric cars"}],
    model="pplx-70b-chat",
    return_images=True  # Feature in closed beta
)

Get related questions in the response using the return_related_questions parameter:

completion = portkey.chat.completions.create(
    messages=[{"role": "user", "content": "Tell me about electric cars"}],
    model="pplx-70b-chat",
    return_related_questions=True  # Feature in closed beta
)

Search Recency Filter

Filter search results based on time intervals using the search_recency_filter parameter:

completion = portkey.chat.completions.create(
    messages=[{"role": "user", "content": "What are the latest developments in electric cars?"}],
    model="pplx-70b-chat",
    search_recency_filter="week"  # Options: month, week, day, hour
)

Managing Perplexity AI Prompts

You can manage all prompts to Perplexity AI in the Prompt Library. All the current models of Perplexity AI 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.

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 Perplexity AI requests
  3. Tracing Perplexity AI requests
  4. Setup a fallback from OpenAI to Perplexity AI APIs