OpenAI integration: retry 400 status code because OpenAI returns this sometimes for no reason (#898)
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@trigger.dev/openai": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Retry 400 status code, OpenAI returns this sometimes for no reason...
|
||||||
@@ -60,11 +60,11 @@ function createTaskUsageProperties(
|
|||||||
},
|
},
|
||||||
...("completion_tokens" in usage
|
...("completion_tokens" in usage
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
label: "Completion Usage",
|
label: "Completion Usage",
|
||||||
text: String(usage.completion_tokens),
|
text: String(usage.completion_tokens),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
: []),
|
: []),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -83,35 +83,35 @@ function createTaskRateLimitProperties(headers: Headers | undefined) {
|
|||||||
return [
|
return [
|
||||||
...(remainingRequests
|
...(remainingRequests
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
label: "Remaining Requests",
|
label: "Remaining Requests",
|
||||||
text: remainingRequests ?? "Unknown",
|
text: remainingRequests ?? "Unknown",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
: []),
|
: []),
|
||||||
...(resetRequests
|
...(resetRequests
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
label: "Reset Requests",
|
label: "Reset Requests",
|
||||||
text: resetRequests ?? "Unknown",
|
text: resetRequests ?? "Unknown",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
: []),
|
: []),
|
||||||
...(remainingTokens
|
...(remainingTokens
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
label: "Remaining Tokens",
|
label: "Remaining Tokens",
|
||||||
text: remainingTokens ?? "Unknown",
|
text: remainingTokens ?? "Unknown",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
: []),
|
: []),
|
||||||
...(resetTokens
|
...(resetTokens
|
||||||
? [
|
? [
|
||||||
{
|
{
|
||||||
label: "Reset Tokens",
|
label: "Reset Tokens",
|
||||||
text: resetTokens ?? "Unknown",
|
text: resetTokens ?? "Unknown",
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
: []),
|
: []),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -128,6 +128,8 @@ export function handleOpenAIError(error: unknown) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
//sometimes OpenAI returns a 400 that when retried becomes a 200…
|
||||||
|
error.status === 400 ||
|
||||||
error.status === 429 ||
|
error.status === 429 ||
|
||||||
error.status === 408 ||
|
error.status === 408 ||
|
||||||
error.status === 409 ||
|
error.status === 409 ||
|
||||||
@@ -295,7 +297,7 @@ const requestOptionsKeys: KeysEnum<OpenAIRequestOptions> = {
|
|||||||
|
|
||||||
export const isRequestOptions = (obj: unknown): obj is OpenAIRequestOptions => {
|
export const isRequestOptions = (obj: unknown): obj is OpenAIRequestOptions => {
|
||||||
return (
|
return (
|
||||||
typeof obj === 'object' &&
|
typeof obj === "object" &&
|
||||||
obj !== null &&
|
obj !== null &&
|
||||||
!isEmptyObj(obj) &&
|
!isEmptyObj(obj) &&
|
||||||
Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k))
|
Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k))
|
||||||
@@ -310,4 +312,4 @@ function isEmptyObj(obj: Object | null | undefined): boolean {
|
|||||||
|
|
||||||
function hasOwn(obj: Object, key: string): boolean {
|
function hasOwn(obj: Object, key: string): boolean {
|
||||||
return Object.prototype.hasOwnProperty.call(obj, key);
|
return Object.prototype.hasOwnProperty.call(obj, key);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user