Simulare gli errori dalle API OpenAI
Quando si usano LE API OpenAI nell'app, è necessario testare come l'app gestisce gli errori dell'API. Dev Proxy consente di simulare gli errori in qualsiasi API OpenAI usando GenericRandomErrorPlugin.
Suggerimento
Scaricare questo set di impostazioni eseguendo nel prompt devproxy preset get openai-throttling
dei comandi .
Nella cartella di installazione di Dev Proxy individuare la presets
cartella. presets
Nella cartella creare un nuovo file denominato openai-errors.json
. Aprire il file in un editor di codice.
Creare un nuovo oggetto nella plugins
matrice che fa riferimento a GenericRandomErrorPlugin
. Definire l'URL dell'API OpenAI per il plug-in per watch e aggiungere un riferimento alla configurazione del plug-in.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "openAIAPI",
"urlsToWatch": [
"https://api.openai.com/*"
]
}
]
}
Creare l'oggetto di configurazione del plug-in per fornire al plug-in il percorso delle risposte di errore.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/rc.schema.json",
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "openAIAPI",
"urlsToWatch": [
"https://api.openai.com/*"
]
}
],
"openAIAPI": {
"errorsFile": "errors-openai.json"
}
}
Nella stessa cartella creare il errors-openai.json
file. Questo file contiene le possibili risposte di errore che possono essere restituite quando il plug-in invia una risposta di errore.
{
"responses": [
{
"statusCode": 429,
"headers": [
{
"name": "content-type",
"value": "application/json; charset=utf-8"
}
],
"body": {
"error": {
"message": "Rate limit reached for default-text-davinci-003 in organization org-K7hT684bLccDbBRnySOoK9f2 on tokens per min. Limit: 150000.000000 / min. Current: 160000.000000 / min. Contact support@openai.com if you continue to have issues. Please add a payment method to your account to increase your rate limit. Visit https://beta.openai.com/account/billing to add a payment method.",
"type": "tokens",
"param": null,
"code": null
}
}
},
{
"statusCode": 429,
"headers": [
{
"name": "content-type",
"value": "application/json; charset=utf-8"
}
],
"body": {
"error": {
"message": "Rate limit reached for default-text-davinci-003 in organization org-K7hT684bLccDbBRnySOoK9f2 on requests per min. Limit: 60.000000 / min. Current: 70.000000 / min. Contact support@openai.com if you continue to have issues. Please add a payment method to your account to increase your rate limit. Visit https://beta.openai.com/account/billing to add a payment method.",
"type": "requests",
"param": null,
"code": null
}
}
},
{
"statusCode": 429,
"addDynamicRetryAfter": true,
"headers": [
{
"name": "content-type",
"value": "application/json; charset=utf-8"
}
],
"body": {
"error": {
"message": "The engine is currently overloaded, please try again later.",
"type": "requests",
"param": null,
"code": null
}
}
}
]
}
Avviare Dev Proxy con il file di configurazione:
devproxy --config-file "~appFolder/presets/openai-errors.json"
Quando si usa l'app che chiama LE API OpenAI, Dev Proxy restituisce in modo casuale una delle risposte di errore definite nel errors-openai.json
file.
Altre informazioni su GenericRandomErrorPlugin.
Feedback su Dev Proxy
Dev Proxy è un progetto di open source. Selezionare un collegamento per fornire feedback: