Portkey brings advanced AI gateway capabilities, full-stack observability, and prompt management + versioning to your Promptfoo projects. This document provides an overview of how to leverage the strengths of both the platforms to streamline your AI development workflow.
promptfoo is an open source library (and CLI) for evaluating LLM output quality.
Let’s see how these work!
PORTKEY_API_KEY
environment variable in your Promptfoo projectportkey://
prefix for your prompts, followed by your Portkey prompt ID.For example:
Variables from your Promptfoo test cases will be automatically plugged into the Portkey prompt as variables. The resulting prompt will be rendered and returned to promptfoo, and used as the prompt for the test case.
Note that promptfoo does not follow the temperature, model, and other parameters set in Portkey. You must set them in the providers configuration yourself.
PORTKEY_API_KEY
environment variableportkey
prefix (like portkey:gpt-4o
)config
param, set the relevant provider for the above chosen model with portkeyProvider
(like portkeyProvider:openai
)That’s it! With this, all your Promptfoo calls will now start showing up on your Portkey dashboard.
Anthropic
, Google
, Groq
, Ollama
Azure OpenAI
, AWS Bedrock
, Google Vertex AI
First, set the AZURE_OPENAI_API_KEY
environment variable.
You can generate a JSON web token for your client creds, and add it to the AZURE_OPENAI_API_KEY
environment variable.
Portkey automatically logs all the key details about your requests, including cost, tokens used, response time, request and response bodies, and more.
Using Portkey, you can also send custom metadata with each of your requests to further segment your logs for better analytics. Similarly, you can also trace multiple requests to a single trace ID and filter or view them separately in Portkey logs.
You can filter or group data by these metadata keys on Portkey dashboards.
Since promptfoo can make a lot of calls very quickly, you can use a loadbalanced config in Portkey with cache enabled. You can pass the config header in the same YAML.
Here’s a sample Config that you can save in the Portkey UI and get a respective config slug:
And then we can just add the saved Config’s slug in the YAML:
We’re building support to view the eval results of promptfoo in Portkey that will let you view the results of promptfoo evals within the feedback section of Portkey.