Spaces:
Runtime error
Runtime error
| // Generic "POST /chat/completions auth probe" used by several provider validators (command-code, | |
| // nlpcloud + the enterprise-cloud validators). Extracted from validation.ts (god-file decomposition) | |
| // into its own leaf so both the host dispatcher and validation/cloudProviders.ts can share it without | |
| // a cycle. Behavior is byte-identical to the original inline def. | |
| import { applyCustomUserAgent } from "./headers"; | |
| import { toValidationErrorResult, validationWrite } from "./transport"; | |
| export async function validateDirectChatProvider({ | |
| url, | |
| headers, | |
| body, | |
| providerSpecificData = {}, | |
| isLocal = false, | |
| }: any) { | |
| try { | |
| const response = await validationWrite( | |
| url, | |
| { | |
| method: "POST", | |
| headers: applyCustomUserAgent(headers, providerSpecificData), | |
| body: JSON.stringify(body), | |
| }, | |
| isLocal | |
| ); | |
| if (response.status === 401 || response.status === 403) { | |
| return { valid: false, error: "Invalid API key" }; | |
| } | |
| if ( | |
| response.ok || | |
| response.status === 400 || | |
| response.status === 422 || | |
| response.status === 429 | |
| ) { | |
| return { valid: true, error: null }; | |
| } | |
| if (response.status >= 500) { | |
| return { valid: false, error: `Provider unavailable (${response.status})` }; | |
| } | |
| return { valid: false, error: `Validation failed: ${response.status}` }; | |
| } catch (error: any) { | |
| return toValidationErrorResult(error); | |
| } | |
| } | |