Simuler des erreurs à partir d’API OpenAI
Lorsque vous utilisez des API OpenAI dans votre application, vous devez tester la façon dont celle-ci gère les erreurs d’API. Dev Proxy vous permet de simuler des erreurs sur n’importe quelle API OpenAI à l’aide de GenericRandomErrorPlugin.
Conseil
Téléchargez cette présélection en exécutant dans l’invite devproxy preset get openai-throttling
de commandes .
Dans le dossier d’installation du proxy de développement, recherchez le presets
dossier. Dans le presets
dossier , créez un fichier nommé openai-errors.json
. Ouvrez le fichier dans un éditeur de code.
Créez un objet dans le plugins
tableau référençant le GenericRandomErrorPlugin
. Définissez l’URL de l’API OpenAI pour le plug-in pour lequel watch et ajoutez une référence à la configuration du 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/*"
]
}
]
}
Créez l’objet de configuration du plug-in pour fournir au plug-in l’emplacement des réponses d’erreur.
{
"$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"
}
}
Dans le même dossier, créez le errors-openai.json
fichier. Ce fichier contient les réponses d’erreur possibles qui peuvent être retournées lorsque le plug-in envoie une réponse d’erreur.
{
"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
}
}
}
]
}
Démarrez le proxy de développement avec le fichier de configuration :
devproxy --config-file "~appFolder/presets/openai-errors.json"
Lorsque vous utilisez votre application appelant des API OpenAI, dev proxy retourne de manière aléatoire l’une des réponses d’erreur que vous avez définies dans le errors-openai.json
fichier.
En savoir plus sur GenericRandomErrorPlugin.