Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
На первый взгляд
Цель: Проверка обработки ошибок API OpenAI
Время: 10 минут
Подключаемые модули:GenericRandomErrorPlugin
Предварительные требования:настройка прокси-сервера разработки
При использовании API OpenAI в приложении необходимо проверить, как приложение обрабатывает ошибки API. Прокси Dev позволяет имитировать ошибки в любом API OpenAI с помощью GenericRandomErrorPlugin.
Кончик
Скачайте эту предустановку, выполнив команду в командной строке devproxy config get openai-throttling.
В папке установки прокси-сервера разработки найдите папку config. В папке config создайте файл с именем openai-errors.json. Откройте файл в редакторе кода.
Создайте новый объект в массиве plugins, ссылающегося на GenericRandomErrorPlugin. Определите URL-адрес API OpenAI, который необходимо отслеживать, и добавьте ссылку на конфигурацию плагина.
Файл:openai-errors.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/rc.schema.json",
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "openAIAPI",
"urlsToWatch": [
"https://api.openai.com/*"
]
}
]
}
Создайте объект конфигурации подключаемого модуля, чтобы предоставить ему расположение ответов об ошибках.
Файл:openai-errors.json (полная конфигурация)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/rc.schema.json",
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "openAIAPI",
"urlsToWatch": [
"https://api.openai.com/*"
]
}
],
"openAIAPI": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/genericrandomerrorplugin.schema.json",
"errorsFile": "errors-openai.json"
}
}
В той же папке создайте файл errors-openai.json. Этот файл содержит возможные ответы на ошибки, которые могут быть возвращены, когда подключаемый модуль отправляет ответ на ошибку.
Файл:errors-openai.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/genericrandomerrorplugin.errorsfile.schema.json",
"errors": [
{
"request": {
"url": "https://api.openai.com/*"
},
"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
}
}
}
]
}
]
}
Запустите прокси-сервер разработки с файлом конфигурации:
devproxy --config-file "~appFolder/config/openai-errors.json"
Когда вы используете свое приложение для вызова API OpenAI, Dev Proxy случайным образом возвращает один из ответов об ошибках, определенных в файле errors-openai.json.
Дополнительные сведения о genericRandomErrorPlugin.