By default, all the responses sent back from Portkey are compliant with the OpenAI specification.
In some cases, a response from a provider like Perplexity may contain useful fields which do not have a corresponding 1:1 mapping to OpenAI fields.
To get those fields in the response, you can do one of the following:
- Python SDK: Pass this parameter
strict_open_ai_compliance=false when initializing the portkey client
- Node SDK: Pass this parameter
strictOpenAiCompliance: false when initializing the portkey client
- HTTP requests: Pass this header
x-portkey-strict-open-ai-compliance: false with your request
By default strict_open_ai_compliance=false in Portkey Python and Node SDK
Python SDK
Node SDK
cURL
OpenAI python
OpenAI Node SDK
from portkey_ai import Portkey
portkey = Portkey(
api_key="PORTKEY_API_KEY",
provider="@PROVIDER",
strict_open_ai_compliance=False
)
import Portkey from 'portkey-ai'
const portkey = new Portkey({
apiKey: "PORTKEY_API_KEY",
provider:"@PROVIDER",
strictOpenAiCompliance: false
})
Add the following header to your request
x-portkey-strict-open-ai-compliance: false
from openai import OpenAI
from portkey_ai import PORTKEY_GATEWAY_URL, createHeaders
openai = OpenAI(
api_key='OPENAI_API_KEY',
base_url=PORTKEY_GATEWAY_URL,
default_headers=createHeaders(
provider="openai",
api_key="PORTKEY_API_KEY"
strict_open_ai_compliance=False
)
)
import OpenAI from 'openai'; // We're using the v4 SDK
import { PORTKEY_GATEWAY_URL, createHeaders } from 'portkey-ai'
const openai = new OpenAI({
apiKey: 'OPENAI_API_KEY', // defaults to process.env["OPENAI_API_KEY"],
baseURL: PORTKEY_GATEWAY_URL,
defaultHeaders: createHeaders({
provider: "openai",
apiKey: "PORTKEY_API_KEY", // defaults to process.env["PORTKEY_API_KEY"],
strictOpenAiCompliance: false
})
});